PREPARING BEFORE YOU ACTUALLY MIGRATE
Despite thorough planning, choosing the right strategies, right time, and budget, many migrations fail. There is no guarantee everything will go well on the first try. Extra care and efforts need to be taken to know potential problems that may arise and devise solutions to resolve them and improve the migration process. The following sections explain the various steps that can be taken before actual migration starts to reduce the migration risks.
MODELLING THE MIGRATION
One of the best things one can do before migrating the entire workload to the cloud is to first model the migration by creating a proof of concept using a subset of workloads and test it. This modeling will involve selecting a representative set of workloads, making sure that it works in the selected cloud environment, and validating its performance and costs (both migration and operation). Significant steps involved in modeling the migration are:
1. Choose the right representative workloads
The first step in choosing the right representative workloads is understanding current applications, and their boundaries and inter-dependencies. Dependency mapping will help analyze network traffic, determine which workloads to keep on-premise, and which ones to move to the cloud, and decide and schedule the migration phases. Pairing with the right people/group increases the success rate.
Representative workloads are just a small model of the entire migration. So choose only a few representative workloads that can be tested for migration and can provide reasonable estimates. This could be choosing sample workloads like a web server with few APIs and a database with the necessary schema and data from the current environment.
2. Create affinity groups of similar workloads
While choosing representative workloads, it is vital to have representation from each of the varying types of workloads. To make this process simple, we can group workloads with similar characteristics into affinity groups. Examples of affinity groups are Web Applications (with front end, back end, and database), APIs, File Storage, and Virtual Servers/Environments (where your software runs as a service). Representative workloads may be selected from each group and validated separately, giving better granularity for more accurate planning and estimation.
3. Validating the Model
The next step is to validate the model. Compare the expected vs. actual results. Since the representative workloads are migrated to the new environment and are running, we can now measure the actual resource utilization, network latency, traffic, etc., and compare it with the expected/planned. Multiply these actual measures from the model with a factor (number of actual workloads to be migrated) to get the totals. Though this linear scaling may not be a hundred percent accurate, it will give sufficient inputs for a realistic estimate.
The process of migrating the representative workloads to a cloud provider and measuring the performance of workloads is not an easy task. It is better to seek the help of an experienced partner (people) and make use of suitable tools.
Automation is a key factor in successful cloud migrations. Invest time to develop scripts to create, teardown, and recreate the environments. This builds a repeatable process for you. Terraform, Ansible, CloudFormation, etc., are some good infrastructure automation tools to start with.
Tools selected should support in,
- Building & Deploying a workload (low touch)
- Measuring the usage (memory, processor, storage, etc.)
- Monitoring the environment (run status, errors, logs, etc.)
- Scale up or scale down (on-demand, low touch)
- Cost estimation
5. Partner with an Experienced Service Provider
It is a great idea to seek the help of an experienced partner from the beginning itself, if you do not have enough in-house cloud migration expertise. A partner with previous experience, advanced automation tools, and statistical knowledge can help in analyzing the current environment, planning, design, migration, and post-migration operations.
A good partner can help you in,
- Planning & estimation
- Validating your models and strategies
- Getting the right teams/people
- Project management
- Migrating the representative workloads
- Get tooling to simulate the environment
- Measuring the performances
- Post-migration support
6. Planning for failure
We cannot guarantee a successful migration always. There could be failures, so planning for failures during migration is also important. During the modeling, document every issue that arises during the process and how it is resolved. Automate every change you make. Define a process to handle failures during the actual migration. Every time a migration fails, the process should define how to report it, who will act on it, who will troubleshoot and what tools will be used, etc. Build a process that can handle all aspects of migration, both success, and failure.
Modeling before migration is an important step towards successful migration. Having clear goals, the right selection of representative workloads, validation, cost estimation, processes, getting the help of an experienced partner, and the use of automation tools are critical components in this phase.
Are you interested in reading similar articles? Please follow us on LinkedIn.