5 ms·
> Micro services don't only provide horizontal scaling but also operational scaling I think it's more accurate to say that they don't necessarily provide any h
by allover 7y ago
> Micro services don't only provide horizontal scaling but also operational scaling
I think it's more accurate to say that they don't necessarily provide any horizontal scaling, but can provide operational scaling. This is only if there's some natural team divide, and the impact of the introduced complexity does not outweigh the benefits of the teams being able to test and deploy independently.
Sadly in most cases I have come across, this is not the case -- the complexity introduced and/or problems caused by lack of ecosystem maturity outweigh any potential organisational benefit.
> release coordination
Microservices can make release coordination significantly harder i.e. when a feature release requires multiple deployments from separate teams, I definitely wouldn't list this in the pros column, it's very much an "it depends". Other tangential factors, e.g. monorepo vs multi-repo, can be more significant.
> The moment your monolithic frontend and backend need to start doing asynchronous work, you'll want to build a "microservice"
I agree queue-based background work is a case where services are a good fit (sadly this is not what a lot of people are doing with their codebases when they "go microservices"), ... but it can also be simpler to deploy the same exact same monolithic codebase to a worker, and only execute the part that is performing your async task.
(If your worker is a lambda, sure, that isn't going to work.)
- weberc2 7y ago> Microservices can make release coordination significantly harder i.e. when a feature release requires multiple deployments from separate teams, I definitely wouldn't list this in the pros column, it's very much an "it depends". Other tangential factors, e.g. monorepo vs multi-repo, can be more significant. If you're operating a monolith, every release requires coordination from every team, no?
- allover 7y agoI was referring to the act of deployment itself. A single deployment of a monolith, without needing to ensure a dependent service whose pipeline is owned by another team is "deployed first", can be a lot easier to organise. As I say it can depend a lot on other factors like repo organisation, pipeline maturity. I struggle to see how release coordination can be something microservices inherently improve upon, do you have an example comparison perhaps?