Skip to content

pmagaiwer/descomplicando-gitops-no-kubernetes-argocd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Guia de Nivelamento

Argo Ecosystem (ArgoCD, Rollouts, Workflows e Events)

Este repositório tem como objetivo nivelar o conhecimento sobre o ecossistema Argo, abordando seus principais componentes, conceitos e boas práticas de uso em pipelines modernos de Continuous Delivery (CD) e GitOps.


🧩 O que é o Argo?

O Argo é um conjunto de ferramentas nativas do Kubernetes desenvolvidas para automatizar e gerenciar pipelines de CI/CD, fluxos de trabalho e eventos. Ele se divide em quatro projetos principais:

Componente Função Principal Destaques
Argo CD Continuous Delivery (CD) declarativo e GitOps Sincroniza o estado do cluster com o Git
Argo Rollouts Estratégias avançadas de deploy Canary, Blue-Green, Rollback automático
Argo Workflows Execução de pipelines complexos no Kubernetes Workflows como código
Argo Events Gerenciamento de eventos e automação Triggers, sensores e integração com ferramentas externas

🔁 Ciclo de Desenvolvimento e Deploy com ArgoCD

graph TD
A[Desenvolvedor cria feature branch] --> B[Commit e Push no Git]
B --> C[Pipeline CI executa testes e build]
C --> D[ArgoCD monitora repositório Git]
D --> E[Sincronização automática com cluster Kubernetes]
E --> F[Argo Rollouts gerencia a estratégia de deploy]
F --> G[Observabilidade com métricas e alertas]
G --> H[Rollback automático se falhar]
H --> I["Versão promovida para ambientes superiores TST/PRD"]
Loading

🧠 Conceitos Básicos

Termo Descrição
Feature Branch Ramificação criada para desenvolver uma nova funcionalidade.
Pull Request (PR) Solicitação para mesclar código de uma feature branch no branch principal.
Main / Master Branch Branch estável de produção.
GitOps Prática onde o Git é a única fonte de verdade do estado de aplicações e infraestrutura.
Manifestos Kubernetes Arquivos YAML que descrevem o estado desejado de objetos no cluster.
Sync Policy Define como o ArgoCD sincroniza o cluster com o Git (manual ou automática).
Health Checks Avaliação do estado dos recursos para garantir integridade pós-deploy.

📘 FAQ — Base de Conhecimento

🔹 Argo Rollouts

  • O que é Argo Rollouts?
    Uma extensão do Kubernetes que oferece estratégias de implantação avançadas como Canary e Blue-Green.

  • Quais estratégias NÃO são suportadas?
    Recreate e Rolling Update (são do deployment padrão).

  • O Argo Rollouts substitui Deployments padrão?
    ✅ Verdadeiro — ele oferece recursos mais avançados e métricas integradas.

  • Suporta integração com métricas e Ingress?
    ✅ Verdadeiro — pode se integrar com Prometheus, Istio, Linkerd e Ingress (NGINX/ALB).

  • Possui painel e notificações integradas?
    ❌ Falso — o painel é simples, e as notificações precisam de integração (ex: Argo Notifications).

  • Realiza rollback automático com base em métricas?
    ✅ Verdadeiro.

  • Principal vantagem:
    Controle fino sobre tráfego, métricas e versionamento durante o rollout.


🔹 Argo Events

  • O que é Argo Events?
    Ferramenta para gerenciar eventos e gatilhos no Kubernetes.

  • Componentes principais:

    • Gateway
    • Sensor
    • Trigger
    • (❌ Rollout não faz parte do Argo Events)
  • Pode acionar funções Lambda e enviar mensagens Kafka?
    ✅ Verdadeiro.


🔹 Argo Workflows

  • Função principal:
    Criar pipelines complexos e paralelos no Kubernetes.

  • Recurso usado:
    Workflow — é o principal CRD (Custom Resource Definition) utilizado.

  • Recursos principais:

    • CLI e Dashboard próprios
    • Suporte a artefatos e templates reutilizáveis
    • Integração com Argo Events
  • Suporta Blue-Green Deployments?
    ❌ Não — isso é função do Argo Rollouts.

  • Pode escalar para milhares de workflows/dia?
    ✅ Sim, é altamente escalável.


🔹 ApplicationSets e App of Apps

  • Função do ApplicationSet:
    Criar, atualizar e gerenciar múltiplos Applications de forma dinâmica no ArgoCD.

  • Pode direcionar múltiplos clusters?
    ✅ Verdadeiro.

  • Geradores suportados:

    • List Generator
    • Git Generator
    • Cluster Generator
      (❌ Helm Generator não é suportado diretamente)
  • Suporte a monorepo e múltiplos repositórios Git?
    ✅ Verdadeiro.

  • List Generator:
    Gera manifests com base em uma lista fixa de aplicações.


🔹 App of Apps Pattern

  • Função:
    Permite que um Application gerencie outros Applications.

  • Vantagem principal:
    Facilita implantações massivas e organizadas.

  • Usos comuns:

    • Ambientes DEV, TST, PRD
    • Clusters multi-tenant
    • Combinação com Helm e Kustomize
  • Pode ser usado com ApplicationSets?
    ✅ Sim, combinam perfeitamente para máxima flexibilidade.


🧭 Boas Práticas

  1. Organize os manifests por ambiente (dev, tst, prd).
  2. Automatize validações de YAML e policies com ferramentas como Kubeval ou OPA.
  3. Habilite Sync Policy automática apenas em ambientes controlados.
  4. Mantenha observabilidade integrada com Prometheus + Grafana.
  5. Utilize Argo Notifications para alertas em canais como Slack ou Teams.

📚 Recursos Complementares


🧑‍💻 Autor: Pierre Santos

📅 Última atualização: Novembro/2025

🏷️ Objetivo: Nivelar o conhecimento sobre o ecossistema Argo e padronizar práticas de GitOps.

About

Repositório do treinamento Descomplicando o GitOps no Kubernetes com ArgoCD

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors