Moving infrastructure to the cloud doesn’t have to be painful. It’s important to choose the right strategy, and there are a few of them: PaaS, SaaS or IaaS. Very often we hear about the “5 R’s”, and the number of terms and options can make you feel dizzy. What’s it all about? In today’s article, we explain cloud migration models and how they work.
Why are we moving to the cloud?
Many companies have particular business goals when it comes to cloud migration. According to the State of the Cloud 2019 report by Flexera, the main reasons for cloud migration are scalability and savings. The application hosted in the cloud must be available and scalable, and the price list of cloud services must be transparent. Currently, service providers’ offers are wide and flexible. Using dedicated platforms and services such as “add Service” you can easily add applications, virtual machines, and choose a geographic cloud region, and thanks to the providers’ calculators you can estimate the price of such services.
Read also: Azure – the biggest benefits
Before migrating to the cloud
Concepts such as “cloud-first strategy”, “multicloud” and “hybrid cloud” are no longer unfamiliar to entrepreneurs. Just a few years ago, migration to the cloud was an alternative. Currently, the decision to migrate is becoming a requirement for companies that want to operate in a digitally accelerated world. In addition to the decision on cloud migration, entrepreneurs also face decisions pertaining to:
- Providers – according to Gartner, the leaders are invariably AWS, Microsoft and Google.
- Migration strategies – the main models are based on Gartner’s “5 R’s”, which we will discuss below.
- A technology partner who will help with migration.
Which cloud migration model to choose?
The migration model decision is important, as in many cases it is associated with a change to the architecture of the transferred application, adjusting it so that it can work in a new environment. The main factors we should take into consideration when deciding on a given strategy are:
- the extent to which we are changing the code of the application,
- the speed of the migration,
- the initial cost,
- the cost in the long run,
- the involvement of tech specialists.
Based on the most important models described by Gartner and known as the “5 R’s” (Rehost, Refactor, Revise, Rebuild, and Replace), we have prepared a list of the most important cloud migration models.
Rehosting. Move and use
Application rehosting is also known as Infrastructure as a Service (IaaS). This is a model that allows you to move applications from the existing local server to the new cloud environment with little change to their architecture. The service provider provides the infrastructure according to the client’s requirements. These can be virtual machines, servers or disk space. The client hosts their application using the infrastructure of external providers. The most important players in this area are the big three mentioned in the Gartner report. In the case of rehosting, you may also come across the term Lift and Shift. This is simply a strategy for moving the application to the provider’s cloud environment along with data from the on-premises environment. In the past, rehosting was used for more complex applications. Currently, it is often used in the context of microservices and containerization, because this migration strategy works well for microservices applications and those that are optimized for private and public clouds.
When to choose rehosting?
Rehosting is a good choice when you want to reduce the costs related to hardware maintenance or replacement and gain access to innovative solutions, such as new applications.
- Fast migration due to no changes to the architecture.
- Lower initial expenses, which makes it a good option for smaller and growing companies that don’t want to invest in physical hardware.
- Reduction of going costs, such as equipment maintenance and management.
- Scalability and availability on demand – you can increase resources, such as virtual machines, if you need.
- More opportunities in the long run in terms of using pay-per-use services.
- IT departments in the company are responsible for the migration of the data, resources and applications.
- The architecture is unchanged, which may make it impossible to use the full potential of cloud services.
- Compared to other migration models, it is the provider’s responsibility to manage data and applications, as well as middleware and the operating system itself.
- The infrastructure provider may change the conditions of service, and conditions are imposed for using the service.
- It is not possible to further customize the application that is being moved.
- In the long run, there may be a need to invest in additional computing capacity.
Refactoring. Redesign and use
Application refactoring is also known as Platform as a Service. This migration strategy involves making changes to the application to adapt it to functioning in a cloud environment, but the functionality itself remains unchanged.
When to decide on refactoring?
This strategy is recommended when you do not want to lose the functionality of the application data. It works for systems and applications that are key to business when we want to maintain business continuity, while at the same time improving the quality of infrastructure.
- It allows you to improve the infrastructure.
- The complete reconstruction of the application is not required.
- More opportunities in the long run in terms of using pay-per-use services.
- Long-term scalability and return on investment.
- Using native cloud capabilities thanks to refactoring.
- The service provider’s responsibility is higher than in the case of rehosting.
- In contrast to rehosting, there is little need to make changes to the application architecture.
- No possibility of making major changes in architecture, and thereby taking advantage e.g. of the capabilities of microservices.
- Higher initial costs than “Lift and Shift” and greater involvement of technical teams due to changes in the application.
- The company is responsible for application management and data protection.
According to Gartner, improving existing code by using the potential of the abovementioned strategies (refactor or rehost) is also an important cloud migration strategy. This allows you to better adapt the application to operate in the provider’s environment.
When to revise?
It is worth choosing this option when you want to modify the application to a greater extent. Some applications may require a complete change of architecture.
- Better adaptation to functioning in the cloud environment.
- The possibility of adding new functionalities.
- Large possibilities in terms of the customization of the application.
- A labor-intensive solution due to significant changes in the code.
- Difficult to use for monolithic applications (e.g. written in older programming languages, such as Java).
Rebuild. Reconstruct and profit
In the case of refactoring, you can often go a step further, and here is when another “R” appears: Rebuild. This model involves a complete rebuilding and change of the application architecture and requires significant changes to the code (often it means the development of the application from scratch). This allows you to take advantage of more advanced, innovative functionalities on the provider’s cloud platform in the PaaS model.
When should you rebuild?
It is worth using this model when you want to gain access to more advanced functionalities. It is suitable for less complex applications that are not significantly dependent on other systems.
- Access to innovative solutions.
- Low implementation costs and no licensing costs.
- No dependency on middleware.
- Greater use of native cloud mechanisms.
- Not all application functionalities can be rebuilt, hence the level of functionality may differ from the original application.
- The risk of becoming dependent on one provider who takes care of the application’s reconstruction and customization.
Replace. Replace instead of moving
In this model, there are no changes to your software, but it is replaced with another solution. We choose new software with functionalities similar to those already used in the current system. This migration model is based on replacing the applications used by the company with their cloud equivalent.
When to replace the application?
This migration model (known as SaaS – Software as a Service) will work when the company wants to use given functionalities, as well as take advantage of the full potential of the cloud. It is worth considering this model when there are many applications and systems, and you want to minimize your involvement in managing them.
- Low migration cost.
- Avoiding software development costs (they are on the provider’s side).
- High scalability and availability.
- Using the potential of the cloud while maintaining known functionalities.
- All responsibility for providing and maintaining the application is on the provider’s side.
- Significant possibilities of adjusting the functionality according to company-specific needs.
- Customization has an effect on changes related to access and data management, as well as security matters. This is associated with waiting longer for implementation.
- Potential issues with access to data managed by the provider.
- Risk of becoming dependent on one software vendor (so-called “vendor lock-in”).
Despite the awareness of cloud benefits, the decision to migrate is only the first step. When we decide to move the infrastructure to the cloud, we face more decisions, each of which brings with it a number of opportunities. In the case of migration, we take short- and long-term goals into consideration, we think about what resources we have and to what extent we want to change the architecture of the application. In each case, it is crucial to consult experienced partners in this field who support companies in the process of digital transformation.