Pular para o conteúdo principal

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

ClusterFunçãoHospeda
cluster-mgmtGerenciamentoArgoCD, Crossplane, serviços Tier B da plataforma
cluster-devCargas de trabalho devApplications dev de domínio, serviços Tier A da plataforma
cluster-stagingCargas de trabalho stagingApplications staging de domínio, serviços Tier A da plataforma
cluster-prodProduçãoApplications 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