Curso Containers Docker and Microservices
20 horasVisã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
Objetivo
Ao final do Curso Containers Docker e Microsserviços Da Conteinerização à Orquestração", você será capaz de:
- Compreender os fundamentos do Docker (imagens, contêineres, volumes, redes).
- Conteinerizar suas próprias aplicações (de diferentes linguagens/frameworks) com Docker.
- Entender os princípios e padrões da arquitetura de Microsserviços.
- Projetar e desenvolver microsserviços básicos com comunicação entre eles.
- Orquestrar múltiplos contêineres e serviços usando Docker Compose.
- Aplicar boas práticas de segurança e performance em contêineres.
- Diagnosticar e resolver problemas comuns em ambientes Docker e microsserviços.
- Preparar o terreno para orquestradores mais avançados como Kubernetes.
Publico Alvo
- Desenvolvedores (qualquer linguagem): Que buscam conteinerizar suas aplicações e entender arquitetura de microsserviços.
- Engenheiros DevOps e SysAdmins: Para gerenciar e implantar aplicações em ambientes conteinerizados.
- Arquitetos de Software: Que projetam sistemas distribuídos modernos.
- Profissionais de TI: Que desejam se atualizar e trabalhar com as tecnologias mais relevantes do mercado.
Pre-Requisitos
- Noções básicas de linha de comando (terminal): Familiaridade com comandos básicos de sistema operacional (Linux/macOS ou Windows Powershell/WSL).
- Conhecimento básico de alguma linguagem de programação: Capacidade de entender e seguir exemplos de código (Ex: Python, Node.js, Java).
- Conceitos básicos de HTTP e APIs REST: Métodos, URLs.
Materiais
Inglês/Português/Lab PráticoConteú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).
- Instruções essenciais:
- 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.
- Modos de rede:
- 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.
- Mapeamento de portas (
- 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.
- Comunicação Síncrona (APIs RESTful):
- 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).
- Configurando serviços no
- 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.