Pointer
ALESP
Turma infraestrutura-t1

Infraestrutura — integração com Kubernetes, runners, gestão de ambientes e automações

Híbrido · 20 h · 11/01/2027 a 15/01/2027 · Instrutor: Gustavo Costa

← Todas as turmas

Agenda

SessãoDataHorárioMódulos
s111/01/202709:00–13:00Fundamentos de pipelines GitLab CI/CD
s212/01/202709:00–13:00GitLab Runner: tipos, executores, registro e operação; Entrega contínua: ambientes, deploys, releases e proteção de produção
s313/01/202709:00–13:00Reuso de configuração: include, extends, inputs e componentes do CI/CD Catalog; Infraestrutura como código e Kubernetes: estado OpenTofu gerenciado e agente GitLab para Kubernetes
s414/01/202709:00–13:00Backup, restauração e upgrade
oficina15/01/202709:00–13:00GitLab Runner: tipos, executores, registro e operação; Entrega contínua: ambientes, deploys, releases e proteção de produção

Formulários

Presença

Registro de presença na sessão com o código informado pelo instrutor.

coleta fechada

Responder

Avaliação pré

Questionário antes do primeiro módulo (mede o conhecimento inicial).

coleta fechada

Responder

Avaliação pós

O mesmo questionário ao final da turma (mede a evolução).

coleta fechada

Responder

Satisfação

Pesquisa anônima sobre a turma, o instrutor e os laboratórios.

coleta fechada

Responder

Módulos

Fundamentos de pipelines GitLab CI/CD · Básico · 3 h

Objetivos

  • Criar um arquivo .gitlab-ci.yml com stages e jobs e validá-lo no pipeline editor.
  • Executar um pipeline e interpretar o log e o status de cada job.
  • Configurar execução condicional básica com when e allow_failure.
  • Diagnosticar falhas de sintaxe e de script em pipelines.

Pré-requisitos: repositorio-git

Conteúdo

TópicoTierFonte
Estrutura do .gitlab-ci.yml: palavras-chave globais (default, include, stages, variables, workflow) e de jobFreedocumentação
Stages padrão (.pre, build, test, deploy, .post); job sem stage vai para testFreedocumentação
Jobs, script, before_script, after_script, image, jobs ocultos iniciados por pontoFreedocumentação
when (on_success padrão, on_failure, always, manual, delayed, never) e allow_failureFreedocumentação
Pipeline editor e validação de configuração (CI Lint)Freedocumentação
Tipos e estados de pipelineFreedocumentação
GitLab Runner: tipos, executores, registro e operação · Intermediário · 2 h

Objetivos

  • Criar e registrar um runner com token de autenticação (prefixo glrt-).
  • Configurar tags, execução de jobs sem tag e runner protegido.
  • Distinguir runners de instância, grupo e projeto e os executores ativos e em manutenção.
  • Interpretar os status de runner (online, offline, stale, never_contacted).

Pré-requisitos: Fundamentos de pipelines GitLab CI/CD

Conteúdo

TópicoTierFonte
Runners de instância, grupo e projeto; fila de uso justo dos runners de instânciaFreedocumentação
Fluxo de criação de runner com token de autenticação glrt-; token de registro legadoFreedocumentação
Executores Kubernetes, Docker, Docker Autoscaler e Instance; SSH, Shell, Parallels, VirtualBox e Custom em modo de manutençãoFreedocumentação
Tags, Run untagged jobs, runners protegidosFreedocumentação
config.toml (/etc/gitlab-runner/ como root), concurrent e recarga automática a cada 3 segundosFreedocumentação
Status de runner: online (contato nas últimas 2 h), offline, stale (mais de 7 dias), never_contactedFreedocumentação
Entrega contínua: ambientes, deploys, releases e proteção de produção · Intermediário · 3 h

Objetivos

  • Configurar ambientes estáticos e dinâmicos com deployment tier.
  • Configurar review apps com parada automática.
  • Configurar deploy manual com resource_group e bloqueio de jobs de deploy desatualizados.
  • Configurar ambiente protegido com aprovação de deploy.
  • Criar release por pipeline e consultar a evidência da release.

Pré-requisitos: ci-variaveis-artefatos

Conteúdo

TópicoTierFonte
environment, deployment tiers (production, staging, testing, development, other) e atribuição automática pelo nomeFreedocumentação
Review apps: ambiente dinâmico por branch, on_stop com environment:action stop, auto_stop_inFreedocumentação
resource_group, Prevent outdated deployment jobs e deploy freeze (variável CI_DEPLOY_FREEZE)Freedocumentação
Ambientes protegidosPremiumdocumentação
Aprovações de deploy; autoaprovação desabilitada por padrão para quem disparou o pipelinePremiumdocumentação
Releases com a palavra-chave release; evidência da release em JSONFreedocumentação
Artefatos de relatório incluídos na evidência da releaseUltimatedocumentação
Reuso de configuração: include, extends, inputs e componentes do CI/CD Catalog · Avançado · 3 h

