One look at StackShare’s trending technologies, and you’ll discover the exploding growth of languages, webservers, load balancers, databases, caching servers, automation & monitoring tools, continuous integration suites & a broad spectrum of Software as a service solutions.
The choices today boggles the mind. Choice is good, but too much choice can mean trouble too.
Join 30,000 others and follow Sean Hull on twitter @hullsean.
1. What am I actually using?
Erich Schubert wrote a superb piece about the sad state of the sysadmin in the age of containers. Here’s what caught my eye:
Stack is the new term for “I have no idea what I’m actually using”.
That definitely rings true for me. The customers I’m seeing these days have such complicated stacks, that nobody really knows what’s installed. That’s dangerous!
2. Embrace failure more broadly
Recently I wrote a blog post asking Is AWS the patient that needs constant medication?. It got a lot of traction, and here’s why I think that happened.
AWS uses very commodity, cheapo components. The assumption is, with an infinitely redundant datacenter, component failure is ok. It’s ordinary & everyday.
Unfortunately most startups, even ones that employ some Ansible & devops, still don’t have Netflix grade automation.
Those regularly everyday failures are still getting detected by old-school manual monitoring. And that’s a recipe for trouble
3. What are complex systems?
In this excellent deck, James Urquhart talks about emergent behavior in complex systems. It’s worth a quick read.
4. What to do? Do you like boring?
Dan McKinley formerly principal engineer at Etsy & now with Stripe wrote a brilliant essay arguing for boring technology.
This comes as a shock to many in the startup world. It sort of smacks in the face of open source, or does it?
I worked in the enterprise space as an Oracle DBA for a decade starting in the mid-nineties. Among DBAs there was always a chuckle when a new version of Oracle came out. No one wanted to touch it with a ten foot pole. Sure we’d install it on test boxes, start learning the new features and so forth. But deploy it? No way, wait a good 2 or even 3 years before upgrading.
Meanwhile management was eager for the latest software. Don’t we want the newest? The Oracle sales guys would be selling the virtues of all sorts of features that nobody needed right away anyway.
Choosing boring components takes discipline to fight sexy new technologies & bleeding edge versions. But staid & stodgy wins you everyday in operations uptime.
5. Use tried & tested components
Do you find your application or stack contains java, ruby, python & PHP? Choose one.
One webserver like nginx, one caching server like memcache or redis, one search server like solr or elasticsearch, one database like MySQL or postgres. Standardize all your components on one image, so you can use that for all your servers, regardless of which you use.
Fewer components will mean fewer interdependencies, less maintenance, & less chaos.