Blog/Thoughts
Building an Autoscaler for Docker Swarm: Inside swarmctl
Swarm gives you `docker service scale` and nothing else. This is how I built swarmctl, a daemon that collects metrics, decides when to scale, executes safely, and coordinates VM scaling with OpenStack.
Running Production Swarm: Serving Containerized Apps Without Kubernetes
Our company is early in its containerization journey, so I started with Docker Swarm instead of Kubernetes. This is the whole architecture: edge, routing, placement, autoscaling, failures, and what I would do differently.
Building a CloudTrail for OpenStack: Why We Chose Loki Over Hermes, Elasticsearch, and Everything Else
There is no built-in AWS CloudTrail equivalent for OpenStack. This is the full story of what already exists, why none of it was quite right, and what we actually built.
Welcome to My Digital Sandbox!
Joe thinks I'm doing some amazing stuff and honestly, he wanted a front-row seat to read about it.
Building a Production Monitoring Stack from Scratch, Part 4: The Enrollment API
Eliminating manual SSH work, and why the solution ended up living inside Grafana.
Building a Production Monitoring Stack from Scratch, Part 3: Loki, Tempo & the Full Observability Picture
Adding log aggregation with Loki and distributed tracing with Tempo, completing the metrics, logs, and traces picture.
Building a Production Monitoring Stack from Scratch, Part 2: Grafana Alloy & the Push vs Pull Problem
Why we replaced individual exporters with Grafana Alloy, why push-based metrics silently broke our alerting, and what it took to figure that out.
Building a Production Monitoring Stack from Scratch, Part 1: Prometheus, Grafana, Node Exporter & AlertManager
How we migrated from NagiosXI to a modern open-source observability stack, and why getting the foundation right mattered more than I expected.