Internal Developer Platform
GitOps-native IDP auf AKS und On-Premises-Kubernetes: ArgoCD App-of-Apps, Terraform-bereitgestellte Infrastruktur, vollständige Observability.
- #Kubernetes
- #ArgoCD
- #Terraform
- #Azure
- #Helm
- #Cloudflare
- #FastAPI
- #React
Ein selbst gebauter Developer-Portal, das alles zusammenbringt, was ich auf meinem Home-Lab und auf AKS mache: ein zentraler Ort, an dem ich sehe, was wo mit welcher Version deployed ist und welche Dashboards zu welchem Service gehören.
Architektur
- Zwei Kubernetes-Varianten. Produktion läuft auf AKS, bereitgestellt mit Terraform; das Home-Lab läuft Kubespray auf Fujitsu/Asus-VMs hinter Cloudflare Tunnel. Die IDP selbst ist auf beiden deployed.
- GitOps mit ArgoCD. App-of-Apps und ApplicationSets. Jede Umgebung (dev / staging / prod) ist ein Ordner mit Kustomize-ähnlichen Overlays im Platform-Repo.
- Image-Promotion. Die CI jeder App baut ein versioniertes Image und committet anschließend einen mit
sedaktualisierten Image-Tag im Platform-Repo. ArgoCD erkennt die Änderung und rollt vorwärts. - Observability. kube-prometheus-stack + Grafana mit benutzerdefinierten Dashboards, die als ConfigMaps aus JSON-as-Code generiert werden.
Erkenntnisse
- ApplicationSets sind großartig für Fan-Out, aber die Indirektion beißt einen, sobald man einen einzelnen Parameter für eine Umgebung überschreiben muss.
- WhiteNoise + ein Single-Image-Django/React-Deployment ist ein hervorragendes Muster für Services im persönlichen Maßstab. Zwei Container sind übertrieben, bis man sie unabhängig skalieren muss.
- Cloudflare Tunnel beseitigt eine ganze Klasse von "Wie exponiere ich diesen Service sicher?"-Problemen. Sehr empfehlenswert für ein Home-Lab.