Cloud migration is a hot topic in the business world today. Organizations have all sorts of impetus for the paradigm shift. Some organizations are interested in reducing costs. Others feel the cloud provides agility and innovation allowing their business to stay competitive. Some organizations want to take advantage of the latest technology and features without capital expenditure. Whatever the driving force, it stands to reason that a pragmatic approach to the paradigm shift will optimize the experience. One method to reduce the risk associated with conversion to cloud services is a cloud migration checklist.
A cloud migration checklist can assist organizations in moving critical enterprise applications to a public or private cloud service. In several instances, organizations have had limited success with morphing internal technology to a cloud infrastructure due to a haphazard approach. This article details a 10-step checklist that can guide your organization through a structured migration process.
Step 1. Choose a lead architect
As with any large change, a cloud migration can only flourish under the guidance of strong leadership. An architect should be chosen to plan and ensure the completion of all parts of the migration. The role of the architect may include, but is not limited to, defining approaches for data relocation, determining infrastructure requirements, shaping priorities and determining operational procedures for the switchover from on-premises to cloud. The architect is responsible for all critical decisions, architecture, and technical planning. Strong leadership will ensure overall success.
Step 2: Light vs. heavy
When migrating an application from an internal data center to a cloud environment, you have two options, a light or heavy cloud integration. In a light integration, the servers are re-instantiated as a whole in the cloud with limited or no modifications. There are no drastic changes to the application itself and no cloud-specific services are added.
In a heavy integration, the application itself is streamlined to take advantage of cloud capabilities. This kind of change might include auto-scaling or load balancing. Data storage might be moved to a cloud-specific data store and some portions of the application might utilize server-less computing capabilities. One example of this is AWS Lambda, a model under which an organization is only charged for the compute time they consume. Code itself is uploaded to Lambda and automatically scaled to your compute needs by the cloud service.
Step 3: How many providers?
One important consideration in the migration to the cloud is to analyze your providers. It is possible that not all services are best housed under a single provider. Although utilizing a single provider may simplify management and development, you are locked into a single vendor. This limits options from both a functionality as well as a costing perspective.
When choosing to go the multi-provider route, there are multiple ways to decide which service is housed under each vendor. You might choose to run each application or set of similar applications under a separate vendor. Alternatively, you might split a single application across multiple vendors. This may allow you to leverage such capabilities as speedy database storage or fast networking from a particular vendor. Finally, an application can be developed to be cloud-agnostic. Then your organization has the flexibility to switch to multiple vendors at will. This can drastically increase competition and ultimately reduce costs. However, supporting multiple platforms can increase development complexity.
Step 4: Determine key performance metrics
To define success, one must first define performance metrics. Some key metrics may include the speed of performance for the application, disk performance, CPU utilization, memory usage, mean time between failure for infrastructure, key schedule milestones, user load time, session duration, throughput, availability, and other relevant metrics. Quantitatively defining success against a set of specific measurable criteria will be key to determining how migration is progressing and illuminating problems in a timely fashion.
Step 5: Establish a baseline for each performance metric
For each of the performance metrics defined under step 4, it is critical to assign a baseline value. Start with a measure of each value pre-migration and attempt to meet or exceed this value in your final state. Data for each metric should be collected frequently throughout the migration process to catch issues early. Many data points will need to be collected frequently and averaged over time to provide meaningful data. Baseline values for peak or critical periods should be defined in addition to average specifications.
Step 6: Prioritize your migration
A critical step in the migration process is determining the order in which services should be migrated. A dependency diagram can be automatically or manually generated to assist with this process. To create this diagram, first, identify how each of your services connects to other services. One good approach is to start with the service that has the fewest dependencies.
Step 7: Determine any major application modifications
Applications may require additional development to function at optimal efficiency in the cloud. Applications may be redeveloped for scalability by making the number of running instances variable. Applications may also be optimized to dynamically allocate and deallocate resources or move to a service-oriented architecture. A list of developmental changes and requirements is crucial to the planning process.
Step 8: Moving your data
In addition to moving the applications, it is critical to correctly migrate data. The location of data can drastically influence performance. It is critical to move data simultaneously, if at all possible, with the service or application accessing it. This may be achieved through synchronization between the on-premise and cloud databases or through the use of a cloud data migration service.
Step 9: Going live
Transitioning the production system from on-premise to cloud can be complex. This transition can either be handled all at once or through a series of steps. Each option has its benefits and drawbacks.
Step 10: Post Migration Considerations
After your production system has migrated to the cloud, you will want to consider several items. Additional resources may need to be added to applications in the cloud. You will want to confirm that your system is capable of dynamically scaling. Consider your final security posture and identify any weak points for further tuning. Review the overall costs of your final infrastructure and ways to optimize to save funds. You may find there are hidden unexpected fees and ongoing expenses. Be sure to identify these hidden costs and find alternatives. Finally, be sure to get customer feedback on their experience with cloud services and address any issues.
Still, have questions about cloud hosting or migrating data? Take a look at our cloud hosting guide for additional information.