Because of the great robust features of cloud computing, most industries are looking to migrate their infrastructure to the cloud. In this blog, we will see the cloud and advantages and disadvantages of cloud infrastructure and all aspects that need to be considered for migration.
Clouds are a large pool of easily usable and accessible virtualized resources such as hardware, development platforms and/or services. These resources can be dynamically reconfigured to adjust to a variable load (scale), allowing for optimum resource utilization. This pool of resources is typically provided by a pay-per-use model in which the Infrastructure Provider offers guarantees using customized SLAs.
Cloud migration is a process of moving all or part of your company data, services, applications and servers from the on-premise data center to the public cloud.
Enterprises are looking for cloud migration for many reasons. In this section, we will discuss the benefits of cloud migration and some points to be considered before migrating to the cloud from on-premise. Following this document, you can migrate infrastructure from one cloud provider to another too.
In this section, we will discuss and highlight a few important points,
The most important and visible feature of cloud migration is flexible server resources. We can quickly scale up infrastructure and their resources on large computing power for larger workload and higher numbers of users than on-premise infrastructure. For on-premise infrastructure, we always need to purchase the resources necessary and setup as needed.
Also, In cloud computing, it’s easy to scale down resources when not required without worrying about reusing the resources. But for on-premise, we can scale down the resources with some effort, but we always need to reuse them.
Ex. We can easily scale up and scale down hardware resources like vCPU, GPU, RAM, and Network Interface in our virtual servers.
Business perspective, every organization is looking for a cost-effective solution for their infrastructure and resources. There are many cases where we have temporary requirements of few resources. For on-premises, we always need to spend money on temporary resources too, and in many cases, these resources become useless after requirement overs.
Cloud migration always helps to vastly reduce IT’s operational and capital expenditure because cloud computing uses a pay-per-use-billing model. So here we pay only for what we use and how long we use it.
Many businesses can get improved performance after migration on the cloud. Performance and overall user experience can improve if the application or website is on a cloud compared to on-premise data centers. If an app or website is on cloud data that will not travel more to reach users, it will reduce network latency and improve user experience.
It’s very easy to access cloud services from anywhere in the world. If you have internet connectivity, then you are good to connect with your cloud services in a few clicks and a secure manner. Many cloud providers have their mobile applications to access the services for their clients easily.
Almost all cloud providers have their own security measures and policies to keep the clients’ resources and data secure. Of course, we can customize it as per our requirements.
All business always needs to be ready for any disaster recovery. Many small companies may miss this point because of the high cost of the required resources and expertise. Cloud providers already have many data centers that are in different geographical locations. Cloud providers always provide data replication to their other data centers. Replication of on-premise data centers to geographically other locations is very costly for organizations.
Cloud providers give a guarantee of resource uptime as per SLAs. The SLAa may depend on the provider you choose. Even if the whole datacenter is down, they have provision and replication to keep running the services.
Every technology has their positive and negative aspects, We discussed many positive aspects of cloud computation above. Let’s discuss a few negative aspects too. Here they are
We always need good internet connectivity to access cloud resources. The internet is not mandatory to access the on-premise resources from locally.
Since all cloud resources are accessible from the internet, they are vulnerable to cyber attacks. We can use TwoFactorAuthentication, VPN, and a secure layer of firewall to overcome this issue.
Stable and accessible services always need good planning and expertise to migrate the services with minimum downtime and data loss.
We have limited control for cloud predefined policies.
Ex. If your application requires multi-casting support then you need to think twice before migration.
Considering the above mentioned benefits, we can plan to migrate on the cloud. But again a new question comes to our mind – which cloud provider we should select to migrate There are many large cloud providers such as AWS, Azure, Google Cloud, Digital Ocean etc as well as a plethora of smaller ones. Here is a blog that compares AWS, Azure and Google Cloud Platform. It can help you to choose the correct cloud provider.
Before we get to the implementation, you need to decide what cloud computing service model you want to deploy. There are mainly three cloud computing service models.
IaaS is best for companies that are planning to migrate their whole on-premise infrastructure to the cloud. In this cloud computing service model we can create our virtual private data center on a cloud. Cloud providers in this case provide virtual machines, storage, containers, networking etc.
This is like purchasing a new laptop and configuring it as per your requirement by installing OS and all softwares. If hardware fails then the laptop provider is responsible for replacing it.
In the PaaS model, the os, softwares, networking,storage all is already configured by the service provider, you just need to use the services. This is like purchasing a new pre-configured laptop and starting to use it immediately. i.e. OS, utility softwares and management tools are already installed. You can directly start building the things on the top of these features you have got.”
Software as a Service is the cloud computing model where third party services are provided to the customer on a fee based model. There is no need to maintain anything or even build anything. Everything will be maintained by the provider itself.
In this section we will discuss a step by step guide on how to migrate the on-premise infrastructure to cloud computing.
In this phase study and research about cost assessment, licensing assessment, security and compliance assessment. You can compare the different cloud providers with all aspects mentioned in the above sections. You can compare different pricing from aws-tco-calculator, azure-price-calculator, google-price-calculator with on-premise datacenter and finalize the cloud provider. In this phase you should also clear your security related queries with the help of your security adviser from the cloud provider.
For smoother migration we have to define a detailed plan for migration by considering all aspects of the current and expected infrastructure on cloud. This entails the various steps such as:
As per the point 1, finalize the Cloud model you wish to go ahead with.
We will assume here that you are going with IaaS. Define the architecture you want to deploy on cloud. In this phase you should be aware of required services of cloud providers for your planned architecture. Ex. VPCs, AZ, ec2, vm etc. Build this architecture on the cloud, by defining region, availability zones, VPCs, subnetting, required resources, security measures, firewalls etc.
You can plan your migration plan by resolving any bottlenecks around data and dependencies.
Now it’s time to actually migrate the data and applications on the cloud. In the previous stage we have defined and built the required infrastructure on cloud such as region, AZ, VPCs, ec2 etc.
You should start with launching the required virtual servers with required OS, softwares in planned zone, security group and VPCs.
For Migrating infrastructure there is always large data that needs to migrate from on-premise to cloud. Most cloud providers can help in this phase depending on your data size. Before migration of data understand the available and required storage as well as the different database options with cloud.
Generally on-premise data can be two types, static (Ex. Existing backups, offline app data) and live (Ex. Application/website database).
There are several strategies to migrate the applications. We will discuss here the most famous strategies here,
This is the most popular migration strategy in the market for migration of applications from on-premise to cloud with IaaS model. It’s the fastest application migration method in the market. This involves redeploying applications on different hardware environments and changing the infrastructure configuration. This method is also known as “lift & shift”. It is like exporting the backup from one server and importing it on another server.
In this migration strategy a part of the application is moved from source to target followed by the next. This is a low risk approach but it’s very time consuming.
In this last phase of migration, we will take advantage of advanced features of the cloud computing services and enhance our services hosted on new cloud. There are many services which will be beneficial for our application to serve the best user experience to end clients. Services like auto scaling, load balancing, elasticity, detailed monitoring of resources, creating alarms etc will be beneficial.
Idea of cloud migration sounds very simple. Choosing a cloud migration strategy is easy but designing and implementation is a challenge. For successful migration of your infrastructure to cloud with minimum downtime and minimum loss, you will always require most experienced expertise either with the team or a cloud migration partner.