DevOps Pokročilý
GitOps — Patterns a Anti-patterns¶
GitOpsArgoCDFluxBest Practices 6 min čtení
GitOps architektonické vzory. Monorepo vs polyrepo, environment promotion, secrets management.
Repo Strategie¶
- App repo + Config repo (doporučeno)
- Monorepo — jednodušší pro malé týmy
- Repo per environment — maximální izolace
├── apps/
│ ├── api-gateway/
│ │ ├── base/
│ │ │ ├── deployment.yaml
│ │ │ ├── service.yaml
│ │ │ └── kustomization.yaml
│ │ └── overlays/
│ │ ├── dev/
│ │ ├── staging/
│ │ └── prod/
├── infrastructure/
│ ├── cert-manager/
│ └── monitoring/
└── clusters/
├── dev/
├── staging/
└── prod/
Environment Promotion¶
- CI buildne image → push s tagem (git SHA)
- CI updatne image tag v
overlays/dev/ - GitOps sync do dev
- Automatické testy
- PR z dev do staging overlay
- Review + merge → sync do staging
- PR do prod → merge → sync do prod
Secrets v GitOps¶
- Sealed Secrets — šifrované v Gitu (Bitnami)
- SOPS — Mozilla SOPS s age/KMS
- External Secrets Operator — sync z Vault/AWS SSM/Azure KV
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: api-keys
spec:
refreshInterval: 1h
secretStoreRef:
name: azure-keyvault
kind: ClusterSecretStore
target:
name: api-keys
data:
- secretKey: DATABASE_URL
remoteRef:
key: prod-database-url
Anti-patterns¶
- ❌ Ruční kubectl apply vedle GitOps → drift
- ❌ Secrets v plaintextu v Gitu
- ❌ Přeskakování environments
- ❌ Žádný drift detection
- ❌ Příliš velké PR — nereviwovatelné
Shrnutí¶
GitOps vyžaduje disciplínu v repo struktuře, environment promotion a secrets managementu. Nikdy necommitujte secrets v plaintextu.
Potřebujete pomoct s implementací?¶
Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.