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?
A.
Deploy the application to Compute Engine and turn on autoscaling.
B.
Replace the application's features with appropriate microservices in phases.
C.
Refactor the monolithic application with appropriate microservices in a single effort and deploy it.
D.
Build a new application with the appropriate microservices separate from the monolith and replace it when it is complete.
The referenced article shows that the correct answer is B)
"The migration is done feature by feature, avoiding a large-scale migration event and its associated risks"
B. Replace the application's features with appropriate microservices in phases.
When transitioning from a monolithic application to a microservices architecture, it is generally best to do it incrementally, rather than all at once. This allows you to break down the application into smaller, manageable pieces and make sure each piece is functioning correctly before moving on to the next. It minimizes risk, allows for easier troubleshooting, and reduces the impact on the business because you can gradually shift traffic to the new services as they are tested and deployed.
Here's why the other options are less suitable:
A. Deploying the application to Compute Engine with autoscaling does not change the architecture from monolithic to microservices. It may help with some scaling issues but does not achieve the goal of re-architecting the application.
C. Refactoring the entire monolithic application into microservices in a single effort can be very risky. It can introduce complex issues that are hard to troubleshoot, and if something goes wrong, it could impact the entire business.
D. Building a new application separate from the monolith and replacing it once complete is another approach, but it can be less efficient than replacing in phases. It requires a big-bang cutover, which can be risky. Phased approaches allow for gradual cutover and testing in production with real users, which can lead to a more reliable outcome.
Option B is the best choice because it allows you to gradually replace the features of the monolithic application with microservices, minimizing the impact on the business. This approach also allows you to test and validate each microservice before fully integrating it into the application.
Option A is not a good choice because it does not address the need to refactor the application into a microservices model. Autoscaling may help with resource management, but it does not address the underlying architecture of the application.
Option C is not a good choice because refactoring the entire application into a microservices model in a single effort is likely to be a complex and risky process that could disrupt the business.
Option D is not a good choice because building a new application from scratch and replacing the monolith is likely to be a time-consuming and costly process that could disrupt the business. It is generally more efficient to gradually refactor an existing application into a microservices model rather than starting from scratch.
A voting comment increases the vote count for the chosen answer by one.
Upvoting a comment with a selected answer will also increase the vote count towards that answer by one.
So if you see a comment that you already agree with, you can upvote it instead of posting a new comment.
emmet
Highly Voted 4 years, 5 months agosantoshchauhan
Most Recent 7 months, 3 weeks agosantoshchauhan
7 months, 3 weeks agosankyboy
8 months, 3 weeks ago__rajan__
1 year, 1 month agomaxdanny
1 year, 2 months agoomermahgoub
1 year, 9 months agoomermahgoub
1 year, 9 months agoomermahgoub
1 year, 9 months agoomermahgoub
1 year, 9 months ago[Removed]
2 years, 1 month agotomato123
2 years, 2 months agocloud_enth0325
2 years, 4 months agoX627
2 years, 4 months agoTesterMctester
2 years, 8 months agoherocc
2 years, 9 months agosyu31svc
3 years, 4 months agonavidlaji
3 years, 8 months agosaurabh1805
3 years, 11 months ago