ops-demo/docs/presentation/final-talk.md
2026-03-03 23:40:52 +01:00

90 lines
2.8 KiB
Markdown

# Final Talk - GitOps in de praktijk
## 1. Wat we nu echt hebben staan
Vandaag hebben we niet "een demo" gebouwd, maar een complete GitOps-loop:
1. Git bevat de gewenste state.
2. ArgoCD reconcilet de cluster daarnaar.
3. Tekton wijzigt Git (image-tag bump), en ArgoCD pakt dat weer op.
4. Alles is reproduceerbaar op een nieuwe VM.
### Snelle architectuur
```
Laptop/browser
-> argocd.192.168.56.200.nip.io
-> podinfo.192.168.56.200.nip.io
-> grafana.192.168.56.200.nip.io
VirtualBox host-only netwerk
VM (k3s)
-> ingress-nginx + MetalLB
-> ArgoCD (app-of-apps)
-> Tekton (CI in-cluster)
-> podinfo (demo workload)
-> monitoring (bonus)
```
### Componenten in 1 regel
| Component | Waarom die hier zit |
|-----------------------|----------------------------------------------|
| k3s | Lichtgewicht Kubernetes voor lokale labs |
| ArgoCD | GitOps controller |
| MetalLB | LoadBalancer IP op bare metal/VM |
| ingress-nginx | HTTP routing op hostnames |
| Tekton | Pipeline als Kubernetes resources |
| podinfo | Eenvoudige app om deploys zichtbaar te maken |
| kube-prometheus-stack | Metrics en dashboards |
## 2. Waarom dit productie-relevant is
### Zonder GitOps (klassieke drift)
```bash
kubectl set image deployment/api api=company/api:hotfix
```
Dat werkt snel, maar je verliest context: geen review, lastig auditbaar, foutgevoelig.
### Met GitOps
1. Wijziging gaat via commit/PR.
2. Review + merge.
3. ArgoCD sync.
4. Git geschiedenis is je audit trail en rollback-mechanisme.
Concreet voordeel:
- Traceerbaarheid: wie veranderde wat en waarom.
- Driftcontrole: handmatige clusterwijzigingen vallen op.
- Herstelbaarheid: cluster kwijt -> opnieuw opbouwen vanuit Git.
- Samenwerking: app- en platformwijzigingen via hetzelfde proces.
## 3. App-of-Apps in het kort
`apps/root.yaml` verwijst naar onderliggende Argo Applications.
Dat betekent: nieuwe capability toevoegen = nieuwe app-definitie committen.
Geen losse handmatige installatiestappen op de cluster.
## 4. Grenzen van deze workshop-opzet
Dit is een leeromgeving. In productie zou je strakker willen op o.a.:
- Secrets: geen PATs als plain K8s secrets in Git-workflow, maar Vault + ESO of vergelijkbaar.
- Security: PSA/namespace policies bewust hardenen i.p.v. versoepelen voor labs.
- Multi-cluster: ApplicationSets en promotieflow (dev -> staging -> prod).
- Delivery-strategie: canary/blue-green met meetbare rollback-criteria.
## 5. Wat je mee moet nemen
Als je 1 ding onthoudt:
"Het cluster is een runtime-kopie van wat in Git staat."
Niet andersom.
Dat principe maakt deployments voorspelbaar, bespreekbaar en herstelbaar.