To fully capitalise on the cloud’s scalability and flexibility, most enterprises go beyond a simple lift-and-shift approach, instead injecting them with cloud-native capabilities — a strategy that sounds simple but can quickly prove complex. After all, as with many seemingly easy tasks, the devil is in the details.
Fortunately, modernising a legacy app for the cloud doesn’t have to be a lengthy, painful process, as long as you have realistic expectations and are fully prepared to approach the task. To help you avoid unnecessary pain and frustration, consider the following advice from cloud modernisation experts.
1. Modernise with purpose
Before you begin, it’s essential to tie any app modernisation project to the business need that is being addressed, says Aparna Sharma, a managing partner for hybrid cloud services at IBM Consulting. Whether it’s cost savings, improved security, enhancing functionality, or anything else, your efforts will be successful only if you know in advance what you want to achieve from them.
Sharma says she often sees modernisation initiatives driven purely by the desire to get in on the latest innovation. Such an attitude can lead to complications down the road, Sharma warns. “With a clear outcome and understanding of your ‘why,’ you can make a set of choices that meet and solve your business need,” she says.
2. Assess resources — and partner as necessary
Successfully modernising legacy apps starts with tackling the upfront work needed to identify the workloads and assets that will be moved to the cloud, as well as dependencies, licensing impacts, and business use cases and benefits.
“It requires engaging stakeholders across the organisation, not just within IT, and having expertise in both the legacy application and the cloud you’re moving to,” says Steve Woodgate, strategic advisor at managed cloud service provider Navisite. “This will enable you to define, develop, and execute the optimal migration and modernisation path for your business.”
Woodgate observes that enterprises migrating apps to the cloud often struggle with skills shortages, lacking the in-house expertise needed to enable a seamless transition. Given app modernisation complexity, he notes that it’s worth looking at external partners to help guide the process and ensure business impact is minimised during the transition.
3. Analyse app architecture thoroughly
Carefully assess the app being modernised to understand its architecture, dependencies, and requirements. “Identify components that can be migrated to the cloud and evaluate any necessary modifications,” recommends Nandor Csonka, global practice lead for cloud security services at IT security firm NCC Group.
Next, determine the most suitable application migration strategy, whether it’s “lift-and-shift,” re-platforming, refactoring, or even rebuilding the application from scratch. “Select the strategy that best aligns with your goals, timeline, and resources,” Csonka advises.
4. Rehost, refactor, rearchitect, rebuild, replace — tailor your approach
Many techniques and options are available for app modernisation, including rehosting, refactoring, rearchitecting, rebuilding, and replacing, observes Will Perry, US cloud innovation and engineering leader at business consulting firm PwC. Picking the right approach requires carefully studying all of the available options before making a final selection.
Successful application modernisation should increase business and IT agility and scalability, Perry says. “Replatforming and refactoring approaches take advantage of cloud services and solution patterns, making this most often the most effective approach.”
5. Modernise related processes
Amod Bavare, a principal with Deloitte Consulting, advises also modernising underlying business processes, including user experience and agility. “Keeping those needs in mind allows for business modernisation while also modernising the application architecture, technology stack, and the ability to leverage cloud-native services like AI/ML, mobility, and microservices,” he explains.
Bavare considers this approach to be very effective. “You can help business users achieve their vision and goals, as well as making them more productive and competitive in the market.”
6. Plan for the long haul
Ashish Varerkar, head of the cloud practice at a technology consulting firm LTIMindtree, believes that a continuous, modular approach provides the best path to modernisation.
He observes that most initial app modernisation projects draw adopters onto a permanent modernisation path, enabling them to gradually align with key business and technology goals. What’s not effective, Varerkar warns, is creating a one-size-fits-all standardised catalog of services and forcing apps to align in lockstep.
Varerkar also advises against rebuilding an app from scratch. This approach seldom meets objectives and can easily get abandoned due to budget cuts, overspending, or loss of interest, he notes. “The best approach is continuous modernisation, where the first iteration could include de-risking and onboarding new capabilities … for set objectives and KPIs.”
7. Think holistically
Given the various options, it’s important to follow a holistic approach to address not only current app modernisation but alignment with future challenges, suggests Mukund Srinivasan, principal for cloud and custom applications at technology consulting firm Capgemini Americas.
CIOs should leverage partners with deep insights on cloud transformation, specifically through cloud platforms that are built using DevSecOps, cloud-native accelerators, infrastructure as code, and other techniques and tools, Srinivasan says. “This enables speedy software delivery and a multipronged modernisation approach.”
A holistic approach, Srinivasan explains, also allows adopters to leverage “a combination of proven accelerators and patterns combined across the software delivery lifecycle to accelerate application transformation, deployment, and verification.”
8. Create a maturity assessment framework
Rajat Kohli, partner at global management consultancy Zinnov, stresses the importance of building a three-step maturity assessment framework.
The first step, discovery and assessment, will create insights into current challenges and final outcome needs, as well as providing a general assessment of the current technology stack and architecture, Kohli says.
Step two, roadmap creation, calls for developing a blueprint that builds a defined path leading to end-goal scenarios.
The final step, role allocation, involves assigning responsibilities to specific stakeholders for the execution of multiple critical tasks. He advises that relevant parties should include internal and external teams, technology providers, and application testing groups.
Kohli believes that creating an assessment framework will improve ROI, accelerate development, and enable enterprises to build new capabilities into their modernised app. “It facilitates multiple applications to run simultaneously and to connect seamlessly with the existing applications,” he explains. “It also eliminates the barriers that limit productivity and integration to create new user experiences and improved performance.”
It’s important to follow a systematic approach, says Vasyl Magometa, co-founder and CTO at software development firm Reenbit. “Start by analysing your app’s architecture and identifying areas that can be improved,” he suggests. “Then, break down your app into smaller, independent components that can be deployed and scaled individually.”
Next, Magometa recommends leveraging cloud-native services and technologies, such as containers and serverless computing, to optimise app performance and scalability. “Finally, ensure a smooth transition by gradually migrating your app to the cloud and testing it thoroughly.”
10. Make good on the promise of containers and microservices
Apps modernisation is challenging, particularly for IT leaders and teams facing the task for the very first time. Sergey Gladun, founder and CEO of software developer Agilie.com, recalls the first major app he needed to modernise. Gladun describes the task as a challenging project that involved significant refactoring. “We chose to break down the monolithic application into smaller, more manageable microservices.”
The process was time-consuming, but it made the application more scalable and cloud-friendly, Gladun says. “Microservices allowed us to develop, test, deploy, and scale components independently, making the overall development process more efficient,” he explains.
Additionally, containerisation, through tools such as Docker and Kubernetes, further enhanced scalability and portability, making the application platform-independent. “Our modernisation process not only improved the app’s performance, but also simplified the maintenance and updates,” Gladun concludes.