Enterprise cloud computing is a massive game changer and it brings significant changes in the way users access applications through mobile devices and interact with each other through socially enabled, cloud based services. In particular, there are four important areas of influences and pressures on applications architectures: mobile devices, social networking, cloud services and Big Data.
Migrating to the cloud is often all about the applications. Established organizations that want to redo IT with an eye on cloud’s benefits face serious challenges, and architects face hard choices about how to move the applications into the cloud. Their decision must consider an organization’s requirements, evaluation criteria, and architecture principles.
Gartner identified five ways to migrate applications to the cloud:
Rehost – redeploy applications to a different hardware environment and change the application’s infrastructure configuration. Rehosting an application without making changes to its architecture can provide a fast cloud migration solution. However, some advantages such as scalability can be missed.
Refactor – run applications on a cloud provider’s infrastructure. The primary advantage is blending familiarity with innovation as “backward-compatible” PaaS means developers can reuse languages, frameworks, and containers they have invested in, thus leveraging code the organization considers strategic.
Revise – modify or extend the existing code base to support legacy modernization requirements, then use rehost or refactor options to deploy to cloud. This option allows organizations to optimize the application to leverage the cloud characteristics of providers’ infrastructure.
Rebuild – rebuild the solution on PaaS, discard code for an existing application and re-architect the application. Although rebuilding requires losing the familiarity of existing code and frameworks, the advantage of rebuilding an application is access to innovative features in the provider’s platform.
Replace – discard an existing application (or set of applications) and use commercial software delivered as a service. This option avoids investment in mobilizing a development team when requirements for a business function change quickly. Disadvantages can include inconsistent data semantics, data access issues, and vendor lock-in.
Rebuilding an existing application from scratch in the cloud allows you to re-architect applications to take advantage of cloud services and benefits such as scaling on-demand. Also, you might have an application that’s based on an older version of an OS or component application like SQL, and you’ve been reluctant to upgrade. A cloud migration project can be the perfect time to do a version upgrade because it involves similar considerations and planning.
When rebuilding an app, developer productivity is improved with tools that allow application templates and data models to be customized, metadata-driven engines, and communities that supply pre-built components. Also, transparent automatic scalability allows non-IT developers the opportunity to develop and deploy simple applications into production.
However, lock-in is the primary disadvantage of rebuilding, so if the provider makes a pricing or technical change that the consumer cannot accept, breaches service level agreements (SLAs), or fails, the consumer is forced to switch, potentially abandoning some or all of its application assets. Abandoning familiar programming languages and frameworks means that second sourcing strategies to mitigate lock-in risk may not work.
Determining the right option depends on your business objectives and the application itself. Each option has benefits and disadvantages, but an organization is often deciding on an approach without even researching a comprehensive migration strategy. And without ample planning and consideration, the cost and complexity of migrating these applications can lead to delayed cloud projects that are over budget.