The Process of Migrating an Application to the Cloud
Applications can be moved to the cloud quickly with little problem if the migration is planned correctly. The process of constructing a plan for migrating a system to the cloud generally includes the following steps:
- Define the system goals and requirements. This process includes considering several factors such as security requirements, scalability requirements, continuity and disaster requirements, as well as others.
- Protect existing data. Items to be addressed include a backup plan agreed upon by the customer and provider, data privacy requirements, and procedures to move out of the cloud in case problems are encountered.
- Use a Consultant if needed. Hiring a reputable cloud expert might save organizations money over the long term.
- Consider vendor lock-ins. Lock-ins can be technical or administrative in nature. Cloud providers should make it easy for customers to move their data if desired.
- Know and document the characteristics of current applications. This includes knowing characteristics such as demand periods, average amount of users, disk storage requirements, database requirements, RAM usage, bandwidth required, and cache required by the application.
- Define training requirements. Training requirements to consider include: employee preparedness, developer training, administrator training, audit group for governance training, help desk support training, an business continuity and disaster recovery training.
- Define a realistic deployment schedule. The plan should provide sufficient time for training, testing, and benchmarking.
- Budget concerns. Key budget factors to consider include cost breakdowns for current data centers so comparative analysis and Return on Investment (ROI) can be calculated. Other factors to consider include; current payroll and projected payroll, current and future licensing and update costs, and current hardware maintenance costs.
- Identify governance issues such as alignment with organizational goals, define internal and external controls, identify and mitigate risks, define access, discover how to access event and system logs for auditing, discover how the provider performs updates and patches, and how to use performance monitoring tools.
Cloud migration can be done using a four-stage cycle as follows:
An assessment to determine if the cloud service meets system requirements and if the provider’s services align with the organizations goals. Items to consider include the following:
- Is the cloud system offered a good fit, does it align with the organizations mission and goals? Do not blindly choose a provider.
- What are the organizations capacity demands?
- Accurately determine actual costs. Factors to consider include on-boarding programs, support plans, and new environments that did not exist with the current system.
- Are there going to be any gaps in service after the migration?
- How well do the providers tools align with the organizations existing tools?
- What applications and environments are good candidates for the cloud? Conduct a comprehensive inventory of applications and determine which are the best fit for a cloud environment.
- What’s the topology of the application architecture? Cloud servers, data services, and networks behave differently than their on-premises counterparts so architecture may have to evolve or change to accommodate.
- Will there be any performance bottlenecks? For example: if your applications have integration points with on-premises systems you may see performance problems due to long-distance connections over public networks.
- Are there hybrid integration plans? It’s unrealistic to think that you’ll move an entire application portfolio to the cloud at once. Treat the cloud as a logical extension of existing systems.
- Have you identified the first adopters? A migration to the cloud can be disruptive so it is important to find people within the organization who are eager and experienced to help define new standards and guide the organization through the transition.
- How will users access the environment?
- Staff training.
- What internal processes have to change in order to capitalize on the new service? Documented procedures for hardware requisition, change management, testing, and deployments may not apply in the same way when using cloud services.
- How will you deploy updated code, data, and configurations to the environment? A new cloud service may or may not work with existing tools.
- Operating plan after the migration.
- Small scale test of the migration plan.
- How are applications and data being distributed to the cloud? There are several of ways to get applications and data up to a cloud location. For moderately-sized workloads, simple copy commands used over the internet may work. Large data transfers might incur significant bandwidth charges.
- What security controls are in place during transit to the cloud?
- What is being migrated? Is it virtual machines, data, or applications?
- Recreate metadata.
- Are applications and data reachable? A vital simple test.
- Did all the data make its way into the environment? Through automation, or if required, a manual spot check, verify that both transaction data and reference data was accurately and successfully transferred.
- Can administrative tools access the cloud environment? This should have been performed during the planning phase but it is important to verify this again.
Seroter, R. (2015, June 18). The Cloud Migration Checklist. Retrieved August 11, 2016, from InfoQ, https://www.infoq.com/articles/cloud-migration-checklist