Decide whether to replatform or refactor
When you replatform an application, you’ll typically look to make minimal changes to the code—just enough to ensure it can deliver the same functionality in the new cloud platform.
With refactoring, you’ll be effectively breaking the application apart and reconstructing it in a new cloud native architecture. You may also be using a new programming language. The degree of code change—and subsequent testing required—will be significant.
For some applications it could make sense to go even further and consider service decomposition. This is where you decompose your application into a series of reusable components or microservices, expose them via APIs, and use an orchestration layer like Kubernetes. You may even decide your application warrants a serverless architecture, in which you run code in the cloud without managing infrastructure at all.
Digital decoupling—Run old and new in parallel
Digital decoupling is an advanced technique for modernizing large legacy applications, such as mainframe software.
Older applications can be challenging to rebuild in the cloud, especially when it comes to replicating their embedded business logic and data. With digital decoupling, you build a new system alongside a as a greenfield cloud-native development. By synchronizing data in your new and old systems in close to real time, both can run in parallel. This means you can modernize the application a piece at a time, using cloud-native architectures, modern techniques like DevSecOps and high levels of automation.
Think of it like building a new house right next to your existing home. You get to live in both buildings, while you gradually connect up each room and transfer your furniture across. Eventually you’re ready to live only in the new, without ever having had to renovate the old.
Sidestepping the pitfall
- Focus on the value, not just the cost. Modernization is a long-term process based on a solid assessment of where you are now and where you want to be.
- Don’t try to boil the ocean. The sheer scale of a cloud modernization initiative can be overwhelming. Consider breaking your application portfolio down into segments.
- Align the organization behind the program. One of the biggest hazards in any cloud journey is a lack of alignment between IT and the rest of the business.
- Think about the operating model. A modernization program must consider how the organization will run and manage the new applications in the cloud. There needs to be a fundamental change in ways of working, both at the infrastructure and the application level.
- Be smart about your priorities. In deciding which applications to modernize first, it’s absolutely right to be application-led and value-led. But getting bogged down in your most challenging project straight away is guaranteed to sap enthusiasm, even if it ultimately delivers the most value.
- Decide about the data. If an application has a database sitting behind it, modernizing the two together should be considered.
- Make time for testing. Many legacy applications are the result of years of accumulated knowledge and effort. To achieve the same level of performance, your modernization program needs to respect that degree of effort and test the refactored code exhaustively.
- Consider third-party tools carefully. There are several solutions available in the market that can automate aspects of your modernization program, but it’s unrealistic to expect any tool to automate modernization with 100% accuracy.
Welcome to the modern world
Modernization is the key to reducing technical debt and ramping up organizational speed and agility in the cloud. But full-scale modernization won’t be right for every application, every circumstance or even every company. There may be good business reasons for focusing initially on rehosting as a means to get to cloud quickly, but even if you choose to defer modernization for now, it needs to be on your agenda for the future.
Ultimately, if you want to benefit from the full value of cloud, you need to be working towards cloud native applications, infrastructure and data. A carefully considered modernization program is how you get there.