DevOps Fortgeschritten
GitOps — Patterns und Anti-Patterns¶
GitOpsArgoCDFluxBest Practices 6 Min. Lesezeit
GitOps-Architekturmuster. Monorepo vs. Polyrepo, Environment Promotion, Secrets Management.
Repo-Strategie¶
- App Repo + Config Repo (empfohlen)
- Monorepo — einfacher für kleine Teams
- Repo pro Environment — maximale Isolation
├── 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 baut Image und pusht mit Tag (Git SHA)
- CI aktualisiert Image-Tag in
overlays/dev/ - GitOps Sync nach Dev
- Automatische Tests
- PR von Dev zum Staging Overlay
- Review + Merge, dann Sync nach Staging
- PR nach Prod, Merge, dann Sync nach Prod
Secrets in GitOps¶
- Sealed Secrets — verschlüsselt in Git (Bitnami)
- SOPS — Mozilla SOPS mit age/KMS
- External Secrets Operator — Sync aus 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¶
- Manuelles kubectl apply neben GitOps, was zu Drift führt
- Secrets im Klartext in Git
- Überspringen von Environments
- Keine Drift Detection
- Zu große PRs — nicht reviewbar
Zusammenfassung¶
GitOps erfordert Disziplin bei der Repo-Struktur, Environment Promotion und Secrets Management. Committen Sie niemals Secrets im Klartext.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.