Visão Geral
O curso Criando Microsserviços – Projetando Sistemas com Componentes Menores e Mais Especializados aborda os conceitos, princípios arquiteturais e práticas para o desenvolvimento de aplicações distribuídas baseadas em microsserviços. Os participantes aprenderão a decompor aplicações monolíticas, definir limites de contexto (Bounded Context), implementar comunicação entre serviços, aplicar padrões arquiteturais, orquestrar containers e garantir observabilidade, resiliência e segurança em ambientes modernos.
Ao longo do treinamento, serão exploradas tecnologias amplamente utilizadas pelo mercado, como Docker, Kubernetes, APIs REST, mensageria, Service Mesh, CI/CD e ferramentas de monitoramento, permitindo que os participantes projetem e implementem arquiteturas escaláveis, resilientes e de fácil manutenção.
Conteúdo Programatico
Módulo 1 – Introdução aos Microsserviços
1.1 Evolução das arquiteturas de software
1.2 Monolitos versus microsserviços
1.3 Benefícios e desafios
1.4 Casos de uso no mercado
1.5 Características dos microsserviços
Módulo 2 – Fundamentos Arquiteturais
2.1 Domain-Driven Design (DDD)
2.2 Bounded Context
2.3 Separação de responsabilidades
2.4 Alta coesão e baixo acoplamento
2.5 Arquitetura orientada a eventos
Módulo 3 – Decomposição de Aplicações
3.1 Estratégias de decomposição
3.2 Extração de funcionalidades do monolito
3.3 Banco de dados por serviço
3.4 Gestão de dependências
3.5 Exercícios práticos de decomposição
Módulo 4 – Comunicação entre Serviços
4.1 APIs REST
4.2 gRPC
4.3 Mensageria com Apache Kafka e RabbitMQ
4.4 Comunicação síncrona e assíncrona
4.5 API Gateway
Módulo 5 – Containers e Orquestração
5.1 Introdução ao Docker
5.2 Construção de imagens
5.3 Docker Compose
5.4 Introdução ao Kubernetes
5.5 Deploy de microsserviços em Kubernetes
5.6 Escalabilidade automática (HPA)
Módulo 6 – Padrões para Microsserviços
6.1 Circuit Breaker
6.2 Retry Pattern
6.3 Bulkhead
6.4 Saga Pattern
6.5 CQRS
6.6 Event Sourcing
6.7 Strangler Fig Pattern
Módulo 7 – Persistência de Dados
7.1 Banco de dados por microsserviço
7.2 SQL e NoSQL
7.3 Consistência eventual
7.4 Transações distribuídas
7.5 Estratégias de migração de dados
Módulo 8 – Observabilidade
8.1 Logs centralizados
8.2 Monitoramento com Prometheus
8.3 Dashboards com Grafana
8.4 Distributed Tracing com Jaeger
8.5 OpenTelemetry
8.6 Gestão de eventos e métricas
Módulo 9 – Segurança em Microsserviços
9.1 Autenticação e autorização
9.2 OAuth 2.0 e OpenID Connect
9.3 JWT
9.4 mTLS
9.5 Gestão de segredos
9.6 Segurança em APIs
Módulo 10 – DevOps e CI/CD
10.1 Introdução ao CI/CD
10.2 GitOps
10.3 Pipelines automatizados
10.4 Integração com GitHub Actions e GitLab CI
10.5 Deploy contínuo em Kubernetes
10.6 Estratégias Blue/Green e Canary
Módulo 11 – Service Mesh
11.1 Introdução ao Service Mesh
11.2 Istio
11.3 Linkerd
11.4 Gerenciamento de tráfego
11.5 Políticas de segurança
11.6 Observabilidade no Service Mesh
Módulo 12 – Laboratório Prático
12.1 Construção de uma aplicação baseada em microsserviços
12.2 Implementação de API Gateway
12.3 Configuração de mensageria
12.4 Deploy em Kubernetes
12.5 Configuração de monitoramento e tracing
12.6 Implementação de CI/CD
12.7 Demonstração do ambiente completo