Executando verificação de segurança...
Em resposta a [Não disponível]
2

Esse é um debate que sequer deveria existir. Começam as pessoas a colocar o assunto na mesa, e aí passa ser obrigatório debater.

Primeiro, o termo monólito modular é uma excrescência.

As pessoas sempre fizeram assim, no mínimo desde a década de 60, talvez antes. Eu mesmo fiz muito nas décadas de 80 e 90. Não tinha nome, porque você só fazia o que tinha que fazer, não se discutia, era o caminho óbvio. Assim como tantas outras coisas que sempre foram feitas por quem sabia programar.

Conforme o tempo foi passando algumas coisas começaram a ser perdidas, justamente porque as pessoas não estudam os fundamentos, começaram fazer errado, começaram não entender certos funcionamentos. Aí precisa começar a dar novos direcionamentos, criar maneiras das pessoas entenderem certas coisas. Por exemplo, quem precisa de SOLID quando entende de coesão e acoplamento que é algo que se usa em software desde "sempre".

A tal arquitetura de microsserviços foi criada por alguém que tinha uma necessidade diferente, que quase ninguém tem. Eu sei que já se falou tanto que as pessoas não entendem mais essas palavras, e algumas negam isso porque já está completamente contaminada. Então é bom deixar mais claro arquitetura de microsserviços atende uma necessidade que quase ninguém tem.

Para escalar, está mais que provado desde que se teve sistema com necessidade alta de escala que um monólito bem feito atende qualquer escala. Tem diversos exemplos práticos disso, não é teoria. São sistemas que estão bem, não pensam em mudar, não estão reclamando que está complicado escalar por não ser microsserviços.

Esta era a ênfase inicial usada. Porque em certo momento alguém achou que poderia ter uma escala que só daria certo fazendo assim.

Hoje parece que se fala mais nele por questões organizacionais. E parece ser o foco da postagem original. Melhor assim.

O problema é que fazendo o certo que sempre se fez antes atende quase todos os casos de organização que poderiam ser necessários. Pode acontecer alguns casos de organizações gigantes. Vou repetir porque parece que algumas ideias não são captadas muito bem, são organizações gigantes, que precisam que certas partes tenham total independência. Em qualquer outra situação já era necessário. E adivinha? Já se fazia isso sem dar nome de nada, eram apenas sistemas isolados que tinham alguma integração frágil . É o be a bá da computação, por isso quando realmente tinha necessidade, as pessoas já faziam algo assim. Podiam fazer melhor ou pior, mas já existia. Quando era natural não era algo que não tinha solução.

Na última década, foi marletado que você deveria fazer microsserviços por isso e aquilo. As pessoas passaram adotar algo, que até pode ser mais organizado que antes, mas por questões não existentes, passaram adotar em qualquer situação, mesmo organizações minúsculas, que usam a mesma tecnologia, que as equipes conseguem trabalhar juntos sem maiores problemas, passaram a usar por razões estritamente políticas, em alguns casos até sem sentido. Há casos que se adota só pela vaidade de dizer que fez, até quando se faz tudo errado, o'que é extremamente comum, tem casos que sequer está fazendo, está só dando o nome para estar na moda, mas no fundo faz o tal do "monólito modular".

Eu tenho contato com muita gente, estou nisso há muito tempo, eu já passei dar risada dos motivos que as pessoas dão para justificar que "o caso delas é sim para uma arquitetura de microsodderviços". Eu até acho que ela acredita naquilo, muitas vezes porque falta base.

Não é à toa que tem gente voltando atrás. Até porque quem consegue medir de fato não acha provas que a arquitetura de microsserviços deu alguma vantagem, a não ser quando está fazendo tudo errado e na mudança de arquitetura, acaba aproveitando para fazer o certo. Já vi muito isso, a reescrita (que alguns dizem que você nunca deveria fazer) resolve o problema, mas não foi a arquitetura, apenas parece porque ambos aconteceram ao mesmo tempo. Ainda que muitas vezes nem isso resolve porque quem tem dificuldade de fazer monólito bem feito pode ser mais difícil fazer microsserviços bem feito, já que é computação distribuída, o que é considerado por muitos como o problema mais difícil de resolver da computação, e em alguns casos se resolve botando muito dinheiro.

Você já viu pessoas dizendo que sabem fazer a arquitetura de microsserviços e você pergunta como aprendeu e ela responde que foi sozinha? Você consegue perceber o quão ridículo é isso? Se não percebe, nem passe perto do assunto. E se entende, disfarçar para não rir na cara da pessoa. Esse é o estado que estamos. As pessoas estão dizendo sobre algo que elas não têm noção do que seja, porque elas só precisam estar na moda.

De fato, se fizer o tal monólito modular, ou seja, o que sempre deveria ter feito em sistemas grandes (ou nem tão modular assim na esmagadora maioria dos sistemas), atende a necessidade e se a pessoa não ficar possuída pelo desejo de pôr no currículo que fez um algo incrível, ela não achará necessidade na arquitetura de microsserviços. A não ser ser nos raríssimos caso que faça sentido.

Não se encante por modas nocivas. Estude um pouco o assunto, todo conhecimento é válido, mas não entre em aventuras sem valor.

Sei que algumas conseguem entender isso, mas é bom ter um alerta. Não posso fazer nada pelas outras.

Faz sentido para você?

Espero ter ajudado.

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).

Carregando publicação patrocinada...
1

Compreendo seu ponto de vista, mas acredito que buscar conhecimento e discutir assuntos são atividades complementares e importantes para aprimorar nossas habilidades e conhecimentos.

Quanto à implementação de um sistema monolítico modular, é possível começar com um sistema de e-commerce e, à medida que o sistema cresce, desacoplar a parte de pagamentos e emissão de notas fiscais, que não são o COR da aplicação em um microsserviço separado. Uma forma de reduzir custos na implementação desse processo é criar um sistema de filas para a validação do pagamento e posterior emissão da nota fiscal, algo que já é feito em muitas soluções de e-commerce. Dessa forma, é possível obter vantagens em termos de escalabilidade e manutenção, sem aumentar significativamente a complexidade do sistema.

Mas como tudo na vida, tem que ser avaliado.

2

Sim, mas isso não é arquitetura de microsserviços como propalam por aí. Isso é fazer o certo, o óbvio, o que sempre foi feito sem dar nome algum, porque só era o certo. Isso não está errado, nunca esteve, e nunca estará. O errado é forçar um monte de coisa completamente independente sem ter vantagem alguma, só para dizer "olha só mãe, eu sei fazer microsserviços".