In this increasingly technological age, we are witnessing a boom in digital modernisation and transformation (across all areas of business). The current pandemic situation further accelerates this trend and a successful digital transformation will, for many firms, make the difference between success and failure in the coming era.
We cannot address this topic without bringing cloud computing to the table. An increasing number of companies are studying the possibility of shifting their applications to the cloud and reaping the benefits of not having the responsibility and skills to maintain an on-premises infrastructure (this study suggests that “more than $1.3 trillion in IT spending will be affected by the shift to the cloud by 2022”).
Cloud computing usually has characteristics that your business can immediately take advantage of such as high availability, scalability, fault tolerance, security and many more.
Besides the technical aspect, migrating your applications to the cloud can have a meaningful impact on company costs and productivity.
With this change, it is possible to predict costs (with zero upfront expenditure as no on-premises infrastructure is needed) because you only pay for what you use. You should also consider the fact that you can use and pay for additional resources when needed and stop paying for them at any time. Also, with the rapid uptake of cloud computing, cloud providers can take advantage of economies of scale which then translates into lower prices for their customers.
All the technical skills needed to build and maintain data centre infrastructure are ensured by the cloud provider so you can boost the productivity of your business by letting your IT teams focus on application development.
When discussing the cloud migration process we are talking about planning how an organisation should move its data and applications out of the office and into the cloud.
The first step should be an assessment of the environment, to decide which resources should be migrated and what migration strategy should be used for each individual resource. The next steps should be selecting the cloud provider and executing the migration itself.
In this article, we will just cover the first step by presenting the most common strategies used for cloud migration (with some practical examples, for migrating real-world applications).
We will focus particularly focus on two cloud service models, IaaS –“Infrastructure as a service” and PaaS – “Platform as a service”.
The main difference between these two is in responsibility distribution:
With IaaS, the cloud provider manages everything to do with hardware but other concerns such as maintaining the OS and network and application configuration remain up to you.
The commonest migration strategies are:
- Rehost (AKA “lift and shift”) – migrate current application “as-is” to IaaS
- Refactor – migrate application “as-is” with minimal configuration changes to take advantage of cloud services (e.g. PaaS, DBaaS)
- Rearchitect – Modify application architecture/code to optimise it for new cloud functionalities
- Rebuild/New – (Re)build application adopting cloud-native methodologies and technologies
The following table presents a comparison of the different strategies (the objective factors have an impact on the choice of what strategy to apply):
So, how do we do this?
With one week to carry out our adoption, we are just going to look at the first two possible strategies, Rehost and Refactor.
Rehost, also known as “Lift and Shift”, is one of the most popular and well-used strategies. As the name suggests, this strategy consists of “lifting” your application out of the current host, for example, where it is hosted on your premises, and “shifting” it to your chosen cloud provider. This is one of the easiest ways to adopt the cloud model when there is no time to re-engineer your applications.
Your infrastructure costs are now being redirected to your cloud provider, who takes care of all the resources needed to run your application and sells that as a service (IaaS). The risk is low for this strategy and you receive immediate benefits and return on investment. If it is no longer needed, you can free up your on-premises infrastructure.
There are some tools available to carry out this migration, but some companies prefer to do it manually. This strategy is a good first option for cloud adoption but, depending on your application, of course, the next that we will present can benefit more from essential cloud-native features.
To simplify this concept here’s an example of an application that runs in a Java environment, uses a database management system, runs it all under a Linux system.
With Rehost, you just move all the layers of your application to a cloud provider infrastructure, but the cloud has much more to offer.
With Refactoring you are not altering the core of your application, you are just moving different layers of your application to cloud managed services. Think about all the time and resources spent managing databases, backups, updates and many other concerns. Most cloud providers offer database-as-a-service where all of those concerns are managed by them. Some services offer fully managed platforms where you can run your application layer and all of the capacity provisioning, scaling, load balancing and other features are managed by your cloud provider.
This strategy may need code more changes and additional configuration than the Rehost option, but you’ll benefit from it.
While this is a big step up from the Rehost strategy, it is still far from leveraging all the cloud-native capabilities that you can benefit from, but with one week to migrate to the cloud, it is a good one.
If you want to know more or if you want more information/help with your cloud migration strategy plan, please do get in touch with us.