ALM best practices for advanced DevOps organizations
A comprehensive collection of articles, videos and more, hand-picked by our editors
Cloud migration is not about moving a single virtual machine from your on-premises data center, but about relocating an important, working service. Organizations, especially the more traditional ones, have begun to recognize the value of the cloud, including its cost-efficiency and flexibility. There's a lot involved in migrating an application to the cloud, and there will be challenges encountered along the way. Before moving your applications, build an application migration plan to avoid potential obstacles.
Let's consider a purpose-built, mission-critical application. Years of investment have gone into the creation of this IT asset, sitting in a vertically integrated data center, with custom network, storage and compute. Building and running an environment requires large investments in hardware and hundreds of hours of staff time. In order to migrate to the cloud, methods must be found for translating these on-premises IT resources to virtual software layers.
There are certain cases in which you can't lift and shift, or rehost, an application. Your Oracle ERP system, for one, can't simply be dropped into your new Amazon cloud account. High-performance compute that supports heavy workloads, such as credit card fraud analysis, would be another complicated migration case.
These legacy workloads traditionally run on supercomputers and are not built to scale horizontally on top of a commodity infrastructure. In addition, traditional businesses in industries, such as financial services and healthcare, still have mainframe systems that hold core parts of their businesses. These applications have critical legacy dependencies and must adhere to strict compliance standards.
Migration of these entrenched apps to the cloud is challenged by moving custom hardware, legacy system dependencies -- such as workloads that need access to an aging database -- and a complex network footprint to an entirely different IT environment.
The assessment stage
The paths for migrating an application to the cloud are fairly well-established. A Gartner analysis identified five primary methods to choose from when creating an application migration plan:
- Rehost: Redeploy applications on infrastructure as a service (IaaS) without making changes.
- Refactor: Run applications on platform as a service (PaaS).
- Revise: Modify or extend existing code to fit the cloud environment.
- Rebuild: Rebuild a PaaS environment.
- Replace: Discard existing applications and instead implement them as software as a service (SaaS).
These methods provide a general explanation for dealing with a cloud migration in all its forms, such as IaaS, PaaS and SaaS, including the option to replace your current traditional customer relationship management with an online SaaS product, such as Salesforce.
In addition, you have to run a pilot or proof-of-concept project, and test performance and security on the potential cloud. Your migration pilot will help you learn the skills and capacity, including the number of virtual machines, storage types and size, and network bandwidth, your application requires. You'll also become aware of any limitations involving your cloud vendor. Learn about the cost of the cloud resources and services required, the security controls that should replace your legacy appliances, such as firewalls, and the storage services that will replace your various traditional repositories.
Don't start an application migration plan with tightly coupled apps. Instead, go with your standalone applications, and make sure you have a plan. For example, when taking even a simple Drupal website to Amazon's cloud, it is important to know exactly what's required. You may need to switch from your load balancer to Amazon Web Services (AWS) Elastic Load Balancing, or move media files from your block storage volume to Amazon's Simple Storage Service.
Strategies and tools to make it work
When building an application migration plan for more critical workloads, take a phased approach. That way, if a phase fails, you can bring those services back to the on-premises environment for fixing and redesigning before trying again. To remove risks, be sure to have the right tools available to provide control and transparency over your cloud inventory. These will provide insight into usage, costs and security configurations. AWS Cost Explorer and AWS Trusted Advisor can be useful for these tasks, and a third-party product from Cloudyn, Dome9 and others could prove beneficial.
Another important aspect is data migration. This requires consideration of the amount of data involved and its synchronization with your on-premises data repositories. At this stage, an IT team needs to plan the one-time move of the data on production day, as well as the streamlining of data between the different environments as required.
A cloud vendor will offer services for supporting data migration in a reasonable time -- considering the amount of data you need to transfer. To support the data synchronization, you'll need to identify which tools will be implemented.
Every cloud service provider has its third-party ecosystem of tools and services. In most cases, these can close any feature and functionality gaps. For example, with Amazon's cloud, AWS-certified partners can provide intrusion prevention and detection technologies, which are capabilities AWS itself does not support. Another example is with the Heroku development platform. Heroku's Elements Marketplace provides add-ons that help connect and scale with multiple types of databases.
Instituting a cloud application migration plan can be challenging, and, when not undertaken effectively, can result in the same risks of any costly, traditional IT project. To lessen the chance of something going awry, develop a clear understanding of your application and network architecture. Then, run a pilot to see what's actually real.
With a proper application migration plan, moving applications to the cloud allows a business to take advantage of what cloud computing offers -- without compromising service continuity, robustness or security.
Don't move your apps to the cloud yet
Plan your application migration strategy
Move mission-critical apps to the cloud