An issue I've seen happen is as the number of microservices grows, no one is keeping track of the service dependencies. So what happens is service A goes down, and then someone says "Service B is down too." and then people start thinking it's some wider outage (they always blame the network) but it turns out that Service B just depends on Service A, but it wasn't widely known. The issue then becomes that teams don't…
Ask HN: Why Not Microservices?
11–20 of 30 posts
Re: Ask HN: Why Not Microservices?
#12Unfortunately, what I sometimes see is that it's replaced by multiple interacting single points of failures - i.e., if any one of them fails the whole rube goldberg architecture fails, and there are so many different things that can fail! ...which is clearly worse than just having a monolith.
Re: Ask HN: Why Not Microservices?
#13When a company gets large enough people start having time to write software that manages other software. And IMO microservices are a late-stage outcome of this.
Layers upon layers upon layers of abstraction being developed and maintained to help provide autonomy (within a certain context) while working with hundreds of other developers.
For the vast majority of use cases a few VMs or even bare metal cloud instances will be a lot more cost effective and stable.
Re: Ask HN: Why Not Microservices?
#14Microservices can be good. The problem is that people don't use them right (partially because everyone was joining in the fade, so lots of bad examples). Dependency management, documentation, and loose coupling are important. I work at a company that embraced microservices, but it's basically architected as a distributed monolithic. And there's so much overhead for context switching, paperwork, etc. It's like how the…
Re: Ask HN: Why Not Microservices?
#15Microservices, in my experience, are chiefly about scaling teams (more freedom to move faster). In fewer cases, it is about optimizing a hot path. If it is not one of those, I'm having a hard time seeing why you would want the overhead of microservices.
Re: Ask HN: Why Not Microservices?
#16An issue I've seen happen is as the number of microservices grows, no one is keeping track of the service dependencies. So what happens is service A goes down, and then someone says "Service B is down too." and then people start thinking it's some wider outage (they always blame the network) but it turns out that Service B just depends on Service A, but it wasn't widely known. The issue then becomes that teams don't…
If a service A going down brings service B down, then microservices aren't divided right and/or too much data is being shared over the network rather than async transformed/copied. The only time this should matter is if there's a breaking change to the way services communicate which should be very well known, e.g. having to bump a protocol version number with downstream understanding before upstream.
Re: Ask HN: Why Not Microservices?
#17Microservices, in my experience, are chiefly about scaling teams (more freedom to move faster). In fewer cases, it is about optimizing a hot path. If it is not one of those, I'm having a hard time seeing why you would want the overhead of microservices.
Have you run into problems where it hinders team scaling by creating too much cross-team friction?
The other thing that can be a pain is due to rigid agile sprints. Need a change? Well that might get into their next sprint but there are probably other, higher priorities, so maybe next quarter. Or team A just does the work on team B’s service, and waits for code reviews and quality checks.
Re: Ask HN: Why Not Microservices?
#18However, I will say we've taken some considerations from the microservices discussion to heart and thought more about fault-tolerance, ci/cd, and streamlining the deployment process so we've definitely gotten some value from the zeitgeist.
That said, most of our apps end up being a fairly relaxed monolith with some service integrations here and there. And you know what? It's pretty nice sometimes :)
Re: Ask HN: Why Not Microservices?
#19* compliance requirements? -> (micro)services. you need to host some data and workers in separate guarded environments
* too many legacy third party dependencies which might fail or stop whole processes? -> wrap with service
* different independent products in a company? services
for everything else use monoliths
Re: Ask HN: Why Not Microservices?
#20There are problems that are shared between monolith and microservice architectures, and there are problems that are different.
For the problems that are different, the ones faced in microservice architectures are considered "harder," and there are fewer battle-tested tools/ecosystems to help deal with those problems (though this second part is rapidly changing).
For the problems that are the same, adopting a microservice architecture will likely force you to solve those problems much earlier. This is dangerous because it takes effort which could be directed to improving your product instead, and you may find yourself solving them in a way which doesn't end up scaling for your organization.
I think they're great, but they require a level of consistent investment in tooling which is not in many organization's DNA.