1
resposta

Seria o caso de eu ter a abordagem de microsserviços?

Graças a Alura, estou já trabalhando e ganhando dinheiro programando. Tenho trabalhado como freelancer, e tenho pego trabalhos de scripts curtos. Trabalhos que demandam menos de um dia para terminar, mas na plataforma em que eu estou conseguindos estes trabalhos, tem uma demanda muito grande de clientes que querem um sistema de e-commerce ou de gestão empresarial completos. Os requisitos que cada um quer são bem difusos, eu gostaria então de saber se usar microsserviços, como peças que possam atender as mais diversas demandas, seria melhor para o aproveitamento do código, ou isto é besteira? Poderia eu simplemente fazer modulos independentes em um sitema monolitico? Estou fazendo este curso e gostaria de investir um tempo e um dinheiro em estudar os requisitos necessários para usar este padrão de arquitetura.

1 resposta

Olá, Clausemberg! Parabéns pelo seu progresso e sucesso como freelancer!

Sobre a sua pergunta, a decisão de usar microsserviços ou um sistema monolítico depende muito do contexto do projeto e da sua capacidade de lidar com as complexidades que cada abordagem traz.

Os microsserviços podem ser uma excelente escolha se você estiver lidando com sistemas grandes e complexos, onde diferentes partes do sistema têm requisitos de escalabilidade diferentes. Por exemplo, em um sistema de e-commerce, o serviço de carrinho de compras pode precisar ser escalado de forma diferente do serviço de gerenciamento de inventário. Além disso, os microsserviços permitem que você use diferentes tecnologias para diferentes serviços, o que pode ser útil se diferentes partes do sistema tiverem diferentes requisitos técnicos.

No entanto, como mencionado na aula, os microsserviços trazem uma maior complexidade de desenvolvimento e infraestrutura. Você precisará gerenciar a comunicação entre os serviços, o que pode ser complexo. Além disso, o monitoramento de vários serviços pode ser mais desafiador do que monitorar um único sistema monolítico.

Por outro lado, um sistema monolítico pode ser mais simples de desenvolver e gerenciar, especialmente para projetos menores. Você não terá que lidar com a complexidade da comunicação entre serviços e o monitoramento será mais simples. No entanto, um sistema monolítico pode ser mais difícil de escalar e você estará limitado a usar uma única tecnologia para todo o sistema.

Como você está lidando com projetos de clientes com requisitos difusos, pode ser útil começar com um sistema monolítico e, à medida que o sistema cresce e os requisitos se tornam mais claros, considerar a refatoração para microsserviços onde faz sentido. Isso é consistente com a abordagem "Monolito primeiro" sugerida por Martin Fowler, conforme mencionado na aula.

Espero ter ajudado e bons estudos!