Migrate From Monolithic To Microservices Using Strangler Pattern
There are three steps to transition from a monolithic application to microservices by implementing the Strangler Pattern:
- Transform
- Co-Exist
- Eliminate
Step 1 – Transform
Create a new parallel site, either in the cloud or the existing environment, but based on modern approaches.
领英推è
Step 2 – Co-Exist
Leave the existing site where it is for the time being. Redirect from the existing site to the new site, so the functionality is implemented incrementally.
Step 3 – Eliminate
Remove the old functionality from the existing site (or stop maintaining it) as traffic is redirected away from that portion of the old site.
Below are some of the actions required when applying the Strangler Pattern to migrate monolithic applications:
- Identify the size of the application. Strangler Pattern is not suitable for small systems where the complexity is low and the size is small.
- Check the system design and compatibility as this pattern cannot be used in systems where requests to the backend system cannot be intercepted and routed.
- Ensure that the facade does not become a single point of failure or a performance bottleneck.
- Analyze the current legacy monolithic application to split the application based on functional transactions by considering the code complexity. The complexity factor is crucial for the transformation decision using the Strangler Pattern.
- Visualize the legacy components in detail and new modern application in a single view to scope both the code bases.
- Analyze any security threat determinations in the new modern architecture.
- Identify the legacy monolithic application architecture to discover any functional understanding, isolation of components and separation.
- Start developing the modern microservices application per the business functional level for isolated components as a service.
- Include a Strangler facade that can route the functional transactions to legacy or modernized microservices from access channels.
- The legacy application will be larger in size to handle the more functional transaction than the modern microservices application that will handle only the migrated functionality.
- The functional transformation will happen incrementally for identified system functions over time to microservices. The modern application will grow larger and handle more functions than the monolithic legacy application.
- Once all the monolithic functions are transformed into the new microservice application, the transition is complete. All the functions are on the microservices platform, and the monolithic application can now be retired.