Re-Architecting Monolithic Applications to Microservices: Efficient Approach with Minimal Business Impact

Re-Architecting Monolithic Applications to Microservices

Question

You want to re-architect a monolithic application so that it follows a microservices model.

You want to accomplish this efficiently while minimizing the impact of this change to the business.

Which approach should you take?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

C.

https://cloud.google.com/solutions/migrating-a-monolithic-app-to-microservices-gke

When re-architecting a monolithic application to follow a microservices model, there are different approaches to take. The most efficient approach while minimizing the impact on the business is to replace the application's features with appropriate microservices in phases. This approach is commonly referred to as the "Strangler Fig" pattern, named after the way a vine can strangle a tree by gradually replacing its structure.

The Strangler Fig pattern involves decomposing the monolithic application into smaller, more manageable services over time. The first step is to identify the different parts of the monolith that can be extracted as separate services. This can be done by analyzing the application's functionality and identifying areas that are independent or can be decoupled from the rest of the application.

Once the different services have been identified, they can be built as independent microservices that can communicate with each other using APIs. The new microservices can then gradually replace the functionality of the monolith in phases. This approach minimizes the risk of disrupting the business since each new microservice can be thoroughly tested before being put into production.

The advantage of this approach is that it allows for a gradual migration from the monolith to microservices, minimizing disruption to the business. It also allows for the development of new features in a more modular and flexible way, as each microservice can be developed and deployed independently.

Deploying the monolith to Compute Engine and turning on autoscaling (Option A) does not address the need for re-architecting the application into microservices, and may not result in the desired level of scalability and flexibility.

Refactoring the monolithic application into microservices in a single effort and deploying it (Option C) can be risky, as it requires a large upfront investment and may cause significant disruption to the business if the new microservices are not thoroughly tested before deployment.

Building a new application with appropriate microservices separate from the monolith and replacing it when it is complete (Option D) can be a viable option, but it may take longer to complete and could be more expensive than the Strangler Fig approach. It also requires developing a new application from scratch, which can be time-consuming and costly.