NOTE: Updated Oct 17, See Below
This is a thought that’s been percolating around in my head for the last year or so, but has recently become even more crystalized: I’ll probably never hire another Systems Administrator. A corollary to this thought would be: if you are currently a Systems Administrator or want to be one, you need to seriously begin planning on how to manage a career that will be mostly deprecated within the next 10 years.
Take a look at the current state of the art in cloud computing:
- Spin up a server at your favor cloud provider (AWS, Rackspace, etc.), then use Puppet or Chef to deploy your software stack. Now you’re done.
- OR, Spin up an App at your favorite cloud platform provider, then push your code out using Git. Now you’re done.
- For both solutions, plug in some off-the-shelf monitoring, and you’re operating.
What’s missing here is the configuration, setup, provisioning, doc writing, black magic and/or prayer of setting up the software, hardware, and getting the code running that used to be the domain of the Systems Administrator. In just a couple of years, deploying a web application has now become almost identical to deploying a desktop application – instead of an installer we’re using Git or Puppet/Chef. Instead of a customer’s computer we’re using a cloud platform or cloud server.
There’s plenty still to do on the networking side, but that’s headed in the same exact direction due to the same exact reasons: we want to be able to clearly define and programmatically execute the deployment of complex networks, just like we can with complex server offerings.
All of this falls under yet another buzzword: Dev/Ops. Just like the cloud, we’re seeing this being adopted by smaller, nimbler organizations that are focused on web products, but the trend is clear, and there’s really no benefit in doing things the Old Way. Even if you’re still running your own physical metal servers, you’re going to want to make sure that your own datacenter can leverage this type of workflow. Now, the watchword to the development team is: it’s not done until I can one-click deploy it.
The laggards on this will be those industries that have regulatory or legal hurdles to overcome with using cloud services (read: healthcare) or the very large companies with services and technology that’s dozens of years old with no migration plan.
SysAdmins and future SysAdmins, you need to figure out where you’ll live in this new workflow. Probably in the margins around monitoring or desktop support. Possibly serving as the gatekeeper in a sort of “operations Q/A” role. Expect small companies to have SysAdmin openings dry up over the next 5-10 years and get prepared.
Updated October 17: Hello Reddit/r/programming and Hacker News! I wanted to take a few minutes and respond to a few themes that seemed to pop up in comments on HN and Reddit.
- I’m not saying Sysadminning is dead – just that the role is quickly changing. Seems like a lot of people (anecdotally, many Sysadmins) thought I was saying the entire profession is dead. Yes of course we’ll still need Sysadmins on some level, but the crucial difference is that for many areas of a business these needs will be less and much much different.
- Software development is changing too. On complex deployments, developers can’t absolve themselves of the responsibility to design infrastructure considerations into the solution they’re building on the front end. It’s a scary thought to think that organizations are out there that don’t have this level of partnership between ops and the devs. This is why the puppet scripts should be written first and deployed on a test environment that’s identical in as many ways as possible to the ultimate operating environment (another benefit of using the cloud).
- Of course, any more complex deployment will need devoted SysAdmins, but like I said above, the skillset and day-to-day job will be dramatically different when wrestling with hundreds of servers instead of dozens. More and more programming will become the norm and more and more upfront input into the solution will be an absolute requirement.
- I received a very thoughtful email from a former SysAdmin of mine (previous company) who pointed out that the job is much more along “system integrator” lines now, and that the internal vs. external network distinction is essentially going away. I agree.
- Whenever your’e generalizing, counter examples abound. Sure big companies and certain computing environments will still do things the Old Way but I’d challenge readers to objectively think if most business decision makers really want to hire someone and run their email server internally or just pay Rackspace/Google/Whomever to do it and worry instead about their money-making applications. Even those organizations that need their clusters in house will invest in tech that allows them to mimic cloud operations on their own bare metal infrastructure.
- A couple of amusing anecdotes – the comments on HN immediately became more positive after a well known commenter defended the post, and a Googler chimed in as well. That’s when the upvotes really started coming it seems. On Reddit, the story was quickly downvoted! Most users chose either a “genius” or “idiot” assessment of the post. No real middle ground.