Decisions made and tactics employed before, during and after a transformation from a physical or hybrid environment to the cloud can have a measurable impact on the efficiency and effectiveness of the migration, ultimately impacting both your timeline and bottom line. From strategic planning and execution to thorough testing and post-migration support, the process is fraught with potential for complications and even catastrophe.
Understanding the current best practices for migrating workloads, data and applications from traditional hosting environments to the cloud has become more important than ever. This is the third article in a four-part series outlining those best practices, and the priorities and special circumstances that need to be considered to ensure a smooth cloud migration.
In this post, I'll cover everything from how to prepare the source environment and manage the execution of the actual migration tasks to the appropriate testing and security review protocols that need to be completed prior to the go-live event.
Maintain operational integrity
The cloud migration execution should be structured in a way that minimizes disruptions to operational integrity. To the extent that it's plausible, avoid activities or processes that will adversely impact the source environment or business operations that depend on your applications and servers. That may be as simple as avoiding work on a heavily used database during normal business hours to prevent a database lock that would result in a service interruption.
Now also is the time to ensure that the target environment is properly configured. If there are any known issues or conditions that need to be addressed, such as dependent application interfaces or user accounts that are required at the new servers, these should be accounted for before the migration execution begins.
Establish oversight and review processes
Adhering to best practices and project management principles is particularly important when dealing with any highly complex, technical endeavor. Set clear and specific milestones for deliverables and provide regular updates to project stakeholders.
Put a formal structure in place -- a weekly call or a meeting -- to provide those updates and to help resolve potential complications as they arise. Without that structure and accountability in place, it is easy to get days, weeks, or even months behind schedule, which can result in costly delays.
Troubleshooting before and after
Make sure that all software licensing is updated to allow for testing during and after the migration. If an application is licensed to a specific server, for example, and not for the new environment, resolving licensing issues mid-migration will be difficult without impacting normal operations.
On the back end, it's important to perform basic structural/functional testing both during and after the migration, but it's also important to conduct an additional layer of functionality testing that involves end users. Avoid using third parties at this junction -- there's no substitute for the insight and perspective that can be provided by the people who work with and depend on these applications every day.
If an error is discovered in the new environment, test users can pass it onto the migration team to determine if the issue is programmatic or configuration related before implementing a fix. Testing is not complete until everything is working perfectly, and all applications and operations are running seamlessly in the new environment.
Load testing and vulnerability assessments
After user testing is complete, load testing and security reviews are the final steps before the go-live event. Load testing is essential, as the new environment might operate very differently with five compared to 500 users.
Load testing can ensure that any auto-scaling functionality is working correctly, validates the new environment’s ability to handle the anticipated load that will be placed on it, and identifies the maximum concurrent connections that the workloads, applications and websites can handle before failure. It can also provide key insight on the average page load time and the overall performance of your applications on the new environment and facilitate additional performance optimization.
Vulnerability testing through server and application-side security reviews will also ensure that the new environment and any sensitive data are secure. Security and malware scans can be performed during and after the migration process so that most major server- and application-related vulnerabilities are addressed in advance. This also is the time to set up a DevOps tool chain: Consult with your migration team to get recommendations for this process before the go-live event.
Properly preparing the target environment, managing the migration process, thorough functional validation and conducting the necessary load and performance testing -- along with security assessments -- will not only ensure a smooth transition, but also provide peace of mind regarding performance capabilities of your new environment well after go-live.