Ingress, autoscaling, observability and GitOps: a realistic cluster for a team of services.
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