Objetivos

  • Configurar include dos tipos local, project, remote, template e component.
  • Reutilizar configuração com extends, jobs ocultos e !reference.
  • Criar um componente com spec:inputs tipados.
  • Publicar uma versão semântica do componente no CI/CD Catalog e consumi-la em outro projeto.

Pré-requisitos: ci-variaveis-artefatos, ci-regras-dag

Conteúdo

TópicoTierFonte
include (component, local, project, remote, template); até 150 includes por pipeline; mesclagem com precedência do .gitlab-ci.ymlFreedocumentação
extends (até 11 níveis de herança), jobs ocultos, âncoras YAML restritas ao próprio arquivo e !referenceFreedocumentação
spec:inputs: tipos string (padrão), array, number e boolean; interpolação $[[ inputs.id ]]; input obrigatório sem defaultFreedocumentação
Inputs x variáveis de CI/CD (valor fixo na criação do pipeline x valor em tempo de execução)Freedocumentação
Projeto de componentes: diretório templates/, até 100 componentes por projeto, referência FQDN/caminho/componente@versão, ~latest e versão semântica parcialFreedocumentação
Publicação no CI/CD Catalog: projeto de catálogo (Owner), descrição, README.md e job com releaseFreedocumentação
Infraestrutura como código e Kubernetes: estado OpenTofu gerenciado e agente GitLab para Kubernetes · Avançado · 2 h

Objetivos

  • Configurar o componente OpenTofu (validate-plan-apply) com estado gerenciado pela plataforma GitLab.
  • Registrar e instalar o agente GitLab para Kubernetes com arquivo de configuração no repositório.
  • Configurar ci_access para que jobs de CI/CD usem o contexto do agente.
  • Identificar as versões de Kubernetes suportadas na versão 19.4.

Pré-requisitos: Entrega contínua: ambientes, deploys, releases e proteção de produção

Conteúdo

TópicoTierFonte
Estado OpenTofu/Terraform gerenciado pela plataforma GitLab, criptografado em repousoFreedocumentação
Componente OpenTofu do CI/CD Catalog (validate-plan-apply)Freedocumentação
Agente GitLab para Kubernetes: um agente por cluster, registrado em projeto, .gitlab/agents/<nome>/config.yamlFreedocumentação
Fluxo CI/CD com o agente: ci_access (projects, groups) e contexto <caminho/projeto>:<agente>Freedocumentação
GitOps com Flux e agentkFreedocumentação
Versões de Kubernetes suportadas: 1.34, 1.35 e 1.36Freedocumentação
Backup, restauração e upgrade · Avançado · 3 h

Objetivos

  • Executar backup com gitlab-backup create e salvar separadamente gitlab-secrets.json e gitlab.rb.
  • Restaurar backup em instância da mesma versão e tipo (CE/EE).
  • Planejar o caminho de upgrade com as paradas obrigatórias da versão 19.
  • Verificar a conclusão das batched background migrations antes do próximo upgrade.

Pré-requisitos: adm-arquitetura-instalacao

Conteúdo

TópicoTierFonte
gitlab-backup create: conteúdo do arquivo (banco, repositórios, artefatos, registries, uploads, estados Terraform)Freedocumentação
Dados fora do backup: /etc/gitlab (gitlab-secrets.json, gitlab.rb), object storage, Redis, chaves TLS e SSHFreedocumentação
Diretório padrão /var/opt/gitlab/backups (gitlab_rails['backup_path']); STRATEGY=copy; SKIP=Freedocumentação
Restauração: mesma versão e tipo, parada de Puma e Sidekiq, gitlab-backup restore BACKUP=<id>Freedocumentação
Paradas obrigatórias de upgrade em x.2, x.5, x.8 e x.11 (19.2, 19.5, 19.8, 19.11); última versão de patchFreedocumentação
Batched background migrations: Admin > Monitoring > Background migrations e API administrativaFreedocumentação

Laboratórios

Cada aluno recebe um subgrupo com os projetos dos exercícios; a correção é automática, pela API da plataforma GitLab.

ExercícioTítuloObjetivoTierDuração
lab-ci-01Primeiro pipeline com stages e jobsCriar .gitlab-ci.yml com build e teste e executar o pipeline em main.Free45 min
lab-ci-02Diagnosticar pipeline quebradoCorrigir erro de sintaxe YAML e erro de script sem remover testes.Free40 min
lab-cd-01Review apps, deploy manual para produção e releaseConfigurar ambientes dinâmicos com parada, deploy controlado em produção e release por tag.Free60 min
lab-cd-02Ambiente protegido com aprovação de deployExigir aprovação antes do deploy em produção.Premium30 min
lab-ci-06Criar, publicar e consumir um componente do CI/CD CatalogTransformar um job repetido em componente versionado com inputs.Free80 min
lab-iac-01OpenTofu com estado gerenciadoExecutar validate, plan e apply com o componente OpenTofu e estado na plataforma GitLab.Free35 min