CIO Guide To Large Application Modernization - Where The Wild Things Are!

 App Modernization is a spectrum - ranging from VM lift'n shift to a full on rewrite. with replatforming to containers and refactoring somewhere in between. Consulting companies are minting millions  billions of 💰milking  app transformation and digital transformation for all it worth. True app modernization begins from a position of pain and opportunity - Loss due the lack of new features or a feature velocity slow down due to technical debt or frequent change failures. When a confluence of business pain and paradigm shift in IT occurs such as cloud native, microservices and Kubernetes - large scale complex app modernization is funded (by LOB and IT).  So the first thing we need to be super clear on - WHY are we decomposing the large monolithic application. What value do we expect to get from this endeavor quantified in business metrics that we can explain to the Board or the C-suite. 

The plan for monolith decomposition needs to include clear milestones and MVPs along the way where each release/MVP shows clear technical and business value and progress on northstar metrics. Google invented the use🔘  of OKRs at scale (Objectives and Key Results). The first step in this journey is to establish clear northstar metrics around Goals - objectives and key-results. ▲ It is critical to create a baseline and define northstar metrics with the OKR framework to evaluate progress on a long project and define success. If value is not realized in the intermediate steps of the journey - modernization will fail. 

Lets focus on the Refactor lane first - How do you break a massive monolith with layers of afferent and efferent coupling and tons of dependencies on external systems with a mix of custom apps and vendor COTs with a ton of technical debt mixed in ? It is a process that starts with understanding the current domains - architecture/implementation and picking a vector for transformation. Let me elaborate - there are several vectors to breaking a monolith - 
  1. Team Topologies - Creation of SRE Teams, X-as-a-service, Anti-conway maneuver, Effective Structuring of platform and development teams to foster velocity of development 
  2. Design - Identify seams and craft a target architecture with Domain Driven Design strategic patterns implemented with Event Storming. Define End to end user stories with User/Customer journey mapping and Context Mapping, MVP Definition and a time-lapse Roadmap. Pick a core domain or an auxiliary domain and start strangling the monolith with tactical patterns
  3. Architecture - The focus here is one or more of the ilities i.e. reliability/stability, performance, resiliency, feature velocity, multi-tenancy,  (customer experience) usability. Pick one of the concerns and decompose the monolith based on heuristics defined. For instance if you are breaking the monolith to reduce downtime then patterns like bulkhead, circuit breaker, Timeouts, Fail Fast, Load shedding, Backpressure, governor, handshaking etc are used to analyze and separate the functional components of the system.
⠷ A set of tactical patterns such as Strangler, Anti Corruption Layer, Event Shunting, Facade, CDC, Event Escape, Data Driven Strangler,  APIs as seams, canaries, A/B routing are used to implement the decomposition in code.  App Modernization does not automatically mean breaking a monolith/COTS into constituent microservices - it could also mean just refactoring the monolith into a well structured monolith. Deployment is separate from design and structure. Depending on the 60 second business case (Strategic alignment, operational necessity, revenue, improving Customer Experience, innovation value, Effort, Cost) you may choose to jettison the app and rewrite a new one from scratch. This falls under the Rewrite umbrella of app modernization. The Replatform lane is the most well understood and with the least  amount of changes to the app code and architecture wherein apps are containerized with buildpacks, jib, or hand rolled docker files. App Estate assessment tools like Stratozone and  auto-containerization tools like Migrate 4 Anthos/GKE rule the roost here. Containerization allows you to take on the operational efficiency of the cloud with minimal development, people and CAPEX cost. 

🛰 A large monolithic transformation without executive air cover and clear OKRs is destined to fail. Beginning with the end in mind , measuring and iterating along the way to the end state is the only way to ensure success. People, process and organizational hacks like effective dev-platform team structuring (Team Topology), SRE operating principles and organizing teams based on the desired architecture (Anti-Conway) make it easy to make the right decisions by default. The best way to start app transformation (Tx) escaping the attack from organizational antibodies is to start with a small one-pizza startup team driving the Tx and then grow it gradually -  seeding and proliferating the right culture within the internal team. 📈

Average CIO tenure is roughly 4 years in 2021. Large scale complex App Modernization is a multi-year effort. Ensure that you are doing it for the right reasons because the path is rife with daemons. Leverage all the tech and people hacks to make the road smooth and demonstrate value along the way celebrating all the small successes. Do not forget the eventual goal for App Modernization is the success of the end consumer. So begin with Customer success in mind and leverage Google as a true partner in your journey. Happy App Tx!   

Comments

  1. One of the knowledge stuffed blogs i've ever seen. It helps revamp existing technology and architecture, using constantly evolving strategies to drive improved market performance. reffer the given blog for more info Application Modernization Services or
    reach +18882075969 for more information

    ReplyDelete

Post a Comment

Popular posts from this blog

An Ode To The Pivotal Dojo

15 DevOps Trends to Watch for in 2021- Google Cloud Has You Covered