Executando verificação de segurança...
1

Alerta! Vou bater pesado porque cansa ver repetições de algo dito burocraticamente, sem comprovação alguma.

Eu não tenho mais paciência para falar sempre sobre isso, vou fazer um conteúdo canônico com amplos detalhes, provavelmente em 2024, mas essa conversa de que microsserviço resolve isso ou aquilo quase sempre é mentira. Nunca ninguém mediu, só leram que é assim. O que eu já vi na prática é que quase sempre nunca dá o resultado que a pessoa espera, ou fica pior e tem que ficar de boca fechada pra ninguém perceber a besteira que fez, depois de ter adotado algo ruim. Mas o que mais acontece, por isso não dá tanto problema, é que fazem uma arquitetura monolítica disfarçada e chama de microsserviços. Assim todo mundo fica contente, quem usa porque tem algo simples que funciona, e o programador que pode por no currículo que "sabe trabalhar com microsserviços".

Fazer microsserviços de verdade é absurdamente mais difícil e mais caro de fazer, e está longe de ser a única solução de escala, tanto que alguns dos maiores softwares em escala nem passam perto e fazem isso com custos e equipes menores.

Estava hoje mesmo vendo os problemas que o Spotify me deu por causa dessa #%@&!, mas que por ser só um brinquedo, não tem importância. O mal que essas pessoas fizeram a todos por espalhar essa fake news pra inflar seus currículos. Pegam um software cheio de problemas, mantido por uma equipe caríssima, que tem pouco a evolução, e usam como referência de modernidade.

Quase ninguém precisa ou até mesmo tem ganhos com microsserviços. Em geral, a adoção é feita por falha grotesca de juniores ou no máximo plenos que tem o título de sêniores porque seguem receitas de bolo não comprovadas há anos.

É óbvio que tem casos pertinentes, mas eles são tão poucos que as pessoas não deveriam nem perder tempo com isso. Eu mesmo já perco demais tendo que desmistificar isso. Eu mesmo já usei alguma coisa de microsserço quando fazia sentido, mas nunca fará em nada que eu pegue ter a arquitetura toda assim.

E isso acontece muito porque muita gente ganha muito com custos, livros, consultorias, treinamentos, e com o currículo turbinado para quem acredita nessas pirotecnias.

Por isso vemos tanta latência inútil, consistência toda detonada, ou para não acontecer isso ter um custo absurdamente grande.

Boa parte disso foi inventado para compensar o problema do uso de nuvem que é outra coisa muito abusada e faz custar caro. O que se observa é a manutenção ficar lenta e cara, com repetições de trabalho aos montes porque as equipes ficam isoladas.

É muito raro ver publicações sobre microsserviços onde justificativas reais são apresentadas. E quando tem, em geral, tem muitos questionamentos e falam para não usar até ser o último recurso. E quando pergunta para quem adotou, de verdade ou não, todos dizem que o caso deles precisa sim, mas justificava nunca dão. Alguns têm equipes minúsculas e são dezenas, centenas e até milhares de vezes menores que alguns monólitos famosos que escalam facilmente de forma simples e com custo baixo, inclusive que ajuda manter a equipe enxuta.

Um dos motivos de ter falta de mão de obra é porque tem muita gente trabalhando em coisas irrelevantes que nem deveriam existir.

Para encerrar, aqui não tenho como por todos os delhaes ou dar provas disso, até porque fica difícil provar algo que está todo mundo escondendo. mas já parece alguns orgulhoso de terem largado as drogas e já falam sobre isso. Não escuta quem não quer. Mas se as pessoas leem sobre microsserviços sem provas e gostam, porque não vão gostar disso aqui também?

Anedota não valem, mas eu dei uma consultoria que mandei arrumar tudo de microsserviços e fazer o arroz com feijão. Entrou a performance que eles queriam de forma simples e barata. E tinha escolhido a arquitetura complicada porque falaram para eles que era o único jeito de ser rápido, e aconteceu o contrário.

