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.
Anyone realize the electric power that we are so used to consuming from a service provider is becoming more expensive? It is coming full circle with solar and other alternative technologies that will make an individual independent and self suffcient from the clutches of the Power provider in the future.Likewise just as the cost of hardware was declining we saw a symmetrical rise in software and maintenance costs – the vendors thought Hey we can charge you by the "virtual cpu". So we have cloud computing coming into the fray that seems enticing to the bean counters. Soon enough with mobile devices becoming more powerful by the day, we could see computing come back to the individual – call it "self computing". The sysadmin roles may change in the new setups, probably more so developers. They would have to be integrators, assemblers or architects. With complexities come new specialities. I for one can vouch that increasingly sysadmins are being pulled into applications domain as appadmins or appsupport along with some project responsibilities. Been there done that for the past few years and my company wants me back as a traditional sysadmin!
As a sysadmin I’m in full agreement with your assessment. Our traditional day to day work has changed drastically in that we’re mainly responsible for deployment and management of hundreds of VMs meaning automation and configuration consolidation with Chef/Puppet and the fine tuning of those unified configurations, although you still require at least a basic understanding of the OS to be able to know how to fine tune the system but as you pointed out above our job is turning more and more towards dev/ops than pure sysadmin.
One area I see not budging for a while is backup and storage (although storage seems to be changing faster than backup) but, although important especially in the case of backup, these can be considered niche.
Personally I’m moving back to my first love, system engineering (with a touch of architecture/pre-sales). Don’t get me wrong, I love scripting and automation but in the end the pure sysadmin is dying and I’ve always felt leave development to developers. If those developers have a question on system configuration, they can send me an email.
short sighted article. here’s the simple reality: the more servers there are in the world, virtual or bare-metal, means more sysadmins are needed to run them. you have a small business that wants to put all its servers in the cloud? ok, who’s going to install and configuration the applications, the databases, get them talking to eachother, fix them when they break, etc? sysadmins of course. And who’s gonna fix the virtual hosted environment behind the scenes at the hosting company? sysadmins of course. When was this article written? 2011? And now we are 2015 and there is even more need for sysadmins now than ever before.