Viktor - Fotolia
In just five years, DevOps has moved from a general methodology that encourages collaboration between developers and operations teams to one that entails narrowly defined roles with unique requirements and expectations.
But those expectations vary broadly across the industry. Advancements in technology and best practices make qualification for a DevOps role, such as a DevOps engineer or administrator, a moving target.
What responsibilities come with a DevOps job?
To date, most organizations require a computer science degree or a degree from a related field -- although concessions for related experience have become more commonplace as well. The core responsibilities of a DevOps professional have held steady since the practice was coined -- CI/CD, some coding, and knowledge of quality assurance (QA) and IT operations. Experience with infrastructure management, networking, cloud management and workflow automation have also been, and still are, desirable.
In addition, working in a DevOps organization requires tight collaboration between developers, IT operations, the QA team and key business leaders, so a broad skill set -- including softer skills, like communication and organization -- is ideal. While it's not required for IT operations pros to have experience as a developer, coding and software design skills position an applicant to succeed.
It can be difficult, however, to branch out of a particular role when working in a non-DevOps workflow -- there might not be sufficient time or opportunity to learn coding skills as an IT ops admin, for example, or for a developer to pick up skills in deployment practices or infrastructure management.
But many vendors -- such as Red Hat, AWS and Microsoft -- and educational institutions and resources -- such as Lynda, Udemy and EdX -- offer courses and certifications for an array of code languages and IT processes and methodologies. IT pros can practice these skills in home labs to demonstrate to DevOps leaders that they take these practices seriously and are motivated to improve not only themselves, but organizational practices related to application delivery and deployment pipelines.
DevOps job descriptions in 2020
DevOps job titles have largely settled on DevOps engineer to account for the development and infrastructure work that is included in the role.
The tools and technologies that DevOps job listings in 2020 -- such as those on LinkedIn, Indeed and Glassdoor -- request and require are, in many cases, brand new for companies. Modern containerization and distributed application and system architectures were in their infancy just five years ago, so related skill sets were rare. Now, experience in -- or, at the very least, an understanding of -- these distributed architectures is a widespread demand. For those new to a DevOps role, this presents an opportunity to build up a valuable skill set that will be relevant for years to come.
The ongoing phasing out of VMs and traditional data centers in favor of cloud operations has shifted demand for hypervisor experience to that of containers -- and serverless technology is still growing, likely to play an important role in future IT production environments.
Kubernetes, for example, has risen rapidly to dominate the container management space; it's now the de facto orchestrator to which other vendors have ceded and incorporated into their products. Docker, on the other hand, rose to fame in the earlier days of the container market, but its native orchestrator, Swarm, fell behind Kubernetes. Now DevOps listings highlight Kubernetes experience instead of just Docker experience, which is a notable transition.
CI/CD, cloud and business skills a boon
One IT hiring manager who requested anonymity explained that their organization has been seeking a senior DevOps engineer to better mesh and foster collaboration between disparate IT teams, and to create a more fluid CI/CD pipeline. The emphasis on CI/CD skills and expertise is relatively new in the IT job market, which means the required skills can be difficult to both find -- on behalf of organizations -- and acquire -- on behalf of job applicants, especially those who work in organizations that operate legacy applications and little to no cloud operations.
The anonymous manager's organization has been operating under two different CI/CD pipelines that are, in many ways, siloed; the application development team uses Jenkins, but the IT operations team uses Ansible. A dedicated DevOps engineer will be tasked to merge these pipelines together with a long-term goal to ease into a single tool set. A transition to cloud hosting also presents its own unique challenges for a DevOps hire because the infrastructure management and application deployment processes are so vastly different. For example, if IT needed a load balancer in the past, that need was translated to somebody who purchased it and installed it; now, the load balancer is part of the application, which is an emergent infrastructure setup that turns established procedure on its head. The primary shift for a DevOps engineer, the IT hiring manager said, is to find somebody who understands the business problem over -- or before -- the technology problem.
That understanding of business needs and goals -- and the fact that it takes precedence over technological needs -- can cause a lot of hang ups for those new to DevOps: IT must function as a business driver rather than a mere system of support, and professionals with experience outside of IT have an edge on those without.
Identify DevOps-leaning practices in your current job and work with management to both smooth them out and expand the list; demonstrating DevOps leadership in a non-DevOps workflow shows flexibility and growth, and pivots not only the IT team, but the business, toward greater success.