Many organizations are moving to DevOps, an ethos that integrates software developers and IT professionals who manage production operations for a smoother, more productive workflow. That means that DevOps engineers are more in demand than ever before, with these professionals ranked no. 2 on Glassdoor’s 2018 Best Jobs in America list.
To help those interested in the field better understand how to break into a DevOps engineering career, we compiled the most important details and resources. This guide on how to become a DevOps engineer will be updated on a regular basis.
What is DevOps?
According to TechRepublic contributing writer James Sanders, DevOps—a combination of Development and Operations—is a workflow that emphasizes communication between software developers and IT professionals managing production environments, while automating the deployment of software and infrastructure changes. At its core, DevOps involves combining development and operations into one continuous process.
The idea grew out of the Agile methodology, and first gained attention at a conference in 2009.
Many IT departments are siloed between development, operations, support, and management, but a DevOps system seeks to integrate them all for better productivity and a smoother overall workflow. The system allows companies to quickly deliver software and security updates both internally and to customers. The ultimate goal is to bring products to market faster, deliver software and security updates more quickly, and make the entire process more reliable.
DevOps combines concepts from agile development, continuous integration, and continuous delivery, but adds in the social aspect of IT by emphasizing the importance of collaboration across development, operations, support, and management teams.
There is no one-size-fits-all DevOps tool or product needed to fix problems in an organization. Rather, the purpose of DevOps is to increase and improve collaboration.
What does a DevOps engineer do?
On a basic level, a DevOps engineer is a tech professional who understands the software development lifecycle, and can use engineering tools and processes to solve operations challenges. The engineer must balance a number of different roles, including coding, integrating, and testing, with the goal of improving collaboration and speeding the development process.
These professionals are typically senior developers or system administrators with skills in business, organization, configuration, automation, operations, and leadership.
DevOps requires frequent, incremental changes to code versions so that frequent testing and deployment is possible, according to IntelliPaat. DevOps engineers must connect the different elements of coding with libraries and SDKs, and integrate different components of SQL data management or messaging tools for running software releases on OS and production infrastructure, the site noted.
Some people argue that the title “DevOps engineer” or “DevOps team” is antithetical to the practice of DevOps itself, since it may create another silo instead of breaking them down. Therefore, some companies have people who perform DevOps management tasks, but do not fall under the title of DevOps engineer.
Why are DevOps jobs in demand?
Demand is high for these jobs as more enterprises—including Adobe, Amazon, and Target—turn to DevOps practices to deliver software and security updates more rapidly, both internally and to customers. We also see a shortage of those with the proper skill sets in development and operations across the tech sector.
The number of job postings mentioning DevOps rose from less than 1% in 2012 to more than 24% in 2017, according to Indeed.
DevOps engineer was named the no. 3 most in-demand tech job in a 2016 Indeed report, and the no. 2 most difficult tech job to fill. Not much had changed the next year, when the position was named the no. 4 hardest-to-fill tech job in a 2017 Dice report.
What skills does a DevOps engineer need to have?
DevOps engineers need a variety of tech and soft skills to be successful, experts say.
New technologies and tools crop up continuously on the DevOps landscape, so ideally, DevOps professionals are curious and willing to keep up. It’s important for a DevOps engineer to have a broad understanding of tech and tools in the following areas, Karthiga Sadasivan, director and head of DevOps at Happiest Minds Technologies, told TechRepublic:
- Source control (like Git, Bitbucket, VSTS, etc.)
- Continuous integration (like Jenkins, Bamboo, VSTS )
- Infrastructure automation (like Puppet, Chef, Ansible)
- Deployment automation and orchestration (like Jenkins, VSTS, Octopus Deploy)
- Container concepts (LXD, Docker)
- Orchestration (Kubernetes, Mesos, Swarm)
- Cloud (like AWS, Azure, Google Cloud Platform, OpenStack)
Since automation is driven by testing, strong testing skills are also needed to be a successful DevOps engineer, said Andrae Raymond, founder and full-stack developer at Steward Software Solutions.
As companies trend toward DevSecOps, it’s key to build in secure software from the start, rather than bolt it on later, said Meera Subbarao, senior principal consultant for the Synopsys Software Integrity Group.
People skills are also key for breaking down silos between departments, but tend to be underappreciated, Alan Zucker, founding principal of Project Management Essentials, told TechRepublic. As software engineers, DevOps professionals tend to look to tools rather than people and processes.
“Great DevOps engineers start by understanding the people, the culture, and how the organization runs,” Zucker said. “They then build a strategy that focuses on simplifying the overall operating environment to achieve the goal of continuous delivery.”
What are the best markets for DevOps jobs?
The global DevOps market size is predicted to reach $12.85 billion by 2025, according to a Grand View Research report, growing at 18.6% CAGR during the forecast period. The growth is fueled by increasing digitization of enterprises to automate business processes, rising adoption of cloud technologies, growing adoption of agile frameworks, and the need for better collaboration between IT teams to improve operational efficiency, the report found. The North American region is projected to lead the global market, according to the report.
DevOps engineer positions are found across many tech companies, including Amazon, Netflix, Facebook, and Adobe.
As of January 2018, there were more than 3,300 open jobs in DevOps, according to Glassdoor. DevOps engineers came in no. 5 on the list of tech roles with the largest share of job openings in Silicon Valley in 2018, according to Indeed. Indianapolis, IN and Cleveland, OH were hot markets for DevOps jobs as of 2017, according to Glassdoor.
What is the average DevOps engineer salary?
DevOps engineers earn a median base salary of $105,000 in the US, according to Glassdoor.
However, salaries vary widely by geographic location and company. DevOps manager salaries are highest in Silicon Valley, where these professionals earn an average yearly salary of $166,448, according to a 2018 Indeed report.
DevOps engineer adjusted salaries are highest in the Baltimore-Columbia-Towson, MD area at $130,000, according to a 2017 Indeed report.
What are some typical DevOps engineer interview questions?
In a job interview for a DevOps engineer position, candidates can expect to receive questions such as:
- What is your favored development lifecycle, its pros and cons, and the actors and tooling involved?
- What DevOps tools do you use, and why?
- What are your best practices for making a DevOps process work?
- How do you keep on top of the latest tech, and what process do you take to identify what you need when the shelf tools aren’t enough?
- What would you rank as your top three technical skills?
- How do you motivate developers to follow best practices?
- How do you adapt when things don’t go as planned?
These questions, along with more specific technical ones, aim to get at the candidate’s understanding of process and tools.
Where can I find DevOps online courses, training, certifications, and resources?
There is no formal career path to becoming a DevOps engineer, according to Puppet. Typically, these professionals are either developers who become interested in deployment and network operations, or system administrators with an interest in scripting and coding and move into the development side to improve the planning of tests and deployment. These tend to be professionals who are interested in breaking out of their defined spaces and gaining a more holistic view of the technical environment, Puppet noted.
Those interested in a DevOps job should begin expanding their skills and experience to compete for these roles, Puppet recommended. This means amping up your coding skills, getting familiar with automation tools, and seeking out projects and roles that allow you to exercise soft skills like leadership and collaboration between teams.
You can click here to learn more about how to become a developer, and how to explore automation for IT infrastructure automation. Seeking out a mentor in the space can also be beneficial.
In other words, start where you are, Jeff Sussna, founder and CEO of Sussna Associates, told TechRepublic. Gaining experience with DevOps does not require a new or different management position.
“I have been in places where you’re not actually allowed to say the word DevOps, because operations managers think it’s code for getting fired,” Sussna said. “I think it’s important to emphasize that at its heart, DevOps is not about org chart changes—it doesn’t mean everyone’s title changes or you report to one manager. It means that the nature of your relationships with all of the other managers are parts of the organization changes.”
DevOps is all about cross-team collaboration, so it’s key to hone those skills, said Bridget Kromhout, principal cloud developer advocate at Microsoft and lead organizer of the DevOpsDays conference. Practitioners must learn to lead development, infrastructure, operations, security, testing, product, and any other related teams, she said.
Those interested in DevOps should also be someone who enjoys continuous learning and teaching, Kromhout said.
Organizations are typically more interested in a DevOps engineer’s experience over certifications or coursework. There is no one overall certification for DevOps professionals, but those interested can consider certifications in the following skillsets that may contribute to DevOps practices, according to DevOps consultant Gourav Shah:
- AWS Certified SysOps Administrator – Associate
- AWS Certified DevOps Engineer – Professional
- Puppet Certification Program
- Red Hat Certificate of Expertise in Ansible Automation exam (EX407)
- Docker Certification
- Certified Kubernetes Administrator (CKA)
- Chef Certification
There are also a number of online courses available that focus on different DevOps skills from Coursera, Udacity, EdX, and other providers.