Área do Aluno & Equipe
Voltar para todos os artigos

Google Cloud e Docker: estrutura para publicar aplicações

Como sair do ambiente localhost para um servidor em nuvem com proxy reverso Traefik, HTTPS automático e controle de custos.

Capa do Guia de Google Cloud e Docker: Infraestrutura Mínima Viável com Traefik v3

O maior erro dos desenvolvedores e fundadores de startups ao colocarem seus sistemas na nuvem é tentar replicar a arquitetura da Netflix ou do Uber logo no primeiro dia. Caem na armadilha de contratar clusters Kubernetes gerenciados, dezenas de microsserviços dispersos, gateways caros e bancos de dados superdimensionados. Ao final do primeiro mês, a fatura em dólar consome o orçamento do projeto antes mesmo de terem clientes pagantes.

Na MSC Company, operamos nossas plataformas de produção — incluindo bancos de dados, servidores de e-mail próprios, APIs de mensageria WhatsApp e portais corporativos — com base no princípio da Infraestrutura Mínima Viável e Resiliente (MVI). Neste guia técnico aprofundado, você aprenderá a montar esse ambiente do zero.

1. A Filosofia da Infraestrutura Mínima Viável

Uma boa arquitetura de produção não é aquela que possui o maior número de ferramentas complexas, mas aquela que oferece:

  • Previsibilidade de Custos: Saber exatamente quanto vai pagar no fim do mês sem variações imprevisíveis de billing.
  • Simplicidade Operacional: Um único engenheiro precisa conseguir reiniciar, auditar ou atualizar qualquer serviço em minutos.
  • Portabilidade Total: Se o provedor de nuvem subir os preços ou apresentar instabilidades, a aplicação precisa poder migrar para outro servidor sem reescrever código.
  • Segurança por Isolamento: Cada aplicação roda em seu próprio container isolado, com redes virtuais dedicadas e sem expor portas desnecessárias à internet pública.
Padrão de Produção MSC

Toda a nossa stack de produção na VM central msc-core-prod no Google Cloud roda sob esse mesmo padrão: Traefik v3 como roteador central e terminação TLS, PostgreSQL 16 com volumes persistentes, e containers Docker independentes conectados por redes bridge internas.

2. O Coração da Nuvem: Uma VM Linux com Docker e Traefik v3

Em vez de contratar 10 serviços separados na nuvem, você precisa apenas de uma única máquina virtual Linux (Debian ou Ubuntu LTS) na Google Cloud Platform (GCP). Com os recursos bem alocados, uma máquina com 2 vCPUs e 4GB de RAM é capaz de atender confortavelmente centenas de requisições por segundo.

A inteligência do roteamento fica a cargo do Traefik v3, um proxy reverso moderno projetado para ambientes em container. Ele monitora os eventos do Docker daemon em tempo real: quando você sobe um novo container com as labels corretas, o Traefik detecta o novo serviço, solicita o certificado SSL gratuito ao Let's Encrypt e começa a rotear o tráfego em HTTPS imediatamente.

3. Arquivo de Configuração Prático: docker-compose.yml

Veja a estrutura básica do arquivo de composição que serve como alicerce para seus serviços:

services:
  traefik:
    image: traefik:v3.1
    container_name: traefik
    restart: unless-stopped
    command:
      - "--api.dashboard=false"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
      - "--certificatesresolvers.myresolver.acme.email=suporte@suaempresa.com"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./letsencrypt:/letsencrypt"
    networks:
      - web_gateway

  minha-api:
    image: node:20-alpine
    container_name: api-producao
    restart: unless-stopped
    working_dir: /app
    volumes:
      - ./api:/app
    environment:
      - NODE_ENV=production
      - PORT=3000
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.api.rule=Host(`api.suaempresa.com`)"
      - "traefik.http.routers.api.entrypoints=websecure"
      - "traefik.http.routers.api.tls.certresolver=myresolver"
      - "traefik.http.services.api.loadbalancer.server.port=3000"
    networks:
      - web_gateway

networks:
  web_gateway:
    external: true

4. Como Gerenciar Segredos sem Cometer Erros Críticos

O vazamento de credenciais em repositórios Git é a causa número um de invasões e faturas astronômicas causadas por mineradores de criptomoedas. Na MSC Company, seguimos a regra canônica:

Regra de Segurança MSC

Nunca comite arquivos .env com senhas reais no Git. Use o Google Secret Manager para guardar credenciais sensíveis e injete-as como variáveis de ambiente no container apenas durante a esteira de deploy.

Para quem busca dominar a nuvem e alavancar a carreira técnica, saber operar servidores e containers com autonomia é um dos maiores diferenciais do mercado. Se você tem o objetivo de trabalhar para empresas do exterior, confira também nosso guia prático sobre como passar em entrevistas técnicas em inglês.

Quer colocar a mão na massa com laboratórios reais e aprender passo a passo a subir bancos de dados, volumes criptografados e pipelines de deploy contínuo? Conheça a formação completa Google Cloud & Containers do Zero ao Deploy na MSC Academy.

Perguntas Frequentes sobre este Guia

Quanto custa manter uma infraestrutura mínima no Google Cloud?

Uma máquina virtual do tipo e2-small ou e2-medium no Google Compute Engine custa tipicamente entre R$ 80 a R$ 180 por mês, suficiente para rodar dezenas de containers com Traefik v3, banco de dados PostgreSQL e múltiplas APIs.

Por que usar Docker Compose em vez de Kubernetes no início?

Kubernetes adiciona uma camada imensa de complexidade, custo de gerenciamento e consumo de recursos. Para mais de 95% dos produtos digitais em fase inicial ou média, o Docker Compose oferece deploy previsível, simples e sem surpresas na fatura.

Como funciona a emissão de certificados SSL gratuitos?

O Traefik v3 integra-se diretamente ao Let's Encrypt. Ele detecta novos containers em execução, valida o domínio via desafio HTTP ou DNS e gera/renova certificados TLS automaticamente sem intervenção manual.

Fontes & Referências Oficiais Citadas

Continue lendo sobre este assunto

Carreira Tech

Como se preparar para entrevistas tech em inglês

Ler artigo
Operações & Negócios

Como funciona o treinamento da equipe MSC

Ler artigo