Personal Infra Update
Moving to Kubernetes
Previously my website hosted in multiple free services available in the Internet. For my application/development experiment finally i moved to Kubernetes cluster hosted in Vultr, since at the end of 2022.
Comparing the old and the new version.
Item | Old | New |
---|---|---|
Website | https://dash.deno.com (Deno Deploy) | Django |
Blog | https://prose.sh/ | Django + Wagtail |
DNS | Route 53 | Cloudflare DNS |
... |
Updated deployment diagram:
The diagram created using `diagrams` package, diagram as code https://diagrams.mingrammer.com/
Gitops, The configuration
The k8s cluster managed by Flux in Github private repository github.com/sakti/personal-infra
with alert from Flux defined as commit status.
The components
- ingress-nginx for Ingress
- cert-manager for manage TLS cerficate from Let's Encrypt
- PGO, for PostgreSQL Operator; self managed PostgreSQL database running in k8s
- Minio, for s3 compatible storage
The apps
web
; this web app (pages, blogs, etc) build using Django + Wagtail, using async as much as possible in Django and using experimental Granian a Rust HTTP server for Python appkatze
; https://katze.saktidwicahyono.name, cat ascii web app from this series from fasterthanlime "Building a Rust service with Nix". This app also used for load testing target to test cache "request coalescing" from the original cat image source.future app namespace
, the next application/system experiment
The monitor
- k8s cluster monitored by Grafana
web
error tracking monitored using Sentrykatze
tracing managed by Honeycomb
Conclusion
With this migration, I am able to trade recurring monthly costs for much more flexibility in deploying my experimental apps.
初志貫徹