Production on Kubernetes

hunchboard

Ingress, autoscaling, observability and GitOps: a realistic cluster for a team of services.

Comments

    What is on this board

    Parts

    • Users Internet
    • DNS and WAF CDN · Cloudflare
    • Cloud load balancer Load balancer
    • Ingress Reverse proxy · NGINX
    • API Container
    • Web Container
    • Workers Worker pool
    • Database Relational DB · PostgreSQL
    • Cache Cache · Redis
    • Repository Git repository · GitHub
    • CI CI/CD pipeline · GitHub Actions
    • Image registry Container · Docker
    • GitOps CI/CD pipeline · Argo CD
    • Metrics Metrics · Prometheus
    • Dashboards Dashboard · Grafana
    • On call Alerting / on-call · PagerDuty
    • Secrets Secrets manager · Vault

    How they connect

    • Users → DNS and WAF: HTTPS
    • DNS and WAF → Cloud load balancer: proxied
    • Cloud load balancer → Ingress: traffic
    • Ingress → API: /api
    • Ingress → Web: /
    • API → Database: SQL
    • API → Cache: cache
    • API → Workers: jobs
    • Repository → CI: push
    • CI → Image registry: image
    • CI → GitOps: new version
    • GitOps → API: roll out
    • Metrics → API: scrape
    • Metrics → Dashboards: show
    • Metrics → On call: alert
    • API → Secrets: secrets

    Notes and decisions

    • API: 3 to 20 pods
    • Database: Managed, outside the cluster