Programa do Curso
Introdução
- Arquitetura de sistemas e serviços, PaaS e design nativo da nuvem
Visão geral da arquitetura de sistema monolítico
- Executando toda uma funcionalidade de aplicativos monolíticos em um único processo
- Scalacapacidade por meio de replicação em vários servidores
- Protocolos utilizados em sistemas monolíticos: EAI, CORBA, etc.
Visão geral dos serviços da Web
- Arquitetura Orientada a Serviços (SOA) e Microservices Arquitetura
Service-Oriented Architecture (SOA)
- Benefícios e custos de SOA
- Sucessos e fracassos na implementação de SOA
- Mensagens e ESB
- Infraestrutura e ferramentas de suporte a SOA
Como Microservices Implementar conceitos de serviços da Web
- Faça uma coisa e faça bem
- DevOps
- Implantação e entrega contínuas (integração contínua, processo de construção contínua, etc.)
- Protocolos leves
Protocolos e padrões de microsserviços
- HTTP, JMS, AMQP, Websockets, JSON, etc.
Estruturas de Desenvolvimento para Construção Microservices
- Estruturas baseadas em Java (Spring Cloud)
- Javaestruturas baseadas em script (Seneca)
Decompondo um aplicativo Monolith
- Desenvolvendo aplicativos implementáveis de forma independente
- Organizando aplicativos de microsserviços em torno de recursos de negócios
- Estudo de caso: Migrando um aplicativo monolítico para três microsserviços principais
Configurando um Spring Cloud Ambiente de Desenvolvimento
- Configurando Docker e Docker Compose
- Configurando variáveis de ambiente
Visão geral de Spring Cloud e Spring Boot
- Spring Cloud subprojetos: Config Server & Bus, Eureka, Ribbon, Feign e Hystrix
- Spring Boot
Criando um aplicativo Spring Boot
Gerenciamento de configuração centralizado e versionado com Spring Cloud Config
Atualizações de configuração dinâmica com Spring Cloud Bus
Descoberta de serviço com Eureka
Balanceamento de carga com Ribbon
Aplicação de disjuntores com Hystrix
Clientes REST declarativos com Feign
Trabalhando com API Gateway
Protegendo um aplicativo de microsserviço
Rastreando microsserviços para descobrir latências
Implantando Microservices
- Recipientes (Docker, K8N, LXC, etc...)
- Configuration Management (Ansible, etc...)
- Descoberta de serviço
- Monitoramento e gerenciamento Microservices
- Infraestrutura para Microservices
Nuvem e Auto Scalacapacidade de Microservices
- Redundância e failover de microsserviços
- Escalabilidade de desempenho para Microservices
- Escalabilidade automática
- Implementando Microservices em OpenStack, AWS e outras plataformas de nuvem
Solução de problemas comuns para aplicativos distribuídos
- Complexidade do ecossistema
- Desempenho da rede
- Segurança
- Implantação
- Teste
- Nano-serviços
Considerações finais para a construção de sistemas prontos para produção
- Tornando o sistema fácil para iniciantes
- Tornar o sistema completo para que possa servir como base para aplicações empresariais
Resumo e conclusão
Requisitos
- Compreensão da engenharia de software e de sistemas
- Experiência em desenvolvimento Java
- Experiência com Spring Framework
Público
- Java programadores que pretendam criar e implementar rapidamente microsserviços
- Arquitectos de sistemas que pretendam implementar uma arquitetura de microsserviços