The rapid growth of cloud computing over the last few years doesn’t show signs of slowing. In fact, cloud adoption accelerated in 2020, fueled by the pandemic and a shift to remote work. A survey by Snow Software shows that 82% of respondents ramped up their use of cloud services in 2020, with 60% saying their use of off-premises technologies has continued to grow. Organizations of all sizes are striving to move their operations to the cloud, motivated by a set of significant advantages cloud technologies provide to businesses.
This comprehensive article leads you through the whole process, from understanding the benefits to carrying out the actual migration. First we discuss the reasons for high cloud adoption rates. Then we provide detailed step-by-step plan for migrating to the cloud. We also talk in detail about six migration strategies and illustrate them based on our experience.
Top reasons for cloud migration
Before we dive deep into the technical implementation, let’s find out why most companies migrate to the cloud.
-
Cost savings
Migrating to the cloud helps you lower your capital and operational expenditures. When using cloud services, you don’t need to purchase costly server equipment and spend money on its maintenance, electricity, or HVAC. In addition, your system administrators and DevOps specialists don’t need to maintain or back up hardware and software, which reduces operational costs as well.
Most cloud hosting providers offer a pay-as-you-go business model, so your monthly expenses will depend on the resources you actually use.
In 2019, SherWeb compared the cost of hosting an app on-premises and in the cloud. For the same configuration, the price of hosting on-premises was $1,476.31 a month, while the cost of hosting in the cloud was just $313.90 monthly.
In 2019, TymeBank, the first digital bank in South Africa, moved 85% of their infrastructure from data centers to the AWS Cloud. Thanks to this solution, the company managed to reduce its infrastructure costs by 47%.
-
Scalability and flexibility
By migrating to the cloud, you can automatically add resources during peak loads and lower capacity when traffic is low. In contrast, when hosting on-premises, you need to buy additional equipment to meet peak loads and spend time on its installation.
Migrating data to the cloud is a good choice if you plan to expand to new markets and quickly acquire new customers. Moving to the cloud in 2008 helped Netflix withstand incremental growth in monthly streaming hours. In 2016, Netflix expanded its service to over 130 new countries. Leveraging several AWS cloud regions made global expansion smooth and successful.
-
Reliability
Unfortunately, downtime and hardware failures happen. But migrating to cloud computing can greatly shorten downtimes and reduce the risk of data loss. Most cloud hosting providers offer service-level agreements (SLAs) that guarantee up to 99.9% availability.
Providers analyze and mitigate all risks of failure related to hardware, timeouts, failover faults, and migration problems. The cloud provider is responsible for backups and quick disaster recovery, which saves time for your company on recovery operations.
-
Accessibility
With the cloud, you can access your applications anywhere and anytime, provided you have an internet connection. Hence, companies can offer more flexible work hours to their employees and support remote work.
Is migrating to the cloud secure?
Security and privacy remain the main roadblocks to public cloud migration. In reality, top IaaS providers do their utmost to protect their customers’ data. They employ top-notch data security specialists, regularly update their software, and strive to comply with modern data protection regulations.
To achieve more security, you can use a private cloud. This is a cloud environment dedicated to only one organization and hosted on the organization’s own equipment or by a cloud provider (like Amazon, which offers a Virtual Private Cloud service). Though a private cloud may cost more and require more effort from your IT staff, this option provides a higher level of security and customization while offering the same level of efficiency and scalability as a public cloud. A hybrid cloud environment, which is steadily gaining popularity among organizations, uses both private and public clouds.
Gartner highlights the importance of companies designing effective risk management strategies aligned with their overarching cloud strategies. According to Gartner’s recent predictions, through 2025, 99% of cloud security failures will be the customer’s fault. So to make your cloud migration and hosting highly secure, you should focus on implementing and enforcing policies on cloud ownership, responsibility, and risk acceptance as well as staff training.
How to do migration: step-by-step instructions
When you realize that the benefits of the cloud environment align with your business needs, it’s time to start preparing to migrate. Bear in mind that smooth migration requires qualified IT staff with experience in application migration. If your staff isn’t experienced enough to lead the migration process, you can contract with a qualified development team that can do everything for you.
Step 1. Define the scope of migration and choose a cloud migration strategy
Start by auditing and assessing your application portfolio for cloud readiness. What software do you use? Which apps will bring value when in the cloud? What applications don’t bring value and should be turned off? During this assessment, you can use a TIME quadrant, one of the effective methods to define what to do with each component of your current system. For this, assess the business and technical value of each solution.
The category of your app will help you identify the right migration strategy. There are six strategies for cloud migration, also called the 6 R’s: rehost, replatform, refactor, retire, repurchase, and retain.
So here’s the example of the TIME analysis and an explanation of each section of the quadrant:
-
Tolerate. If you understand that migrating apps to the cloud won’t help you achieve your business goals or you can’t move them to the digital environment for compliance reasons, put them in the Tolerate section. Retaining the app on-premises is the best practices for these apps.
-
Invest. Under this category fall innovative applications that have high business value but need some improvements and adjustments to deliver maximum value to your business. Replatforming and rearchitecting are common strategies for this type of app.
-
Migrate. To this section, you should put apps that have high business value and don’t need extensive changes. Use a rehosting strategy for them.
-
Eliminate. Applications that should be eliminated have low quality and low business value. In this case, you should use a repurchase or retire strategy.
Another important aspect to consider when choosing a migration strategy is the dependencies between applications. Will moving one app to the cloud negatively affect the work of other apps? To rapidly and accurately define dependencies between your system components, you can use application dependency mapping tools. These tools, which usually come as part of application management software, automatically discover connections between components and give you a holistic view of the whole infrastructure. This article overviews ten effective tools for dependency mapping including Dynatrace, Datadog, AppDynamics, and Prometheus.
Step 2. Define migration success
Next step in the migration project plan is to establish key performance indicators. This will help you measure how well cloud migration meets your business goals and expectations. Here are the types of KPIs you should measure before and after moving data to the cloud:
-
Average response time – the amount of time the server usually takes to return the results of a request within a certain period
-
Peak response time – the longest server response time within a certain period
-
Overall uptime – the percentage of time the server and app are accessible to end users and running correctly
-
Error rates – the ratio between error requests and total requests
-
Error types – the number of logged app errors and thrown exceptions grouped by type
-
Network latency – the delay between a user’s request and server’s response
-
CPU and memory use
-
Number of data exposures
-
Indicators of compromise (IOCs) – the frequency of unusual and potentially malicious user activity
-
Network I/O – the use of network bandwidth for all monitored network devices
-
Monthly billing
-
Ongoing staffing costs
-
Hardware costs
-
External costs (money saved on electricity, storage, etc.)
Step 3. Choose a cloud environment
When choosing a cloud environment, you should first define the cloud model you want to use. You can choose between a public cloud (with a multi-tenant architecture, meaning several customers share cloud resources), private cloud, and hybrid cloud model.
Next, you should choose a cloud provider. Every year, Gartner releases its Magic Quadrant that defines the best cloud IaaS providers in terms of worldwide enterprise adoption, capabilities, and service availability. In the Magic Quadrant for global IaaS vendors in 2020, Gartner defines three market leaders:
-
Amazon Web Services (AWS)
AWS is an undisputed market leader that’s available in 24 geographic regions. It offers a wide range of services (analytics, storage, networking, content delivery, and machine learning) and has proved to be highly secure, reliable, and scalable. It has extensive technical documentation and a great set of cloud migration software to easen migration and maintenance. This is our choice for most projects.
But there are some downsides of AWS cloud migration as well. AWS limits resource use by region, so the quantity of resources you can access is determined by your location. Also, it has a complex billing system that can be confusing.
-
Microsoft Azure
Azure boasts high reliability and availability and offers an SLA of 99.95% (which is approximately 4.3 hours of downtime per year). It’s a scalable and secure solution. On the other hand, it has the lowest ratio of availability zones to regions of any provider in Gartner’s Magic Quadrant. Also, it requires qualified IT staff to constantly manage and maintain the system (for things like patching and server monitoring). Azure cloud migration can be easily done with tools offered by Azure.
-
Google Cloud Platform (GCP)
GCP offers live migrations of Virtual Machines during maintenance events, meaning you can migrate live loads without app downtime. GCP is a cost-effective and secure solution that has a large list of availability zones, boasts high performance and productivity, and stores data redundantly, with automatic checksums to ensure data integrity.
But developers complain about a lack of quick and efficient customer support from Google after Google cloud migration. Also, despite its robust AI and big data services, some developers claim that GCP doesn’t innovate fast enough to keep up with AWS.
Read also: Cloud Services for Web Apps
All these solutions offer public, private, and hybrid clouds. They also have price calculators so you can quickly find out the cost of using AWS, Azure, or GCP services. You can also think about setting up a multicloud environment, which entails using multiple private and public clouds. For instance, you can conduct both IBM cloud migration and AWS cloud storage migration, but it can cause some difficulties in maintaining both clouds.
Step 4. Automate migration
There are a variety of tools that can do the heavy lifting associated with cloud migration and post-migration support, helping organizations increase their speed of cloud migration, reduce migration risks and downtime, and lower migration costs. Moreover, companies leveraging automation tools can increase the success rate of their migration projects and witness faster time-to-value. What are these tools and how do they help businesses?
Sometimes, you need to migrate hundreds of app components and conduct thousands of performance tests to ensure a successful migration. Cloud migration tools can come to the rescue, allowing developers to automate the migration process.
The big three IaaS providers offer their own services for this task:
-
AWS Server Migration Service
-
Azure Migrate
-
Google Migrate for Compute Engine
There are also a number of paid cloud-agnostic solutions like Carbonite Migrate, Micro Focus PlateSpin, Turbonomic, and Corent SurPaaS.
Migrating to the cloud won’t free your IT staff from managing environments and deployments. But infrastructure-as-code, or IaC, tools can. IaC uses a high-level coding language to replace manual infrastructure management efforts with several lines of code. With IaC, DevOps specialists explicitly code all infrastructure specifications in configuration files, and the whole infrastructure operates under rules defined in these files.
Developers can automate continuous integration (CI), continuous delivery (CD), and test-driven development (TDD). You can also optimize your environment by the use of deployment orchestration, automated testing libraries, and version control systems (VCSs) to enhance and strengthen the integrity and fault tolerance of your software.
The most commonly used IaC tools include Terraform, AWS CloudFormation, Azure Resource Manager, and Google Cloud Deployment Manager. Terraform is a cloud-agnostic solution, while the other tools are dedicated to a certain cloud provider.
Step 5. Conduct a pilot migration
We recommend you test the waters before you proceed to large-scale migration. Conducting a pilot migration helps you check if your migration strategy is effective and identify what improvements you can make for a smooth large-scale migration.
To conduct a pilot migration:
-
Prepare the cloud platform.
-
Identify the first adopters – apps or data with a low workload that will be migrated.
-
Migrate pilot workloads to the cloud.
-
Measure and analyze performance and latency.
-
Optimize processes, tools, and platforms according to insights you receive.
-
Get ready for large-scale migration.
Step 6. Migrate
At this point, you’ve made all the preparations and proved your strategy. Now it’s time to take the most important step in the migration project lifecycle. In this step, you’ll run your production migration and move your users and data over to the cloud.
As you can see, migrating to the cloud is a complex process that requires thoughtful preparation and solid experience from the team responsible. If you want to move your system to the cloud-based infrastructure and are looking for developers who can do it for you, Yalantis can help. Our specialists have a strong track record of conducting successful cloud migrations. We’ll carefully analyze your business needs and help you choose the strategy that fits you best.
Ten articles before and after
Six Cloud Migration Strategies Based on Yalantis’ Experience
Which Tool Your Logistics App Needs: Mapbox or Google Maps Platform
How to Use WebSockets in Go: A Comprehensive Guide
Full List of the Best Android App Development Tools in 2021
How to Choose the Best-Fit Tools for Logistics Software Optimization