Ryan Pelerin, Founding Partner & COO, WSM International
From scalability to lower costs, the numerous benefits of cloud computing for enterprise organizations have been discussed at length. Unfortunately, for organizations looking to make the jump to the cloud, there is less discussion about how to make that happen. Migrating from a physical server environment to the cloud is not a simple task: it takes time, resources and highly specialized expertise/guidance. There are many questions to be answered and many decisions to be made—and the strategic planning process begins well before the first piece of data is transferred.
Creating a sound and secure migration/transformation strategy requires a sophisticated understanding of the complex considerations that enterprise organizations need to take into account before, during and after a migration to the cloud. In addition to determine the right hosting providers and how to architect the targeted cloud environment to best meet their needs, enterprise organizations need to think critically about a myriad of factors, including what needs to be migrated (such as applications/ workloads, email services, CRM tools, accounting systems), which programs need to be upgraded during the process, the order in which to migrate when some systems are dependent on others (dependency mapping), load testing and other performance testing options.
The basic steps to take before performing an enterprise level migration begin with identifying exactly what an organization is migrating and why they are migrating in the first place. This is the time to engage in some critically important high-level discovery. In addition to documenting a detailed inventory of everything that exists in your current environment, you need to begin thinking about what kinds of changes you would like to make. A great way to start that thought process is by outlining existing pain points, such as problems with auto-scaling, concerns about security vulnerabilities, or stability issues and downtime.
The “why” is particularly important, as the answers to that question will ultimately help organizations make better informed decisions— especially regarding proper design and configuration of the new environment. This detailed review and planning process also makes it possible to implement effective dev-ops tool chains for future code deployments—which will make it possible for future developers to push code to a staging server for review, approval and, subsequently, to go live. This is particularly important for enterprise level organizations that are frequently dealing with large numbers of servers and more complex environments.
While some like to like migrations can be partially performed using migration software, in most cases, a cloud transformation involves a great deal of manual work. The right software can automate some parts of the process and help make a migration more efficient, but the human element is a necessity—so ensure that you and your migration team have a firm understanding of the latest best practices related to cloud migrations.
For those who choose to engage a professional services firm to conduct their migration, identifying the right firm is key. Look for a firm that not only has a strong understanding of the types of automated solutions available, but also when they should and should not be employed. Additionally, a professional services migration partner should be able to architect your new environment, perform pertinent application installations and upgrades, conduct vulnerability scans to ensure your destination environment is secure, and execute load testing to guarantee that your cloud server will adequately handle expected traffic loads.
It is obviously essential that nothing is lost in the process of the migration. Other critical priorities to keep in mind during the migration and while deploying the environment include operational consistency (minimizing downtime), defining the scope of the migration, adhering to an established timeline, and understanding the technical and logistical requirements involved. Thorough testing of the workloads and applications that are being migrated is a key component of any migration. One thing to keep in mind is that this testing should be performed by the users themselves—the people that are going to be using these applications and accessing this information every day—and not technical staff who are not as intimately familiar with the granular details of the work.
In many cases, programmatic upgrades may be required. Be sure to have the right staff on hand to internally identify any incompatibilities or programmatic upgrades that will be required, or identify a migration services firm that brings these services to the table. Also, make sure you schedule in advance to have resources available when you need them. The last thing you want is to have two environments running concurrently for months due to poor planning and unforeseen issues.
Once the data and applications have been moved, extensive testing is required to make sure the new environment is fully functional. There is also plenty of general maintenance involved, including making sure that the software involved in tool chains and scalability is updated and maintained. Have a decommission plan in place: know when the new environment is secure, stable and recoverable and it is safe to decommission the old environment. Continual performance testing and load testing is key, especially if you are making numerous changes or have an application that is updated on a regular basis. Make sure you can handle not just the traffic you have today, but the traffic you may have in the future. Finally, once you are live in the new environment, you need to be performing proactive security scans at least quarterly to make sure you are secure.
Also understand that general maintenance practices should be observed after your migration is complete—specifically in regards to security. Even if vulnerability scans and hardening were conducted during your migration, these security processes should continue to be performed at least once every six months. If you possess the resources, however, it is a general best practice to execute them even more frequently.
Enterprise organizations undertake migrations for many reasons—the need to upgrade an OS or infrastructure, retire old equipment, or acquire higher performance and scalability capabilities. Regardless of the reason for your migration/transformation, taking the time to do it right is the key to minimizing expense and disruption—and avoiding having to do it again sooner than would normally be required.