Este trabalho de conclusão de curso explora a arquitetura de microsserviços, um paradigma vital no panorama atual do desenvolvimento de software, reconhecido por suas vantagens em escalabilidade, manutenibilidade e a capacidade de agilizar a implementação de novos recursos. A transição para microsserviços, contudo, apresenta desafios únicos, exigindo a adoção de práticas direcionadas para garantir a eficiência operacional e a entrega de software de qualidade.
O objetivo central deste TCC é elaborar um catálogo abrangente das principais práticas recomendadas para o desenvolvimento baseado em microsserviços. Este catálogo visa servir como um guia para desenvolvedores e equipes de projeto, facilitando a adoção dessas práticas de forma eficaz e fundamentada.
O presente repositório é dedicado à execução e documentação de Provas de Conceito (PoCs) cuidadosamente selecionadas. Estas PoCs têm como finalidade validar e demonstrar a aplicabilidade das práticas recomendadas identificadas, no contexto de um cenário de desenvolvimento de software realista, especificamente através da implementação de um Sistema de Gerenciamento de Pedido
O Sistema de Gerenciamento de Pedidos selecionado como o foco de nossas PoCs exemplifica a aplicação prática das práticas de microsserviços. Este sistema é escolhido por sua relevância operacional e pela oportunidade que oferece para ilustrar as vantagens da modularização, da independência de serviços e da escalabilidade proporcionada pela arquitetura de microsserviços. Através deste sistema, pretendemos evidenciar como as práticas recomendadas contribuem para a agilidade do desenvolvimento, a resiliência do sistema e a eficiência da manutenção.
As Provas de Conceito (PoCs) executadas neste trabalho visam validar práticas essenciais no desenvolvimento de microsserviços, cada uma focando em um aspecto crítico da arquitetura e operação de sistemas baseados em microsserviços. Os objetivos específicos de cada PoC são detalhados a seguir:
Objetivo:
Demonstrar a eficácia na criação de um microsserviço específico de domínio, enfatizando a modularização e autonomia. Esta PoC ilustra como um serviço pode ser desenvolvido e mantido de forma independente, centrado nas necessidades de negócios específicas, como um sistema de gerenciamento de pedidos.
Objetivo:
Implementar um API Gateway para atuar como uma camada unificadora entre a interface do usuário e os microsserviços subjacentes. Este objetivo envolve demonstrar os benefícios do Gateway em termos de segurança, eficiência na gestão de solicitações e balanceamento de carga, essenciais para a orquestração eficaz de microsserviços.
Objetivo:
Validar a implementação do padrão Circuit Breaker para aumentar a resiliência do sistema. Esta PoC foca em prevenir falhas em cascata entre microsserviços, garantindo a estabilidade e a disponibilidade do sistema, mesmo diante de falhas pontuais em serviços específicos.
Cada uma destas PoCs foi concebida para abordar e mitigar desafios comuns na arquitetura de microsserviços, contribuindo com insights valiosos e práticas recomendadas para a comunidade de desenvolvimento. Os resultados e aprendizados obtidos não apenas validam a aplicabilidade dessas práticas, como também enriquecem o catálogo de boas práticas com experiências reais e orientações práticas.