A lot of hate for microservices in this thread. I think you’d be surprised how much some major tech companies (Google etc.) are and have been relying on microservices and that style of architecture for many years now.
I think the biggest conflict here is scale of the services involved. For smaller scale - which is what most people are familiar with - monolithic architecture can offer distinct advantages. At scale though? Monoliths have been relentlessly excised for years because of all the very real scaling and maintenance problems that go with them.
> I think you’d be surprised how much some major tech companies (Google etc.) are and have been relying on microservices and that style of architecture for many years now. [...] I think the biggest conflict here is scale of the services involved.
I wouldn't be surprised that Google, Microsoft, Amazon, Facebook, Apple, etc. use microservices heavily.
But I think it's more, the scale of the companies, rather than the scale of the services. When you've got a lot of developers—thousands or tens of thousands, on hundreds of teams—having independent microservices is surely the way to go.
But, when you're a small company, with ~10 developers? It's not.
Yep, last time I worked at a company w around 13 devs, everything had to be done "the microservice way", because all the cool guys are doing it and it is the way to go.
Microservices is the new snake oil :D Now downvote me into oblivion :)
When Google, Amazon, etc. did it, it was called Service-Oriented Architecture (SOA). There's a good reason for that: doing it on a "micro" basis is ridiculous.
I've got pretty extensive experience with the Google stack. At Google's scale, there's really no other way to solve the problem. However, there are very real costs to all those process boundaries that make you move much slower. When I started there (2009), the common wisdom was that if you were trying to launch a new product, you absolutely did not want to pay those costs unless you absolutely had to; go start with a single binary that interfaces with BigTable/AppEngine/SSTables and see where it grows from there. When I finished there (2014), the common wisdom was "don't launch a new product".
Google can afford to not launch new products (or see all their new products fail) because when adding a new feature to an existing product can make $100M+, that's a lot more economically sound than taking a risk on something new. Your startup cannot afford to not launch a new product. Don't follow Google.
> I think you’d be surprised how much some major tech companies (Google etc.) are and have been relying on microservices and that style of architecture for many years now.
I think you'd be surprised how much the problems of those "some major tech
companies (Google etc.)" don't match the problems of up to medium companies,
which make the vast majority of technology use in total.
I think the biggest conflict here is scale of the services involved. For smaller scale - which is what most people are familiar with - monolithic architecture can offer distinct advantages. At scale though? Monoliths have been relentlessly excised for years because of all the very real scaling and maintenance problems that go with them.