Para quem ainda pode se salvar, cuidado com informações sobre microsserviços, em geral são repetições de quem não consegue provar o que estão pregando.

Em minha defesa, eu não preciso provar fazer o simples. O complexo é que precisa de comprovação. Quando ela aparece, pode usar. Pena que é fácil falsificar "comprovações", mas em geral nem precisa, quem vai bancar aceita só argumentos vazios.

Observou? Faz sentido para você?

Espero ter ajudado. Em geral estou à disposição na plataforma (sem abusos :D)


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1

Concordo que devemos usar o simples e somente ir pra Microsserviços casa haja realmente uma vantagem. Eu cito isso claramente no texto:

Uma estrutura monolítica bem definida permitirá substituir qualquer funcionalidade por um microsserviço quando necessário.

O foco do documento é trazer opções, microserviços é apenas uma delas... tem mais na parte 2...

1

Todo mundo faz isso. Fala que deve usar o simples em uma frase e todo o resto do texto fala das maravilhas que microsserviço faz por você, sem apresentar todos os problemas na mesma proporção, ou até mais já que coisas perigosas devem ser até mais destacadas.

Esse é um padrão em quase 100% das publicações sobre o assunto. Não estão promovendo o pensamento sobre, estão promovendo a arquitetura.

Postei na parte 2 pra ler aqui porque uma é consequência do erro da outra.

As pessoas preciam parar de olhar para oque está tod mundo olhando e começar olhar para os casos de tremendo sucesso fazendo o simples. Esses é que falta divulgação.

1
2

Uma coisa que pode ajudar é mostrar os graficos de acoplamento mais como uma organização e não que o microsserviço é que faz isso. Para o desaviasado parece que ele é a única forma que consguir isso. E mesmo em algo desacoplado masi simples já pode ser complicado.

Existe muita gente fazendo receitas de bolo que pioram muito. Por exemplo a tal da clean arquiteture que muitos usam sem pesar nos custo e benefícios que terá. Ela complica muito sem usufruir dos ganhos porque não precisava. Complexidade precisa se pagar muito bem.

Já vi gente justificar que adoraram ms porque a equipe não conseguia se organizar sem eles. Aí está tudo destruído. Não tem o que fazer. E pregar o que é (ou era, mas não diminuiu, só surgiram coisas novas) o problema mais difícil da computação, como solução de uma equipe ruim, parece bem temerário. Se equipe é ruim, ela terá apenas sistemas ruins e duplicados, se forem obrigadas a fazer o que não conseguem.

Tudo pode ter justificativa, mas é difpicil criá-las com bom embasamento, muitas vezes precisa fazer para mostrar que é bom, e ninguém vai querer jogar fora oque foi feito, então inventa-se "provas" que deu certo. Eu vi inúmeras vezes, tenho várias anedotas de decisão errada que não foram negadas porque põe da credibilidade de quem escolheu aquilo em questionamento, e ela tem que defender com unhas e dentes e o trabalho dela passa ser inventar justificativas falsas para não parecer um erro.

Novamente, existem cenários reais para adotar algo mais complexo, mas é de 2 ou 3 ordens de magnitude menores do que as pessoas acham ou até que praticam. E quem for adotar não pode pegar algo muio simplificado para ter de base. Quem for mergulhar nisso tem que primeiro que mergulhar em estudo em altas profundidades de muita coia da computação, algumas ainda em criação. Por isso eu sou favorável de basicamente criar dificuldades, não facilidades, e se a pessoa passar por todas as barreiras, aí tem uam chance melhor dela coneguir um bom resultado. Por isso prefiro assutar quem pode precisar disso, do que inventivar quem provavelmente nmão vai precisar.

1

Concordo plenamente. Só parte do acoplamento que não entendi, é a figura que está na seção "Realtime"? Se for, ela não tem link com microserviços. Mas se falou de forma geral (acoplamento entre aplicações), sim, faz sentido.