The Neomonolith
inconshreveable.com
The Neomonolith
1–8 of 8 posts
Re: The Neomonolith
#2Re: The Neomonolith
#3Re: The Neomonolith
#4> In addition, with a monolith, the work of monitoring, alerting, configuration, and a local development is paid once. But with a microservice design, that cost must be paid for every service.
The second sentence is only true if _every service_ actually rolls its own monitoring, alerting, etc. I cannot imagine a situation like that in practice. The standardization of those things (and more, such as build and deployment pipelines) is necessary to enable microservices in the first place. It's true that plenty of organizations committed to their microservice framework will also run some things outside of it, but I've never seen the ratio of things in the framework closer to 0 than 1.
Re: The Neomonolith
#5I've seen a variant of the "Neomonolith" where you run the same code base on every server, but use a proxy layer (Zuul/Apache/Nginx) to isolate specific parts of the code base on a set of servers for specific, high-traffic use cases. That way you're still only building one image, but you can still get some of the performance tuning / concurrency benefits of micro services without all the headache. Still doesn't come…
Re: The Neomonolith
#6The issue I bumped into is getting /api to talk to /auth; OP recommends making them talk over RPC.
Re: The Neomonolith
#7Re: The Neomonolith
#8I've seen a variant of the "Neomonolith" where you run the same code base on every server, but use a proxy layer (Zuul/Apache/Nginx) to isolate specific parts of the code base on a set of servers for specific, high-traffic use cases. That way you're still only building one image, but you can still get some of the performance tuning / concurrency benefits of micro services without all the headache. Still doesn't come…
Have you got any examples of this? I would like to see if you do.
Note this doesn't help if your persistence layer gets overwhelmed (since in a monolith you'll still probably have a single persistence layer). Separating the persistence layer is by far the hardest part of moving from a monolithic to a micro services architecture.