Visão Geral
Curso Containers Docker and Microservices. Este curso prático e abrangente foi desenvolvido para desenvolvedores, engenheiros DevOps, arquitetos de software e profissionais de TI que desejam dominar o universo dos Containers Docker e a arquitetura de Microsserviços. Em um cenário tecnológico em constante evolução, essas duas tecnologias são pilares para a construção de aplicações modernas, escaláveis e resilientes. Do ponto de vista técnico, você aprenderá a conteinerizar suas aplicações com Docker, transformando-as em unidades portáteis e isoladas. Em seguida, mergulhará nos princípios dos Microsserviços, entendendo como decompor aplicações monolíticas, gerenciar comunicação entre serviços e garantir resiliência. O curso cobrirá desde os fundamentos do Docker (imagens, contêineres, redes, volumes) até a implementação de padrões de microsserviços (descoberta de serviços, API Gateways, resiliência) e a orquestração básica de contêineres com Docker Compose. Teremos muitos exemplos práticos, hands-on e dicas de boas práticas para que você construa e gerencie suas próprias soluções conteinerizadas.
Curso Containers Docker and Microservices, a adoção de Containers Docker e Microsserviços é um diferencial competitivo crucial para empresas que buscam agilidade no desenvolvimento, escalabilidade, alta disponibilidade e redução de custos operacionais. Essas tecnologias permitem entregas mais rápidas, menor tempo de inatividade e maior flexibilidade para inovar. Profissionais que dominam essa combinação são altamente valorizados e procurados no mercado de trabalho, pois são capazes de construir e operar a infraestrutura que suporta os negócios digitais modernos. Aprender Docker e Microsserviços significa aumentar sua empregabilidade, potencializar sua carreira e se posicionar na vanguarda da transformação digital
Conteúdo Programatico
Módulo 1: Fundamentos do Docker: O Que São Contêineres? (5 horas)
- 1.1. O Problema da Compatibilidade e o Surgimento dos Contêineres:
- VMs vs. Contêineres: Diferenças, vantagens e desvantagens.
- O papel do Docker no ecossistema de contêineres.
- 1.2. Instalação e Primeiros Comandos Docker:
- Instalando Docker Desktop no seu sistema operacional.
docker --version
, docker run hello-world
, docker ps
.
- Hands-on: Instalar Docker e executar seus primeiros comandos.
- 1.3. Docker Images: A Base dos Contêineres:
- O que são imagens, camadas e como funcionam.
- Docker Hub: O repositório central de imagens.
docker pull
, docker images
, docker rmi
.
- Hands-on: Puxar imagens do Docker Hub e inspecioná-las.
- 1.4. Docker Containers: Instâncias em Ação:
- Ciclo de vida de um contêiner: criar, iniciar, parar, remover.
docker run
em detalhes: -d
, -p
, --name
, --rm
.
- Hands-on: Rodar contêineres em foreground e background, mapear portas.
- 1.5. Dockerfile: Construindo Suas Próprias Imagens:
- Instruções essenciais:
FROM
, RUN
, COPY
, CMD
, ENTRYPOINT
, EXPOSE
.
- Melhores práticas para Dockerfiles: otimização de camadas,
.dockerignore
.
- Hands-on: Criar um Dockerfile para uma aplicação simples (ex: "Hello World" em Python/Node.js).
- Prática: Conteinerizar uma aplicação básica, construir uma imagem Docker personalizada e executá-la.
Módulo 2: Gerenciamento de Dados e Redes em Docker (5 horas)
- 2.1. Docker Volumes: Persistência de Dados:
- O problema da efemeridade dos contêineres.
- Tipos de Volumes:
bind mounts
, named volumes
, tmpfs mounts
.
- Hands-on: Usar volumes para persistir dados de um contêiner (ex: um banco de dados).
- 2.2. Docker Networking: Conectando Contêineres:
- Modos de rede:
bridge
(default), host
, none
.
- Redes definidas pelo usuário: criando e gerenciando redes personalizadas.
- DNS interno do Docker para comunicação entre contêineres.
- Hands-on: Criar uma rede customizada e conectar dois contêineres nela para que se comuniquem.
- 2.3. Exposição de Portas e Publicação:
- Mapeamento de portas (
-p
ou --publish
).
- Entendendo a diferença entre portas internas do contêiner e portas do host.
- 2.4. Docker Compose: Orquestração Local de Múltiplos Contêineres:
- O que é Docker Compose e por que usá-lo.
- Estrutura do arquivo
docker-compose.yml
.
- Comandos:
docker-compose up
, docker-compose down
, docker-compose ps
.
- Hands-on: Montar um
docker-compose.yml
para uma aplicação web com banco de dados.
- Prática: Criar uma aplicação multi-contêiner (ex: web app + database) usando Docker Compose, com persistência de dados e comunicação entre contêineres.
Módulo 3: Introdução à Arquitetura de Microsserviços (5 horas)
- 3.1. Monolitos vs. Microsserviços: Uma Análise Comparativa:
- Vantagens e Desvantagens de cada arquitetura.
- Quando e por que adotar microsserviços.
- Desafios da transição de um monolito para microsserviços.
- 3.2. Princípios de Design de Microsserviços:
- Single Responsibility Principle (SRP) no contexto de serviços.
- Autonomia e Isolamento.
- Comunicação (Síncrona - REST/gRPC; Assíncrona - Mensageria).
- 3.3. Padrões de Comunicação entre Microsserviços:
- Comunicação Síncrona (APIs RESTful):
- Implementação de APIs REST.
- Chamadas entre serviços (Client-side Discovery).
- Comunicação Assíncrona (Filas de Mensagens):
- Conceito de Message Brokers (Kafka, RabbitMQ - conceitual).
- Publicar/Subscrever.
- Hands-on: Criar dois microsserviços simples (ex: um de Produtos, outro de Pedidos) que se comunicam via REST.
- 3.4. Desafios Comuns em Microsserviços e Soluções:
- Gerenciamento de Dados Distribuídos.
- Transações Distribuídas (Saga Pattern - conceitual).
- Confiabilidade e Tolerância a Falhas.
- Prática: Desenvolver dois microsserviços simples que interagem entre si via API REST.
Módulo 4: Microsserviços Conteinerizados e Orquestração Básica (5 horas)
- 4.1. Conteinerizando Microsserviços:
- Estratégias de Dockerfile para múltiplos serviços.
- Otimizando o tamanho das imagens para produção.
- Hands-on: Conteinerizar os dois microsserviços desenvolvidos no Módulo 3.
- 4.2. Orquestração Local de Microsserviços com Docker Compose:
- Configurando serviços no
docker-compose.yml
para microsserviços.
- Definindo dependências e redes para a comunicação entre serviços.
- Hands-on: Usar Docker Compose para orquestrar os microsserviços (ex: um serviço de Produtos e um serviço de Pedidos, ambos conteinerizados).
- 4.3. Gerenciamento de Configuração para Microsserviços:
- Variáveis de ambiente, volumes de configuração.
- Externalizando configurações.
- Hands-on: Passar configurações (ex: URL do serviço dependente, credenciais de DB) para os microsserviços via variáveis de ambiente/volumes.
- 4.4. Monitoramento Básico e Logging:
docker logs
para inspecionar logs de contêineres.
- Estratégias básicas de logging em microsserviços (STDOUT).
- Hands-on: Coletar e analisar logs dos microsserviços conteinerizados.
- 4.5. Conceitos de Gateway de API e Descoberta de Serviço (Manual):
- Por que ter um API Gateway (segurança, roteamento, rate limiting - conceitual).
- Descoberta de Serviço manual vs. automática.
- Prática: Orquestrar um sistema de microsserviços completo com Docker Compose, configurando comunicação e persistência.