Database consulting

Keep your data fast, safe and boring.

Statefulops helps engineering teams design, run and scale the databases their business depends on. This is where I write about what I have learnt along the way.

Neil Armitage
Neil ArmitageFounder & Principal Consultant

Latest writing

All posts →

10: day 2 ops

Building a cluster is the easy part. Operating one for two years without losing data is the actual job. This last post in the series covers the three things that distinguish a cluster you can rely on from a cluster…

9: storage ingress

The cluster is healthy and HA, but it’s not yet useful. Stateful workloads need somewhere to put their data, and HTTP workloads need a way to be reachable. This post installs local-path-provisioner as a default…

8: ha kube vip

One control plane node is enough for a working cluster. It is not enough for an HA cluster. If cp-1 goes down right now, every kubectl call hangs, no pods can be scheduled, and worker kubelets eventually start…

7: workers

One control plane node, one CNI, zero workers. Time to fix the third one. By the end of this post we’ll have worker-1 and worker-2 joined, Cilium running on them, and three nodes Ready. The mechanics are simple; the…

6: Cillium

At the end of post 5 we had a control plane running but cp-1 stuck in NotReady. That’s because kubelet refuses to be Ready until a CNI plugin has installed itself into /etc/cni/net.d/ and can hand out pod IPs. This…

5: Kubeadm init

This is the post where we actually get a Kubernetes API server running. After this, you’ll have a single-node control plane on cp-1 that’s already wearing its kube-vip VIP — ready for Cilium in post 6, workers in…

10 parts

Kubernetes fundamentals

The ground floor. If you're new to Kubernetes or you've been using it for a while but feel like you're cargo-culting your way through YAML, start here. We go from cluster …

Start with part 1 →

8 parts

GitOps with ArgoCD

Once you've got a cluster you understand, you want deployments that don't terrify you. This series covers GitOps from first principles through to running it at scale across …

Start with part 1 →

9 parts

Kubernetes observability

You can't fix what you can't see. This series covers the full observability stack: metrics, logs, traces, and dashboards. By the end you'll have the foundation to actually …

Start with part 1 →

How I can help

Services →

Performance tuning & troubleshooting

Find out why the database is slow and fix it, from query plans and indexing to configuration and resource sizing.

Architecture & design reviews

An independent second opinion on schemas, data models and platform choices before they become expensive to change.

Databases on Kubernetes

Run stateful workloads on Kubernetes with confidence, using operators, storage and backups that hold up in production.

Have a database problem?

Whether it's a slow query, an upcoming migration or a platform that needs to survive the next outage, let's talk it through.

Book a call