DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. Cloud Applications: Migrate or Transform?

Cloud Applications: Migrate or Transform?

Jim Bugwadia user avatar by
Jim Bugwadia
CORE ·
Jan. 16, 15 · Interview
Like (2)
Save
Tweet
Share
5.72K Views

Join the DZone community and get the full member experience.

Join For Free

 [This article was written by Ritesh Patel.]

Cloud computing is forcing application developers to think differently about application architecture. Just as client side developers faced a huge paradigm shift from desktop to mobile application development, server side developers are experiencing a similar shift as they develop applications for the cloud. Deploying an application that is not architected for cloud (i.e. cloud native) cannot harness any benefits of the underlying cloud infrastructure and will result in increased operational costs in the long run. For developers building new cloud applications it is absolutely critical to get the architecture right the first time and avoid costly redesigns.

The new app tier

As I look at cloud leaders like Netflix, LinkedIn and Twitter, it is clear that a new architecture for the application tier has emerged. The new app tier consists of a collection of fine grained services that are stateless and can be scaled up or down independently. Rapid scalability is not the only benefit though. A welcome but often overlooked side benefit of this architecture is the rapid agility it provides to the enterprise by enabling small teams to independently develop and deliver these services. This model not only enables continuous integration but facilitates true continuous delivery of software making it easy to do things like canary launching, A/B testing and release automation. In fact, developers at Netflix have been extremely open about how they have achieved continuous delivery for their application and have seen significant benefits.

Current choices

For most enterprises that have built large scale applications over the past year, transition to cloud is a huge challenge. As their customers get more comfortable with cloud and embrace cloud based software delivery i.e. SaaS, these enterprises are faced with two choices:

  • Migrate their existing application to the cloud
  • Re-architect their existing application for the cloud

Either approach has some benefits as well as challenges.

Migrate

Migrating existing applications to the cloud addresses the customer need in the short term but results in significant operational challenges with multi tenancy being a key issue. On the operational side there are several challenges including ongoing support, monitoring, software upgrades and inefficient resource utilization.  Automation can certainly help alleviate some of these challenges but it becomes very difficult to achieve operational efficiencies beyond a certain point as the customer base grows. With this approach larger investment in operations is required since as more resources are used, more operations personnel are needed for ongoing operations and management unless high level of automation is achieved.

Re-architect

On the other hand, companies that have chosen to re-architect their existing applications for the cloud face some upfront challenges including steeper learning curve, greater initial investment in software development as they build or select their underlying platform, and potential disruption to existing customers in the short term. Companies that commit to the cloud may also need to undergo cultural and organizational changes to truly become agile and adopt devops. But companies that successfully navigate through these challenges stand to reap significant benefits in the long run. They can now leverage the true benefits that cloud infrastructure and delivery models have to offer. This also allows them to achieve greater operational efficiencies due to better resource utilization and smaller investment in operations. These companies benefit from greater economies of scale as they grow and are well positioned to ride the experience curve gaining significant cost efficiencies and competitive advantage.

What’s your strategy?

For teams building new applications, the choice is clear – design and architect the application to leverage cloud computing. But for existing applications, the choice is not very straightforward and requires careful consideration of costs associated with operational and development paradigm mismatch. For core, long lived applications, a phased migration may be the only option, and sooner cloud computing is embraced, the greater the business efficiency gains. Some companies we have talked to have been successful in taking this phased approach for transforming their traditional applications and as a result minimized the risk while benefiting from the cloud. Perhaps this is a topic for a future post.

We are interested in hearing whats your cloud application strategy and any issues/challenges you currently face.

Cloud computing mobile app

Published at DZone with permission of Jim Bugwadia, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Remote Debugging Dangers and Pitfalls
  • Kotlin Is More Fun Than Java And This Is a Big Deal
  • Using JSON Web Encryption (JWE)
  • Beginners’ Guide to Run a Linux Server Securely

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: