Application migration is an important part of any company’s cloud journey. There are five main approaches to migrating applications to the cloud: rehosting, refactoring, overhaul, rebuild and replacement. Each of these approaches requires minor adjustments based on the details of the specific application migration. In some cases, you may need to split an application and use multiple strategies to complete the application migration strategy.
Choosing the right approach can be a complicated decision, based on many different criteria. In all approaches, the following elements should be considered:
We often use the term ‘due diligence when talking about many different decision-making processes. What we often fail to do is to define the meaning of this term in the specific context of the process. In the context of the “application migration” process, we will define this process to include at least all the following:
Understand the data requirements
Take the time to assess all the data sources required for the application to work as intended. This includes a review of downstream or upstream data sets that may require the data collected by the application.
Understand all dependencies
Most applications will have several dependencies on external functions, including network access and data routines. These include network access, APIs, other applications, etc. All dependencies must be addressed in some way for the application to retain its full functional capabilities.
Understanding performance requirements
There is a built-in assumption around “cloud thinking”. “Depending on the cloud, all applications will perform the same or better in the cloud. In some highly specialized applications, this may not be true. This requirement does not mean that you must do extensive performance testing in the cloud before starting the migration. This requirement suggests that a quick review of the application architecture with the subject matter expert will generally indicate unique requirements that may not be compatible with the normal cloud implementation.
Understand all major user groups
Make sure that all major user groups are known and how they access the application today. If most users are accessing the application in a non-standard way or connection, then the practitioner will need to look at the fit you would have with this cloud access methodology. If the largest or most important user group is in a different geographical location, the regional location of the cloud currently used by your organization will require additional work and cost.
Assessment of the analysis portfolio
Determining which applications will be moved to the cloud and in what order is a very important step. This assessment ranges from a simple review of three or four features to a full in-depth assessment with hundreds of features. The important thing is to always do some level of assessment of ALL applications in the portfolio to determine how many applications are likely to move to the cloud and whether a quick categorization can provide a high-level roadmap. Not everything will move
It’s amazing how often customers don’t 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 do not need to be moved simply because they still support an “old” way of doing business. This is a way to promote the rapid transition to a “new” way of doing business. Of course, we should mention one use that is often a reason not to move an application, and that is security. We would challenge any assumption that you cannot move an application solely based on security in today’s cloud provider environments. Today’s cloud providers spend far more money on security than any company can spend on cyber security.
When migrating or simply developing new applications for a cloud environment, it is important to consider all the new architectures and tools available to harness the full power of the cloud.
- Designing the application as a collection of services
- Decoupling data as much as possible
- Integrate scalability, redundancy, and extensibility into all aspects of the architecture. Security should not be an afterthought – Integrated
Developing new applications is easy today thanks to new cloud application tools. These tools will force developers in most technology groups to rethink everything about their usual best practices and current governance/development processes. Cloud “DevOps” is the slogan, but it is often not interpreted in the fullest context of the term. DevOps will automate not only the work of application development but also the configuration of the infrastructure and operational support after the production launch. Take full advantage of these tools. This is a major change management exercise for the entire company, not just the technology group.
Organizations have many decisions to make in this new cloud-based application development space. From how you are going to manage and deploy the code, to what type of cloud environment to deploy in. Some of the options a development organization can use are container-based technology, serverless, PaaS, IaaS, and portability.
There are many things to consider when migrating your applications. applications to the cloud. Moving your applications to the cloud will remain one of the most beneficial outcomes of your cloud journey. This is where the proverbial “rubber hits the road” for your cloud journey. Most early adopters of the cloud derive significant benefits from the application migrations they have completed. However, many early adopters also see how their approach needs to change. This is largely due to the new tools and features that have been developed over the last two to three years. We hope that this blog has provided you with some basics to consider in this part of your cloud journey.
Would you like to get more information about cloud app development? Contact us today.