No ano passado, ocorreu uma discussão na empresa onde trabalhava sobre o tema do modelo arquitetônico: monolítico ou microserviço. Reconheço que o microserviço foi uma tendência marcante, dotada de incrível poder. No entanto, para a maioria dos projetos, esse nível de potência não era necessário. Tratavam-se de pequenas aplicações, muitas vezes com não mais do que 10 usuários simultâneos. O modelo de microserviço é mais adequado para empresas como Netflix e Magazine Luiza. Além disso, o custo do microserviço é quase cinco vezes maior do que o do monolítico, e sua manutenção é consideravelmente mais simples.
Tem sensatez nisso e bom falar no custo alto que muitos ignoram, você foram além.
Só vou te dar um parâmetro para não parece que passou muito de 10 usuário já começa ficar bom. O Stack Oveflow era um dos 30 sites mais acessados do mundo e pode e rodou algumas vezes com 1 servidor. A Wikipedia, entre os 5, tirando search é mídia, e se mudar de PHP para algo mais efiecente poderia rodar no talo em 1 serviudor (não estou chutando fiz a análise com os dados que eles divulgam). Instagram não preciaa, Shopify, e muitos outros mega sites/apps. Escalar não torna microsserviços essencial. Quem adotou já está voltando atrás, o site que popularizou o uso dele está cheio de problemas e passaram ser extremamente improdutivos.
Qiase 100% das emrpesas que adotam estão só na modinha. Eu tenho amigos que atndem algumas das maiors empresas do país e recomendam o monólito seempre. Se o cliente que paga diz que quee a modinha, eles fazem e o resultado nunca foi melhor, eles gostam de faturar mais sem entregar nada a mais.
Ajudei? Era o meu desejo.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).
Chamo isso de programação orientada a hype. Sempre a arquitetura da moda, o framework da moda que na sua grande maioria reinventam e só adicionam complexidade onde não é necessário.
Sobre o uso de MicroServiços, creio que vale a pena apenas quando tu tem ele da forma correta. Um serviço separado independente do outro. Onde de a liberdade de subir uma feature pra ele sem afetar outras partes do sistema. Traz a liberdade de usar mais de uma LP pra alguns serviços, caso o time seja de programadores com um background em mais de uma linguagem.
No fim das contas quanto mais o tempo passa, essa frase tem feito muito mais sentido:
"A simplicidade é o mais alto grau de sofisticação" Leonardo da Vinci
Tudo dá para fazer sem microsserviços também. É muito raro ter justificativa plausível para adotá-lo. Quando tem, no fim é só uma, se conformar com a lei de Conway (que por sinal não é sobre o sistema ser artificialamente organizado e depois a empresa é montade em volta dele).
Olá maniero. Tudo bem? A um tempo atrás a gente acabou debatendo um pouco sobre um post que tinha escrito justamente falando sobre arquitetura monolítica. E seus comentários me levaram a voltar ao bom senso. Por isso quero de agradecer. E contribuindo para a discussão. Na dúvida também há o modelo de monólitos modulares que foi o que eu implementei no projeto que tinha citado antes. Que atendem casos onde uma aplicação dispõe de serviços muito destintos. Esses são mais fáceis de migrar a medida que um monólito simples (que hoje acho que deveria ser o início de todo projeto) cresce.
Ah, mas monnólitos modulares, se não for algo muito simples que está trabalhando, é fundamental. Parabéns.