Why Your Static Website Needs Kubernetes
I see people hosting static websites on GitHub Pages or Netlify. This is embarrassing.
Your portfolio website deserves enterprise-grade infrastructure.
The Architecture
# portfolio-website-infrastructure.yaml
# Only 47 files, keeping it simple
apiVersion: apps/v1
kind: Deployment
metadata:
name: portfolio-html
spec:
replicas: 17 # One per HTML tag
template:
spec:
containers:
- name: nginx
resources:
requests:
memory: "8Gi" # HTML is heavy
cpu: "4"
Why 17 Replicas?
My portfolio has 17 HTML elements. Each element deserves its own pod. This is called element-oriented architecture.
The Full Stack
For my 3-page portfolio:
- 3 Kubernetes clusters (prod, staging, dev)
- Istio service mesh (for that sweet mTLS between About and Contact pages)
- ArgoCD (GitOps for updating my bio)
- Prometheus + Grafana (alerting when someone views my page)
- Jaeger (distributed tracing for the βHome β Aboutβ user journey)
- Vault (my email address is a secret)
The Helm Chart
portfolio-chart/
βββ Chart.yaml
βββ values.yaml
βββ values-dev.yaml
βββ values-staging.yaml
βββ values-prod.yaml
βββ values-prod-us-east-1.yaml
βββ values-prod-eu-west-1.yaml
βββ templates/
β βββ deployment.yaml
β βββ service.yaml
β βββ ingress.yaml
β βββ configmap.yaml
β βββ secret.yaml
β βββ hpa.yaml
β βββ pdb.yaml
β βββ networkpolicy.yaml
β βββ servicemonitor.yaml
βββ charts/
βββ common/
βββ (847 more files)
Some say this is overkill. I say theyβre not ready for scale.
Cost Analysis
| Solution | Monthly Cost |
|---|---|
| GitHub Pages | $0 |
| Netlify | $0 |
| My K8s Setup | $3,400 |
But can GitHub Pages handle 3 visitors per month with sub-millisecond latency? Didnβt think so.
The CI/CD Pipeline
When I update my resume:
- Push to GitHub
- GitHub Actions builds Docker image
- Trivy scans for vulnerabilities in my HTML
- Image pushed to ECR
- ArgoCD detects drift
- Helm upgrade triggered
- Rolling deployment across 17 pods
- Smoke tests verify βHello Worldβ still renders
- Slack notification to #deployments
- PagerDuty alert (just in case)
Total time: 23 minutes for a typo fix. But itβs automated.
βWhy Not Just Use S3?β
S3 is for people who donβt understand the cloud.
Conclusion
If your static website isnβt running on Kubernetes, are you even a real engineer?
XKCD 1319 shows automation: βI spend more time automating than the task would take.β This is not a bug. This is job security.
XKCD 1629 asks about tools: βIs it worth the time?β The answer is always yes if youβre billing hourly.
Dilbert captured this perfectly when Wally said: βIβve automated myself out of a job, so now Iβm automating the automation. Itβs automation all the way down.β
The authorβs portfolio has been βunder constructionβ since 2019. The infrastructure is perfect though.