Arquitetura da Plataforma
Diagrama de Arquitetura do Sistema
┌─────────────────────────────────────────────────────────────────────────┐
│ Catálogo Backstage │
│ Domain System Component Resource │
│ payments gateway gateway-api gcp-payments-prod-cloudsql │
│ ├── aba k8s → saúde por ambiente por cluster │
│ ├── aba argo → status de sync por ambiente │
│ └── deps → cloudsql ← READY/SYNCED via k8s │
└──────────┬──────────────────────────────┬───────────────────────────────┘
│ plugins k8s + argocd │ plugin k8s (Claim CRD)
┌──────────▼──────────────┐ ┌────────────▼─────────────────────────┐
│ ArgoCD │ │ Clusters Kubernetes │
│ AppProject: payments ───┼───────┼► payments-{env}-api (por cluster) │
│ AppProject: platform ───┼───────┼► platform-{env}-monitoring │
│ AppSet: crossplane ───┼───────┼► payments-prod-infra/cloudsql-main │
│ -claims │ │ │
└──────────┬───────────────┘ └──────────────────┬────────────────────┘
│ sincroniza │ Crossplane reconcilia
┌──────────▼───────────────────────────────────────────▼───────────────────┐
│ Repositórios Git │
│ platform-gitops/ {domain}-gitops/ │
│ ├── argocd/ ├── k8s/{env}/{service}/ │
│ ├── crossplane/ ├── crossplane/claims/{env}/{type}/ │
│ ├── k8s/rbac/ └── catalog/ │
│ └── backstage-templates/ │
│ Provedores de Nuvem │
│ ────► GCP / AWS / Azure / IBM │
└──────────────────────────────────────────────────────────────────────────┘
Topologia de Clusters
| Cluster | Função | Hospeda |
|---|---|---|
cluster-mgmt | Gerenciamento | ArgoCD, Crossplane, serviços Tier B da plataforma |
cluster-dev | Cargas de trabalho dev | Applications dev de domínio, serviços Tier A da plataforma |
cluster-staging | Cargas de trabalho staging | Applications staging de domínio, serviços Tier A da plataforma |
cluster-prod | Produção | Applications prod de domínio, serviços Tier A da plataforma |
Chave Semântica
Toda a plataforma é endereçada via uma única chave de três segmentos:
{project} - {env} - {service}
payments - prod - api
│ │ └── Kubernetes: namespace payments-prod-api
│ │ Backstage: Component gateway-api (agnóstico de env)
│ └── ArgoCD: Application gateway-api-prod
└── ArgoCD: AppProject payments
Backstage: Domain payments
Fluxo de Deploy de Serviço
Desenvolvedor executa o template create-service
→ Estrutura App Repo (CI/CD, TechDocs) e abre dois PRs GitOps
→ PR da plataforma mesclado → elemento ApplicationSet adicionado
→ PR do domínio mesclado → manifestos k8s enviados para {domain}-gitops
→ ArgoCD detecta nova Application via gerador de matriz ApplicationSet
→ ArgoCD sincroniza com cluster-dev
→ Namespace, Deployment, Service, Policies criados
→ Plugin k8s do Backstage exibe saúde dos pods em todos os clusters
Fluxo de Provisionamento de Recurso de Nuvem
Desenvolvedor executa o template create-resource
→ Um PR aberto no domain-gitops
→ PR mesclado → Claim YAML em crossplane/claims/prod/{type}-{name}.yaml
→ Gerador git-directory do ArgoCD detecta novo arquivo → cria Application
→ Application sincronizada com cluster-mgmt
→ Crossplane reconcilia Claim → provisiona recurso em GCP/AWS/Azure/IBM
→ Segredo de conexão escrito no namespace {domain}-prod-infra
→ Página de Resource do Backstage exibe READY: True, SYNCED: True