What is Cloud Migration?
The term “cloud” commonly refers to a public cloud – multi data centers operated by a cloud provider, providing computing services to the general public. A private cloud is a similar infrastructure, but one operated only by one organization, offering a high level of isolation for data and applications.
Cloud services offer computing resources, storage, and networking as a service, known as infrastructure as a service (IaaS), as well as platform as a service (PaaS) offerings such as database, analytics, AI, and CI/CD solutions. The leading providers of IaaS and PaaS cloud services include Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP).
Another type of cloud provider is software as a service (SaaS) vendors, who provide one or more software solutions as a managed service accessible over the Internet.
For organizations, migrating to the cloud usually involves shifting activities and data from its on-premises servers to the cloud. Cloud migration, however, also refers to the act of moving a company’s data and applications from one cloud service provider to another.
Conversely, cloud exit or cloud repatriation involves a reverse migration—moving back from the cloud to an on-premises data center.
Why Migrate to the Cloud?
Besides freeing your IT department from maintaining resources and managing uptime, cloud computing is a logical step in a company’s growth. Instead of continuously upgrading storage, management, and analytic capabilities, organizations can rely on cloud providers, who provide state of the art, constantly evolving technical infrastructure.
When considering which applications to migrate to the cloud, most organizations start with low-risk applications that are not mission critical and do not contain sensitive data. When a cloud deployment is mature and tested, organizations can consider migrating core applications. Still, in many cases, low-latency and high-security workloads will be retained on-premises.
Cloud computing is becoming a major expense for most IT and DevOps departments. Most providers offer scalable pay-per-usage models, and while pricing is transparent, it is complex and can be unpredictable. Be wary of sudden cost escalation due to scaling of resources and the danger of cloud resources “sprawl”, which can easily happen without close central management.
Many organizations combine multiple cloud providers (known as “multi cloud”), and also integrate on-premises resources with the public cloud (known as a “hybrid cloud”). Multi cloud and hybrid cloud architectures are more complex to manage, but can help organizations enjoy the best of all worlds – getting the benefits of one or more public cloud providers, as well as the higher security and control of the on-premise environment.
Cloud Migration Methods
The following six methods of cloud migration were originally proposed by Gartner in what came to be known as the “6 Rs” model.
The rehosting strategy, also called “lift and shift”, means taking an application as-is and moving it from on-premises hosting to the cloud. You can transfer an exact copy of your current environment without major changes, to get the fastest result from your cloud migration. Companies that have a conservative culture or don’t have a long-term strategy to leverage advanced cloud features will find this strategy ideal.
Replatforming is similar to rehosting – the core architecture of the application remains unchanged – but it involves making several adjustments to optimize the application for a cloud environment. This is also a good strategy for conservative organizations looking to build trust in the cloud, while providing benefits such as improving system performance.
Repurchasing is migrating an on-premise application to a new cloud-native product, typically a software as a service (SaaS) platform that provides the same or better capabilities. The problem is that the organization loses its expertise and investment in the existing code, and needs to train the team on the new platform. However, repurchasing is still the most cost effective option when migrating from a highly customized legacy environment.
Refactoring (or redesigning) means rebuilding your application from scratch. This is typically driven by business demands to take advantage of cloud features not available in traditional environments, such as cloud autoscaling and serverless computing. Refactoring is usually the most expensive option, but it is most compatible with future versions.
Retiring means simply getting rid of applications in your portfolio that are obsolete or can effectively be replaced. There is no use migrating a defunct application to the cloud. By shutting it down, you can save resources which can be diverted to migrating other, actively used applications to the cloud.
Retaining means keeping the application on-premises without moving it to the cloud. In many scenarios, the cloud is not a good option. For example, this may be because data cannot be moved off-premises due to regulatory compliance, because on-premises applications were recently upgraded and are a good match for user requirements. In cases like these, applications can be retained on-premises, saving the cost and complexity of migration.
Best Practices for Your Cloud Migration
Here are a few best practices that can help you make the most of your cloud migration.
Translate Integrations to the Cloud Environment
An important consideration when determining the complexity of an application is its level of integration. Application dependencies need to be mapped to understand all communications with other applications and servers, their significance, and whether they are bidirectional or unidirectional.
These dependencies need to be uncovered and correctly translated to the cloud environment. In many cases, applications in the cloud can continue to communicate with on-premises applications, and vice versa.
Automate Where Possible
Downtime and service disruption are a risk in any cloud migration project. It is an important best practice to automate repeated operations whenever possible, to minimize human error and improve efficiency. Automation can not only make migration more reliable, but also speed up the process and reduce costs.
There are many tools designed to automate the migration of virtual machines and data – public cloud providers provide several excellent tools for free, to encourage migration to their cloud. Automation allows you to run tested, step-by-step cloud migration processes, increasing your chances of success.
Train Staff Early
Many organizations lack in-house cloud expertise, and this can be a barrier to successful migration. To prepare for migration, train employees as soon as possible on the cloud platform you intend to migrate to. Cloud environments are highly abstracted, and staff need a thorough introduction to concepts and operational principles.
A common option is to involve outside consultants, who can not only help with cloud implementation, but also train and enrich the knowledge of in-house staff.
Properly Manage Software Licensing
It is important to properly manage software licenses in the cloud. Most cloud providers offer Bring Your Own License (BYOL) programs, which make it possible to move licenses to the cloud and receive a discount on cloud services. If your organization does not own a license, or BYOL is not supported, you will need to pay for licenses on the cloud, either in the way of increased per-hour service fees, or by directly purchasing licenses from the software vendor.
A good way to approach license management is to audit all enterprise applications, and carefully check their licensing rules in a cloud computing environment, and understand your licensing obligations and costs. If in doubt, check with the vendor to see if the application is available in the cloud and in which manner the existing license can be used.
Monitor Cloud Usage
Due to the complexity and low visibility in cloud environments, a large percentage of cloud budgets is commonly wasted. To use your budget effectively, monitor your cloud usage from day one. Set up a centralized monitoring dashboard that can help you identify active cloud resources, determine their utilization, and receive recommendations for conserving resources and saving costs.
Monitoring is equally important for compliance and security. Ensure you collect logs from all applications, servers, databases, and network touchpoints on the cloud, to enable auditing of your environment and enable detection and response to security incidents.
In this article I discussed a few crucial aspects of migrating workloads to the cloud:
- Benefits of cloud migration, including cost savings, increased flexibility and resilience
- Six approaches for migrating applications to the cloud, from “rehosting” which moves applications as is to the cloud, to “refactoring” which involves completely rebuilding apps for the cloud
- Best practices to make cloud migrations successful, including automation, training, and monitoring to ensure workloads are working correctly in the cloud
I hope this will be of help as your organization pursues its journey to the cloud.