“Strangling the Monolith”: The Starting Point of the Modernization Journey
Back to table of contents
Persistent’s 8-Step Plan for a Successful Product Modernization Journey
Next
03
Previous
01
Architectural Patterns that Impact Your Software Modernization Path
6 minute read
Back to table of contents
Start with a few modules that are easy to extract.
Next, select those that frequently change.
Then, take on those with significantly different
resource needs (e.g., exceptional computation needs, needing memory database, etc.)
Next steps
Re-imagine software products
Leverage our expertise in next-gen MACH software architectures to modernize your software products quickly.
Learn More
Rejuvenate mature products
Focus on improving revenue, efficiency and customer delight with our intelligent sustenance engineering framework.
Learn More
Re-group with our experts
Schedule a discussion with our modernization and sustenance experts who can help you chart a path forward.
Contact Us
Next steps
Re-imagine software products
Leverage our expertise in next-gen MACH software architectures to modernize your software products quickly.
Learn More
Rejuvenate mature products
Focus on improving revenue, efficiency and customer delight with our intelligent sustenance engineering framework.
Learn More
Re-group with our experts
Schedule a discussion with our modernization and sustenance experts who can help you chart a path forward.
Contact Us
Of the approximately 16,000 tree species in South America’s Amazon jungle, the strangler fig is one of the most unusual. Adapted for the dense, dark forest, these vines take root around old-growth trees, enveloping them in a lattice pattern as they ascend towards the sun above the canopy. For a time, both tree and vine survive together, with the strangler even offering some protection to the tree against tropical storms. Eventually, however, the vines steal enough of the nutrients that the host tree dies, leaving only the strangler as a columnar tree on its own.
Just like a strangler vine, microservices need to grow around the “grand old tree” — the monolithic codebase of the legacy application — through iterative refactoring.
This exploration journey requires identifying what the software “core” is the strangler pattern needs to surround.
When you are modernizing a system, you are creating smaller pieces that are by their very nature meant to scale. As they grow and expand, they gradually shift the business logic and different features and functions of the codebase from the monolith—bearing fruit in the form of improved business performance.
Of the approximately 16,000 tree species in South America’s Amazon jungle, the strangler fig is one of the most unusual. Adapted for the dense, dark forest, these vines take root around old-growth trees, enveloping them in a lattice pattern as they ascend towards the sun above the canopy. For a time, both tree and vine survive together, with the strangler even offering some protection to the tree against tropical storms. Eventually, however, the vines steal enough of the nutrients that the host tree dies, leaving only the strangler as a columnar tree on its own.
There are many factors that determine how you approach that process, which we will discuss in more detail in the next section, but there are 4 guiding principles that need to be adhered to:
Implement all new functionality through microservices — and don’t fall into the trap of adding more code to the monolith
Using coarse-grained API as a natural seam, split the presentation layer from the business logic and data access layers and develop, deploy, and scale them independently.
Refactor existing modules within the monolith into standalone microservices iteratively. When enough modules move out, the monolith will be strangled entirely or remain as another microservice.
Prioritize modules to be re-factored to microservices using this approach:
Finally, prioritize modules in order of highest-to-lowest business benefit.
There are many factors that determine how you approach that process, which we will discuss in more detail in the next section, but there are 4 guiding principles that need to be adhered to:
1
2
3
4
5
Just like a strangler vine, microservices need to grow around the “grand old tree” — the monolithic codebase of the legacy application — through iterative refactoring.
2
3
4
5