Application migration is a significant part of any organization’s cloud journey. There are five primary approaches for application migration to the cloud: rehost, refactor, revise, rebuild, and replace. Each of these approaches require minor adjustments depending on the detail of the specific application migration. In a few cases, it is possible you might need to split an application and utilize more than one strategy to complete application migration strategy.
![](https://blogs.perficient.com/wp-content/blogs.dir/1/files/2019/06/five-r-image-1024x540.png)
Five Rs Transit Map
The selection of the correct approach can be a complicated decision based on many different criteria. In all approaches, the following items should receive some consideration.
Due diligence
We often use this term “due diligence” when talking about many different decision-making processes. What we often don’t do is to define what that term means in the specific context of the process. In the context of the “application migration” process, we will define it to include all of the following items at a minimum:
Understand data requirements
Take the time to evaluate all of the required data sources for the application to function as expected. This includes a review of the downstream or upstream data sets that might need the data that is being collected by the application.
Understand all dependencies
Most applications will have some number of dependencies on outside functions including network access, data routines, APIs, other applications, etc.. All dependencies need to be dealt with in some way for the application to retain all of its functional capabilities.
Understand performance requirements
There is a built-in assumption around “cloud think.” Cloud think says all applications will perform the same or better in the cloud. In some highly specialized applications, this might not be true. This requirement does not mean you must do full performance testing in the cloud prior to starting the migration. This requirement is suggesting that a quick review of the application architecture with the subject matter expert will usually point out any unique requirements that might not be compatible with the normal cloud implementation.
Understand all major user groups
Make sure all the major application user groups or known and how they access the application today. If a majority of the users are accessing the application in some non-standard fashion or connection, then the practitioner will need to examine how you would match that access methodology in the cloud. If the majority or largest user group is located in a different geographic location, then the current cloud regional location being used by your organization will require some additional work and cost.
Analysis portfolio assessment
Determining which applications will move to the cloud and in what order is a very important step. This assessment ranges from a simple review of three or four characteristics to a full in-depth assessment with hundreds of characteristics. The important part is to always do some level of assessment of ALL applications in the portfolio to develop some perspective on how many applications are candidates for movement to the cloud and if there is some quick categorization that can provide a high-level roadmap.
Not everything will move
It is amazing how many times clients do not see this as an option. The simple fact is that many applications in the portfolio simply do not need to move to the cloud. Many applications should not move simply because they are still supporting an “old” way of doing business. This is one way to promote a timely move to a “new” way of doing business. Of course, we must mention one use that is often a reason to not move an application is security. We would challenge any assumption that says you cannot move an application purely based on security in today’s current cloud provider environments. Today’s cloud providers are spending several orders of magnitude more money on security than any single corporation can spend on cyber security.
New development
When migrating or simply developing new applications for a cloud environment, it is important to consider all of the new architectures and tools available to leverage all of the power in the cloud. Some of the new architectural principles that should be considered are:
- Designing the application as a collection of services
- Decoupling data as much as possible
- Building in scalability, redundancy, and scalability to all aspects of the architecture
- Security should be a forethought not an afterthought – built-in
Developing new applications is easy today thanks to the new cloud application tools. These tools will require the developers in most technology groups to rethink everything about their normal best practices and current governance/development processes. Cloud “DevOps” is the catch phrase but it is often not interpreted in the fullest context of the term. DevOps will not only automate the application development work but also automate the infrastructure setup and the operational support after production launch. Take full advantage of these tools. This is a major change management exercise for the whole business not just the technology group.
Organizations have multiple decisions to make in this new cloud-based application development arena. From how you will maintain and deploy the code, to what kind of cloud environment for deployment. Some of the options that a development organization can utilize are container-based technology, serverless, PaaS, IaaS, and portability.
Summary
It is clear there are many things to consider when migrating your applications to the cloud. Movement of your applications to the cloud will still be one of the most beneficial outcomes from your cloud journey. This is where the proverbial “rubber hits the road” for your cloud journey. Most early adopters of the cloud are realizing significant benefits from the application migrations they have completed. However, many early adopters are also seeing how their approach needs to be modified. This is largely due to all the new tools and capabilities that have been released in the last two to three years. We hope this blog has given you some baseline items to consider in this part of your cloud journey.