Legacy to Cloud Transformation: From Monolith to Microservices
From Monolith to Microservices
Modernization would enable government agencies to eliminate unnecessary, non standard and obsolete technologies, a huge cost they endure, but more importantly would enable them to break “innovation gridlock”.
Breaking innovation gridlock
Exploring the nature of these benefits can help specify exactly what business executives are hoping to gain by moving to the cloud, and headlined by this theme of “breaking innovation gridlock”, described in this whitepaper from HP.
Although moving to IaaS can deliver benefits such as elastic capacity and utility pricing for infrastructure level components, this isn’t really of strategic value to most large organisations as they aren’t constrained in these areas.
Instead where the major business value will come from is modernising this legacy environment, transforming the core enterprise applications to new cloud-centric approaches so that innovation gridlock is broken and a faster cycle of development throughput is achieved.
A variety of tools are available that can automate the process of transforming legacy code like COBOL into their modern equivalents on Java and .net, meaning they can be re-deployed to private or public Cloud services and most importantly, then much more easily modified by software developers, setting the scene for an agile Enterprise DevOps culture and faster change cycle achieved through Continuous Deployment practices.
Furthermore leading edge Cloud architecture principles can also be utilized, such as ‘Microservices’. This means breaking up large monolith software, like mainframe systems, into an array of small self-contained services making it even easier to implement change at a faster pace.
A microservices software architecture is the pinnacle of Cloud Native computing, and is relatively simple to understand when considering greenfield projects, but for most enterprise organizations it quickly brings them back around to the topic of legacy modernization, requiring a much more complex challenge of how to adapt their existing systems to this new approach.
This presentation from Linkedin offers a detailed case study, describing their approach for exactly this scenario – From a Monolith to Microservices + REST:
- A legacy estate of Java, Servlets, JSP and Oracle databases.
- A need to support fast release iterations as far back as 2010, which ran into the core challenges associated with monolith software: Test failures, rollback difficulties and complex orchestration and dependencies between services.
- So they broke apart the codebase, adopted Continuous Delivery practices and devolved controls, implementing a decentralized code base.
- The use of Java RPC meant a proliferation of APIs made backwards compatibility a big problem, a situation they addressed by moving to Rest.li, a REST + JSON framework, key components from the Netflix suite – Apache Zookeeper for dynamic service discovery, and DECO for URN resolution to explore data graphs.
This combination formed their particular ‘Microservices Recipe’, and when you consider the role social graphs play across the Linkedin environment, how our business contacts are inter-connected and we dynamically explore our way through them, you can see how it would be an ideal design for this type of web site.
Others offer very practical permutations. For example in this article Flickr describe how you can utilize Github to operate a ‘Microservices Store’.
“Some of the products that we work with at Yahoo have a very granular architecture with hundreds of micro-services working together. For scenarios like this, it’s convenient to store configurations for all services in a single repository. It greatly reduces the overhead of maintaining multiple repositories. We support this use case by having multiple top-level directories, each holding configurations for one service only.”
This is a great idea when you consider Github can provide the foundation for a complete DevOps toolchain, augmented in many ways such as adding apps to support Agile practices.
Similarly Sensedia propose a recipe for Legacy Modernization that defines how microservices can be utilized as an API enablement strategy.
Chandra Rajasekharaiah, Enterprise Solutions Architect at Macy’s, published this excellent deep dive analysis of the Monolith to Microservices transformation and the software engineering challenges it presents, and Anil Madan, VP of Engineering at Intuit also describes the same journey encompassing a broader perspective of platforms and organizations.
Finally on this note and to close the loop back to Architecture Driven Modernization this OMG presentation from Dr. Giovanni Traverso of Huawei is highly recommended.
This describes the process within an overall context of Omnichannel Digital Transformation and the role Business Architecture can play in planning and managing this exercise.
Specifically on slide 15 Giovanni highlights how to ‘Preserve legacy investments with an incremental capability approach through microservices on PaaS’, defining the BA framework for the approach that Sensidia described.
- AWS re:Invent 2017 Keynote – Werner Vogels - April 9, 2018
- Sharepoint to Azure Transformation - April 6, 2018
- Cloud Transformation: Migration and Modernization - April 6, 2018
- Cloud Native at AWS – Adrian Cockcroft, Amazon Web Services - January 21, 2018
- Mark Russinovich – Azure Container Service - January 21, 2018
- AWS Digital Government – Innovation and Transformation - January 18, 2018
- Tasktop – Value Stream Architecture - November 27, 2017
- Accenture – Open Source DevOps - November 27, 2017
- AWS – Enterprise Cloud Adoption Maturity - November 27, 2017
- Serverless Startups – Inside @Skyscanner Engineering HQ, with Gareth Williams, CEO/Co-Founder - November 26, 2017