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.
- Mastercard: Agile Business Architecture – Bringing Agile to the Whole Organization - July 30, 2018
- IaaS or PaaS – Migrating Legacy Microsoft Applications to Azure ‘Business as a Platform’ - July 21, 2018
- Serverless Startups – Inside @Skyscanner Engineering HQ, with Gareth Williams, CEO/Co-Founder - July 21, 2018
- Hybrid Cloud: Taming the Digital Dragon - July 21, 2018
- Microservices on AWS - April 28, 2018
- 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