Migrating VMs to the cloud requires careful planning to avoid compatibility and cost issues. VM migrations are not a straightforward task in large enterprises with hundreds, perhaps thousands of applications and workloads, all of which may run differently in the cloud than they did on-prem.
Here are some tips to ensure a successful and secure VM migration to GCP.
1. Calculate your current spend & anticipated costs
Enterprises should calculate their total cost of migrating VMs to the cloud before doing anything else. When tallying your current spend, include not only the value of your hardware but ancillary costs like power and cooling, networking gear, staffing, and rent for your data center. When developing your cost model for the cloud, include items such as operating system licenses, virtual machine types and sizes, and any other services or licensed software your applications require.
Consider getting a CloudPhysics or StratoZone assessment, free tools that will help you evaluate your current infrastructure, calculate your costs, and compare them to GCP.
2. Right-size your VMs
Virtual machines on GCP come in a variety of sizes, including custom sizing. Because size determines cost, it’s crucial to right-size your VMs’ CPU, memory, and storage footprint before moving them. This is another good reason to get an environment assessment. After migration, you can continue to optimize your VM performance and minimize spend with tools such as Stackdriver and the GCP Pricing Calculator.
3. Determine a migration strategy for each application
After calculating moving costs and right-sizing your VMs, it’s time to evaluate each of your applications so that you can pick the correct strategy and timetable for each. Apps should be organized into three broad categories: those that will be easy to move, those that will be difficult to move, and those that cannot be moved.
- Applications that will be easy to move because they are relatively new, don’t have a lot of dependencies, have few or no licensing restrictions, and will adapt well to the scalability of the cloud.
- Applications that are difficult to move because they aren’t tolerant to scaling, have more dependencies, or are subject to complex licensing restrictions.
- Applications that cannot be moved due to compliance or licensing restrictions, or because they are older legacy applications that would require significant refactoring or a complete rewrite.
4. Design your migration roadmap
Before migrating any VMs, you must design and build out your GCP environment. Work with your migration partner to compare the various services offered on GCP and determine which ones your applications need and use. You will also need to design and build the network that your applications will be migrated to, keeping in mind that you’re not only designing a network for an application but also a pattern your enterprise will follow. Considerations include whether you will have one network for each application or for each environment, how your applications will access shared services, and whether to implement a hub-and-spoke model or a full network mesh.
Planning for application monitoring and management are also part of this process, along with establishing governance. Determine which employees will have accounts in GCP; who will have permission to create, access, modify, and destroy cloud resources; how resources will be paid for; and the policy for creating and deleting GCP accounts.
5. Use Velostrata to simplify lift & shift
Velostrata (Migrate for Compute Engine) is free for customers migrating to GCP. It simplifies the process of lifting and shifting VMs, reduces migration time, and ensures that the process is done securely and at scale. In addition to right-sizing recommendations, built-in testing, and stateful rollback (if needed), Velostrata also features migration waves, an invaluable tool for organizing and automating mass migrations. This feature lets users organize their systems into batches that will be migrated in a specific order, ensuring that dependencies are retained, and monitor the entire process through a web-based interface.