Javad Zahrabi
Projects

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 sed aktualisierten 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.