By now, virtually everyone who works in tech is familiar with the benefits of migrating from on-premises data centers to the cloud. Yet when you actually undertake a migration to the cloud, you quickly realize that achieving the advantages that the cloud is supposed to confer requires some work. The cloud is a complex place, and navigating the variety of services, configurations and architectures that are available from the cloud can be quite tricky.
With that challenge in mind, this article discusses how to plan a cloud migration strategy that actually leverages the benefits of the cloud. It explains how to align the outcomes you hope to achieve from a cloud migration with the practices that will help you to get there.
The end goals of cloud migration
Typically, organizations planning to migrate on-premises data or workloads to the cloud are hoping to achieve the following benefits:
- Reduction of capital expenditures on on-premises hardware.
- Lower ongoing costs (by eliminating the need to pay for on-premises hardware maintenance).
- Higher availability of workloads (because the cloud is less likely to fail than is your on-premises data center, generally speaking).
- Greater scalability and flexibility (because in the cloud, resources are virtually unlimited).
- Faster time-to-market (because resource limitations won’t get in the way of delivering products).
- Enhanced ability to focus on your core business, rather than on maintaining a data center.
- Simpler security and compliance (via the consolidation of workloads in cloud environments designed to meet security and compliance requirements).
This is not an exhaustive list of reasons to migrate to the cloud, but it covers the key strategic drivers that are behind most enterprise cloud migrations.
Planning a cloud migration that delivers the desired benefits
Moving workloads to the cloud is typically quite easy. But if you move them without assessing which cloud deployment options and architectural designs best align with your desired goals, you are unlikely to fully realize the cloud migration goals described above.
That’s why it’s important to identify which cloud migration goals are most important to your business, then implement strategies and designs that support those goals. Following, are key considerations to weigh in that regard.
Cloud computing architecture
Perhaps the most crucial question to answer, especially if high availability and cost-efficiency are key goals of your cloud migration, is how to design your cloud architecture. Will you use a single public cloud to host all of your workloads? Or will you adopt a multi-cloud approach by spreading them across different clouds? The latter strategy tends to deliver higher degrees of availability while also offering more opportunities for optimizing costs (because you can select cloud services from multiple providers, and choose whichever is the most cost-efficient for each of your workloads).
You can also, of course, adopt a hybrid architecture that leaves some of your workloads on-premises, while others run in one or multiple public clouds. This approach can also help to optimize costs and availability, although it means that you will have to continue to set up and maintain on-premises infrastructure – a burden that may or may not be worth the extra flexibility that a hybrid strategy confers.
If your cloud migration includes multiple workloads – as many do – segmenting those workloads from each other is important for maximizing security, as well as simplifying management.
There are different ways to segment workloads. You could create a separate cloud account for each individual workload, although that can become messy if you have applications that need to interact with each other (which is more difficult when each application runs under a different account). Providing each department or team in your company with its own cloud account is another, somewhat more flexible approach.
Defining a network architecture that enables the proper level of segmentation is also important. Will you assign different subnets to each workload? Configuring separate DHCP blocks is another approach. Likewise, you will need to decide whether your cloud workloads are exposed directly to the Internet, or go through your on-premise data center or network switches. The latter approach is more secure, but it is also less agile.
High availability strategy
Although (as noted above) cloud-based servers tend to be more reliable than those that run on-premises, clouds can fail, too. Thus, simply placing workloads in the cloud is no guarantee of high availability.
If you have specific uptime requirements, you must plan a high availability strategy that can address them. Geo-replicating workloads across multiple cloud regions is one approach. Creating redundant workloads on multiple clouds (thereby adopting a multi-cloud strategy) is another, although it will be more complicated and, generally speaking, more expensive.
Disaster recovery planning is a factor in achieving high availability, too. If a cloud (or on-premises) workload fails, how will you recover it? Will you perform image-based backup of your systems, then recover them directly to cloud-based virtual machines using those same images? Or will you rely on file-level backup, which provides more agility, but typically makes the recovery process more complicated?
Moving to the cloud provides many opportunities for optimizing cost. But it doesn’t magically lead to a lower bill. You need to ensure that you have plans and tools in place to control cloud costs.
IT governance is part of the answer. It’s critical to have policies in place that define when your organization can spin up a new resource in the cloud, and who will be responsible for ensuring that the resource is properly sized and shut down when it is no longer necessary. Such policies help to guard against the risk of your cloud bills becoming bloated due to the creation of unnecessary or over-provisioned resources in the cloud.
At the same time, cost-monitoring tools can help you identify components of your cloud environment where, despite your best efforts, cost inefficiencies exist. Cloud vendors provide some native tools (such as AWS Cost Explorer) to help with cost control. But since the cloud providers don’t exactly go out of their way to help you spend less on their platforms, it’s wise to adopt a third-party cost-monitoring tool for the cloud that provides more detailed analysis and recommendations. Many APM tools now include cost-control features for this purpose.
The cloud is powerful, but it’s not a silver bullet. Actually achieving all of the potential benefits requires devising cloud migration strategies that support the specific goals you hope to get out of your cloud strategy.
Have questions on what you need to create a cloud native platform?
The Weaveworks team can help you simplify and integrate applications from the vast landscape of cloud native technologies both OSS and paid. Together we can create a cloud native reference architecture and platform that fits your business needs. Manage a secure, up to date and fully integrated Kubernetes platform in git using GitOps.