Por anos, microserviços foram vendidos como a arquitetura correta para qualquer sistema sério. Quem defendia monolito estava "fazendo errado" ou "não estava pronto para escalar". Mas pode me mostrar fontes muito fortes que digam o contrário.
Não me lembro disso. Tinha "uma meia dúzia" que falava isso, mas nunca foi a narrativa vigente. Sempre tem uns malucos ou pessoas tentando ganhar dinheiro com mentiras.
Há uns 10 anos que eu vejo muita crítica aos microsserviços e que adotá-lo é quase certo que está fazendo errado, porque a escala de exceção pode ser obtida com formas mais simples e a escala de desenvolvimento só faz sentido em mega projetos em lugares que já tem a cultura de segmentação. Note que alguns dos sites de maior tráfego e bases de código gigantescas fazem como um monólito.
As pessoas falavam dos custos de microsserviços, algumas pessoas ignoravam, alguma até porque trabalha com a metodologia orientada a currículo, ou seja, ela gasta o dinheiro de seus patrões ou clientes para ter um currículo que a pessoa sabe fazer algo "avançado" mesmo que tenha sido feito tudo errado e custado muito mais caro sem trazer nada útil. Todas as pessoas sérias que eu conheço defendiam o uso de monólitos e só se um idiota qualquer dissesse que tinha que usar a forma mais cara, complexa e difícil de fazer, que microsserviços era adotado. È verdade que tendo a não conhecer as pessoas menos sérias.
Tem muita gente adotando microsserviços por modinha, em geral com resultados trágicos, não mensurados e alguns têm a coragem de admitir que erraram e voltam atrás. Nunca encontrei uma pessoa que provasse que precisava de microsserviços. Conheço muita gente, mas não todo mundo.
Stack Overflow nunca adotou microsserviços.
Microserviços resolvem problemas de escala organizacional, não de escala técnica
Iso é algo que muitas pessoas não percebiam e não falavam. Eu mesmo percebi isso depois de um tempo. No começo eu batia muito na tecla que dava pra escalar bem sem microsserviços. Depois mudei deixando claro que a técnica só fazia algum sentido pela Lei de Conway, o que já era a dica que pouquíssimas corporações se beneficiariam deste aspecto. Mas continuou tendo adoções em ambientes que não fazia sentido, ainda que algumas das pessoas mais respeitadas da nossa área falavam claramente que microsserviços não deveria ser a solução padrão.
Vai continuar muita gente falando "no nosso caso precisava mesmo", ouvi várias vezes quando palestrei sobre o assunto, e ninguém provou que era necessário. E tem um detalhe, quase sempre onde é necessário, só será possível saber qual é melhor implementando ambos, por isso quase todas as adoções são baseadas em suposições, ainda que algumas até tenham alguma sustentação superficial.
Fazer o deploy de forma independente é algo que pode ser feito com monólitos. Ainda tem muita gente que confunde solução monolítica com executável monolítico. Claro que cada tem suas vantagens e desvantagens, e quase sempre as vantagens dos monólitos compensam as desvantagens, com microsserviços isso não costuma acontecer.
Ainda tem muitas pessoas que acham que microsserviços deve ser adotado com um pequeno punhado de pessoas, mas não com meia dúzia. Mas a realidade é quase sempre só vale a pena, e muitos casos assim não valem, quando você tem centenas ou mesmo milhares de desenvolvedores. E tem vários projetos com milhares de pessoas trabalhando em monólito e está tudo bem, ninguém sequer cogita mudar, e claro, esses projetos costumam ter apenas bons programadores. Microsserviços muitas vezes é adotado para lidar melhor com a mediocridade que é ampla.
Monolito bem estruturado escala muito mais do que a maioria dos produtos vai precisar alguma vez.
Sim. O Stack Overflow é um exemplo que eu sempre cito, mas podemos falar da Wikipedia, Instagram, Shopify...
Comece com monolito. Quebre quando tiver razão específica
Esta frase é extremamente repetida há anos. E algumas pessoas, como eu, falam para só adotar algo tão complexo e caro se puder provar que é melhor assim. Desta forma quase ninguém vai adotar isso.
Infelizmente se alguém disser que adotou microsserviços por algum motivo, não conseguirá provar isso.
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).