There’s no doubt about it, working as a DevOps engineer — an engineer that enables DevOps culture — is challenging, cutting-edge, and financially rewarding. DevOps engineering is a relatively new career, with Larry-Page-level opportunities for those with the right technical skills.
It’s also highly relevant in the workplace, and it’s ideal if you’re hungry for both technological and interpersonal challenges. DevOps is an intelligent job transition if you’ve been doing software development, networking, or operations.
DevOps engineers do a lot of automation, monitoring, testing, configuring, networking, and infrastructure as code (IaC). That means you’ll need to bring a variety of skills and talent to the table. Let’s face it, it’s a highly technical role that’s usually best left to experienced engineers.
There’s some opportunity in the DevOps field for entry-level engineers, but most of the jobs require experience. So, is it worth it to become a DevOps engineer? And — do you have what it takes? After reading this article, you’ll be better equipped to find out!
Interested in a career in DevOps? See our article on How to Become a DevOps Engineer.
What is DevOps?
DevOps Engineers use their skills to deliver software quickly, continuously, and reliably. The goal of DevOps is to shorten the software delivery and feedback cycles. DevOps pros typically orchestrate multiple components in a cloud environment. They’re the ones who make sure the system keeps running smoothly, day after day.
DevOps professionals also keep things up to date with the latest changes and security updates. They automate testing, scanning, and deploying. If there’d been DevOps on the Death Star, the rebels never would have blown it up.
Where did DevOps come from?
DevOps evolved as a cultural phenomenon. Recently, companies have created specialist DevOps roles to help create and support their culture. There are so many specialized tools and skills in the IT side of every business that supporting DevOps is increasingly a full-time job.
While DevOps has certainly changed how we develop software, it has also fundamentally changed how software is deployed. This is largely thanks to the general availability and lower cost of cloud infrastructure, containerized environments, and the evolution of tools that enable automation.
Why DevOps is a good career in 2021
Working in DevOps isn’t a bad way to spend your time these days. As a field, DevOps is experiencing job growth. Furthermore, the jobs in DevOps pay more than the average tech or computer science job. There’s some level of upward and horizontal mobility too.
Let’s dive a little deeper into each of the three reasons DevOps is a good career.
1) Massive DevOps job growth
To say that jobs in the DevOps field are growing would be an understatement. In fact, the Bureau of Labor Statistics (BLS) shows a projected growth rate this decade in the software field at 22%, compared to an 8% median growth rate for all jobs.
While DevOps jobs are only part of that growth, it’s still substantial. Let’s assume, for example, that DevOps jobs growth is only 5%. With 1.8 million jobs in the field now, that 5% growth means 90,000 new DevOps jobs. And given the popularity of DevOps with employers, 5% is almost certainly a lowball estimate.
2) High salary for DevOps jobs
DevOps jobs pay very well, like many jobs in IT. If you’re into being paid comfortably and you have the right qualifications, you’re probably already looking at salaries for DevOps jobs.
Builtin puts the average base salary for a DevOps Engineer in the U.S. at $125 — and upwards in the $300k range. Glassdoor pegs it closer to $105k. These are just two examples of average pay. The range is fairly wide, but still, the pay is quite nice for a 9-5 job.
Of course, there’s always some variability in the market depending on location, experience, and the company you end up working for.
3) Upward mobility
There’s some upward mobility for DevOps Engineers depending on the company. You might find a career path from junior engineer all the way up to DevOps architect. If you have the right stuff, you may even end up managing the department.
It’s also possible to transition to similar roles like site reliability engineer (SRE). Of course, the higher you go the fewer positions are available. (The corporate pyramid leaves less room near the top.)
DevOps offers plenty of horizontal mobility too, since DevOps engineering skills usually translate between industries. Plus, it doesn’t make too much of a difference whether the company makes widgets or life insurance. The work in DevOps is generally the same.
What you’ll do in a DevOps position
Depending on the company and your specific DevOps role, you may end up working on any number of issues. Your role may relate to automation, infrastructure, tooling, quality, or monitoring (to name a subset). The automation aspect includes code deployment, environment and infrastructure configuration, and even automatic quality checks.
The goal of all this automation is to speed up delivery without sacrificing quality or security. Much of the work is setting up monitoring and alerting for the automation and production systems. Monitoring and altering are important aspects of the feedback loops that power continuous improvement.
The downsides of a DevOps career
There are a few key downsides of a career in DevOps, including a high-pressure atmosphere, lack of recognition, and frustrations from butting heads with other technical teams. You may also feel like a jackrabbit in a field of turtles as you champion cutting-edge advancements while the rest of your organization slogs behind.
Most of the work in DevOps happens behind the scenes. In other words, your achievements won’t be put on display. You may get zero recognition outside your branch in the org chart. In less collaborative environments, DevOps Engineers might face frustrations with other technical teams.
Out on the bleeding edge
There may be situations where the goals of DevOps run counter to the goals of other groups that are slow to change or adopt complementary practices. The tools can sometimes be frustrating to work with too. And, in the real world, any number of things can go wrong at any given time.
Part of your job in DevOps is to make sure systems are running well. If something goes wrong, you may have to work outside normal hours to resolve the problem. You may feel intense pressure from extremely high expectations, especially during challenging times.
Is DevOps right for you?
By now, you should have the answer to the key question: is DevOps a good career? It is.
Still, you might not know if DevOps is right for you. So — if you’re still on the fence, here are a few questions (and answers) to help make up your mind:
Are you interested in automation?
If you’re interested in automation, that’s one point for team DevOps. If you prefer coordinated manual deployments, maybe a DevOps environment won’t be the best fit for you. DevOps teams do a lot of automation.
Do you like the DevOps framework?
The DevOps framework is a set of behaviors that seeks close collaboration between software development and operations. If using communication, processes, and tools to tighten that loop is appealing, you’d do well in a DevOps environment.
Do you like being in charge of infrastructure?
DevOps Engineers play a Linus-Torvalds-size role in establishing and maintaining the infrastructure that runs applications. Most often, the actual infrastructure (the hardware) is provided by a cloud vendor. The work of DevOps Engineers is to configure the rented infrastructure for efficient operations of applications. It’s interesting work if you like fine tuning and solving data flow problems.
Skills you need for a DevOps career
Do you have the right skills to be a DevOps engineer? The often-quoted acronym CAMS paints a picture of the spirit of DevOps as: Culture, Automation, Measurement, and Sharing.
That acronym was coined by John Willis and Damon Edwards in 2010. As Willis pointed out, Jez Humble later added an ‘L’ for Lean. CALMS pretty much sums up the skills you need for a DevOps career.
Patrick DuBois, co-originator of DevOps, still says all problems are people problems. In Jan 2021, he still fights the good fight against organizational silos as mentioned in this tweet. And since DevOps is a culture of sharing, it helps to have good interpersonal skills.
Part of the job is reaching out with empathy and helping others achieve their goals. And, you know — things will go wrong from time to time. When they do, your interpersonal skills will go a long way toward helping you come out on top.
2) A programming language
If you’re thinking about a career in DevOps, you should know how to code, at least at a basic level. Much of the work involves writing shell scripts or using a coding language such as Python to automate tasks. You may need to write Python scripts to call various APIs, or use shell scripts to manipulate files.
Some DevOps roles require knowledge of VB-Script and Windows PowerShell. Either way, you should have a foundation of coding, so you can learn the nuts and bolts of your environment.
3) Automated build/test
One of the core principles of DevOps is automation. Automating builds is a human-genome-sized step toward consistency, reliability, and traceability. Once that’s done, it’s time to automate the tests for that build. Sometimes this demands a big shift in thinking and a whole lot of work.
Still, it’s a big win when you can get to automated build and test. DevOps culture centers around this kind of win. You may write tests using Selenium, Postman, the Robot Framework, or other types of automated testing tools. You’ll have to incorporate these tools into the automated release process.
In all likelihood, you’ll use containers in your career as a DevOps Engineer. Many organizations are either using or switching to containers (mainly Docker) for several types of workloads. A container is an isolated runtime environment that includes most of an operating system. It runs on a server or VM. You can launch containers quickly, making them ideal for running tasks fast — a key focus in DevOps work.
Configuration is another task DevOps Engineers spend lots of time on. Actually, most of the work in automating is configuring the systems that perform the work. Even the infamous IaC (infrastructure as code) is really about configuring the infrastructure and environment using a specification language.
DevOps cultures prefer using IaC because IaC tracks changes. That lets DevOps pros measure the effects (remember: CALMS). There’s nothing worse than tracking down a problem without knowing a configuration changed! In DevOps, you want to monitor events like Tony Stark.
6) Version control
Along with one of the tools you’ll use frequently as a DevOps engineer — the Linux-based operating system — you’ll most likely use another of Linus Torvald’s inventions — git! Or you might use another version control system like subversion or TFS. They all do the same general thing: keep track of changes to the codebase.
For automated delivery pipelines, you’ll keep the configuration under version control. You’ll store IaC files in VCS as well. And often, a VCS is hosted on a platform that runs a pipeline and can be configured to kick off automation. The VCS is also the heart of a change-management system in a DevOps world.
Developers from different groups or projects often need the same types of features. They might need logging, authentication, or any kind of functionality plugged into a software development environment. DevOps culture embraces sharing (the “S” in CALMS), so its denizens will often “package” functionality.
DevOps engineers might even dive in and create these packages to share. Or, they may just manage package repositories both public and private. Note that package repositories are another possible destination for delivery.
Ahhh, networking! If a problem isn’t a code error, it’s probably something in the network. Networking is another critical skill in a DevOps role. It could be enough to know the IP protocol, but you’ll often need an understanding of certificates and routing, too.
Even in a cloud environment, it’s important to know how networks and subnetworks operate. And even containers have their own type of network configuration to consider.
DevOps is a great career in 2021 and beyond. If you’re at all interested in the crossover between development and operations, it could be a Ken-Thompson-level field for you. With six-figure salaries, swift job growth, and plenty of upward mobility, the future for DevOps is blindingly bright. If you’ve felt strongly that DevOps is a good career to get into, then definitely give it a shot.