Visão Geral
Curso Microservice Architecture, Uma introdução dos principais conceitos da arquitetura de microsserviços (MSA). Nós nos concentramos na noção de arquitetura de microsserviço em conexão com métodos “tradicionais” para construir um sistema. Padrões de arquitetura de microsserviços são discutidos, bem como problemas de implantação de MSA e métodos para garantir as qualidades necessárias.
A arquitetura de microsserviços (MSA) tornou-se recentemente uma das abordagens arquitetônicas mais populares, pois oferece inúmeros benefícios em diferentes estágios do ciclo de vida do produto. Em particular, o MSA permite melhorar o tempo de reação quando se trata de requisitos de negócios.
No entanto, no processo de desenvolvimento do sistema MSA, os arquitetos enfrentam muitos desafios que muitas vezes forçam aqueles que são novos neste campo a recuar. Alguns deles incluem:
- Erros na decomposição podem tornar o desenvolvimento muito mais difícil
- O desempenho diminui devido a sérios atrasos na rede
- O armazenamento de dados distribuído nos impede de usar consistência transacional
- Um grande número de componentes se comunicando pela rede reduz a confiabilidade do sistema
- Fica difícil garantir a segurança
Sem contar que testar e manter um sistema distribuído requer esforços adicionais. Este curso irá ajudá-lo a entender as vantagens e desvantagens do MSA para que você possa decidir sobre a viabilidade de usar o MSA dependendo das necessidades de negócios e capacidades da equipe.
Cobrimos os principais desafios relacionados à implementação da arquitetura de microsserviços e fornecemos estratégias, mecanismos e padrões para resolvê-los. Também veremos as ferramentas mais populares (como Kubernetes , Istio, Histryx, Kibana e muitas outras) usadas na arquitetura de microsserviços.
Conteúdo Programatico
Architectural styles
- Notion of monolith, SOA, MSA
- Comparison and selection
MSA decomposition patterns
- The optimal microservice size
- Splitting into services by business capabilities
- Splitting into services by problem domains
- Domain identification practices
- Decomposition by technical and organizational aspects
Development organization for MSA
- Team organization for MSA
- Code repository organization for MSA
Integration of microservices
- Communication patterns
- Synchronous and asynchronous communication mechanisms
- Orchestration and choreography
- Main protocols and technologies (REST, gRPC, GraphQL, Kafka, RabbitMQ, etc.)
- Communication with external systems (API Gateway, BFF)
- Reactive systems
- Event-driven architectures
- Command query segregation
Data handling in MSA
- Data handling patterns
- Event sourcing
- Reference data in MSA
- Single source of truth in MSA
Main MSA patterns
- Modifiability. High coupling problem resolution. Versioning of interfaces and events. Types of contracts. Changing event model. Query organization patterns. Microservice chassis. Service mesh
- Scalability. Load balancers patterns. Discovery services and patterns
- Performance. Performance patterns in MSA (Bulkheads, Graceful Degradation, etc.)
- Consistency. Consistency problems in MSA. CAP theorem. Solving consistency problems. Two-phase commits. SAGA Pattern. Decreasing the consistency level
- Reliability. Fault tolerance mechanisms. Circuit Breaker, Throttling, Dependent Timeouts, and other patterns
- Security. Security mechanisms in MSA. Authentication. Authorization. Perimeter defense. Communication channel defense. Main protocols and patterns (OAUTH2, JWT, Gatekeeper, Valet Key, etc.)
- Testability. Testing pyramid and quadrant. Specifics of microservice testing. Unit testing. Integration testing. Component testing. E2E testing. MSA testing patterns.
- Ease of maintenance. Observability. Observation patterns (distributed tracing, log aggregation, etc.). Monitoring and logging. Microservice configuration. Configuration externalizing. System support
- Microservice deployment. Deployment pipeline pattern. Deployment patterns. Using Docker and Kubernetes. Using ISTIO mesh. Serverless deployment. Deployment strategies (blue-green, canary, etc.)
- Strategies of migration from monolith to MSA. Strategies of shifting from monolith to microservices. Strangler monolith. Strangle patterns. Microservice link to monolith. Database migration