Choose boring tools
You only start to appreciate boring tools when you run your software in production.
It’s hard to choose tools nowadays because there are so many of them, and marketing departments work hard to sell you the magic by pushing the right buttons: “infinite scale”, “cloud-native”, “edge-ready”…
But marketing teams don’t run the software. Engineers do. In prod, all marketing slogans lose their spell because the real network, hardware, and software limitations eat marketing for breakfast. Not understanding fundamental tech limitations, algorithms, and capacity planning makes engineers fall prey to marketers selling magic. And magic isn’t fun when you’re in prod.
Once you have a basic understanding of ProductionOps, your life becomes much easier, because the list of tools worth considering shrinks by 1000x. You only consider tools that have been around for decades. Reliable tools that you know, understand, and trust.
- Need a DB? Postgres or MySQL.
- Need a KV store? Redis.
- Need a load balancer? Nginx.
- Instead of k8s, shell script to deploy and run your apps. 99% of software that runs k8s doesn’t need k8s. Don’t pay complexity tax until you need it.
- Instead of microservices, scale your majestic monolith vertically until IPO.
Sounds boring? Then it’s a good tech stack.
A word on serverless: if you think that running “serverless” saves you from learning some capacity planning, load balancing, servers, connection pooling… Then wait until production. It will quickly reveal all your blind spots and get you back to learning fundamentals. No magic.
The beauty of good old boring tools:
- They’re well-documented and open-source. You can understand how they work and ask for help.
- You can run them locally or on your infra. Not through some ugly emulators. That simplifies development and testing.
- The time you invest in learning them is a fantastic investment. They’ve been around for decades and stay even longer.
- In production, boring tools make you smile, and fancy tools make you cry.
- Choosing tools becomes a simple task when you shrink the list to boring and battle-proven tools.
- The administrative “complexity” vendors are trying to hide from you introduces even more complexity and mental overhead. They sell you scary things and deliberately call good things (like fundamental computer science and capacity planning) scary.
- Don’t fall victim to marketing and FOMO. Learn the basics of capacity planning, shell scripting, and learn to operate boring software. Running servers with quality software isn’t as scary as someone wants you to think.