BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
The DevOps engineer is quickly becoming a critical role for leading-edge businesses. Without a clear path of advancement to the position, IT shops must identify the right combination of DevOps engineer skills in new hires or experienced employees.
Businesses need high-level guidance for the successful convergence of development, testing and operations as part of a continuous delivery, or DevOps, initiative. In a DevOps environment, someone with specific skills -- including a holistic knowledge of collaboration and business practices -- is needed to keep the wheels churning and achieve the best business outcomes. This has led to the emergence of DevOps engineers.
The list of base requisite DevOps engineer skills is lengthy; even more are necessary to master the role. Yet there is no formal career track to become a DevOps engineer.
Platform skills are a must
IT organizations are typically built around the idea of a stack -- the combination of prevailing OSes, services and associated tool sets to develop, deploy and support the applications. There is often some overlap or cross-training between stacks. But the most successful and effective DevOps engineers have the deepest expertise in administering the stack that the business currently uses or plans to use. The three principal stacks are Microsoft Windows Server, Linux server distributions and a cloud structure.
The Microsoft stack typically includes OSes such as Windows Server 2012 R2 and Windows Server 2016; management platforms such as System Center and its various iterations such as Operations Manager; supporting applications such as SQL for a database or SharePoint for collaboration and so on.
A Linux stack is based on the open source OS kernel. It also includes many other open source tools, such as Chef and Puppet, as well as open source frameworks, such as OpenStack, that create a private cloud. Open source stacks have gained attention in recent years as the number of VMs proliferate -- making licensing and software maintenance agreements costly.
Public cloud options include Microsoft Azure -- which can complement Microsoft stacks -- as well as Google Compute Platform and Amazon Web Services, which can complement Linux stacks. Going with cloud requires a DevOps engineer to have a solid knowledge of the chosen cloud provider's services, management options and cost structure.
Technical skills are part of the job
DevOps engineer skills include building, deploying and operating software as well as managing the stack. They should also build a deep expertise with many specific tools and adopt best practices.
Know how to code. DevOps can mean different things to different organizations, but ultimately it involves getting new code through development and into production quickly. DevOps engineers might not be writing low-level code, but they'll need to understand the code, develop scripts and tackle the integrations -- such as getting the new code version to talk to the SQL database -- to make deployments run on the operations side. DevOps engineers should have a solid foundation in PHP, Python, Perl, Ruby and other computer languages. DevOps engineers also benefit from a background in integration management tools such as Jenkins, Apache Maven or Apache Ant.
Know how to manage change. Speed and fluidity are the hallmarks of a DevOps culture -- code is always changing, and it takes sound collaboration and version management skills to assemble the correct components and craft a release that runs. DevOps engineers work with tools such as Git, Perforce and Apache Subversion for version and revision control. To better deploy this ever-changing code, many DevOps engineers embrace configuration management, which is almost always automated to accelerate the pace of new version releases. Many DevOps engineers are experts with tools such as Puppet, Chef and Vagrant.
Know how to provision and deploy. DevOps engineers don't just shepherd code through development; they also provide the bridge needed to facilitate those new releases on the operations side. DevOps engineer skills extend into the realm of IT hardware and infrastructure: servers and storage to networks and OSes. Because the DevOps engineer knows the entire IT stack, she can guide the provisioning and deployment of each new release. This know-how usually extends to creating and maintaining reliable and available services.
Know how the release performs. A DevOps engineer is the consummate consultant, someone who can objectively evaluate the performance of each new release, make adjustments to provisioned resources and platforms as required, use various tools to measure workload performance and analyze log results, and then share that content with the entire staff to enhance future iterations. DevOps engineers will know tools such as Nagios, Zabbix, Sensu, Amazon CloudWatch, Splunk, New Relic and other products that monitor performance locally and on public cloud platforms.
Communicate and manage the staff
DevOps engineer skills don't end with technical know-how and a management toolkit. Success in this role also hinges on soft skills found in business leaders and managers.
Know supporting platforms. Modern software is more about integrating platforms and services than writing low-level code. For example, nobody creates messaging or database functionality today -- the code integrates to existing platforms such as Exchange, SQL, Redis or countless other third-party or open source business applications that use common APIs. These platforms are usually part of the business stack, but engineers should know how to use them. For example, if the business ties a new software product to a SQL back end, a DevOps engineer should know how to set up the database and make complex SQL queries.
Know how to manage and communicate. A DevOps engineer represents a high-level role that spans multiple teams within an organization. A DevOps engineer works across disciplines, interacting with developers, IT staff and business leaders with equal aplomb. This means a DevOps engineer's skills include being an expert communicator who is also a capable manager, one who can talk the talk, walk the walk and see the point of each team -- and then bring those disparate professionals together in a productive manner to ensure rapid continuous development that will achieve the best business results.
Know how to fix problems. With so many people and competing interests involved in the DevOps process, there are countless technical and professional problems that will inevitably arise over time. Those include interpersonal conflicts, changing roles and responsibilities within the organization, and broken business processes. A DevOps engineer must assess these situations and seek constructive solutions that will achieve goals while keeping constituents happy. For example, if a release cycle is delayed by inefficient manual steps, a DevOps engineer can make a technical and business case to invest in automation.
Making the journey
DevOps engineers often have one of the most technically and professionally challenging roles in modern business. Individuals who rise to the challenges recognize rewards that extend beyond the paycheck. For some DevOps engineers, there is an undeniable thrill in being involved in the entire software delivery cycle. Others enjoy breaking down traditional barriers and merging development and operations silos. Still others have a knack for streamlining processes and optimizing how apps deploy and run.
Ultimately, the real challenge of being a DevOps engineer is getting there in the first place. There is currently no formal career path and the list of skills is long. A DevOps engineer isn't made -- such a person evolves and grows into the role, usually starting out as an IT pro with a strong interest in coding, or as a developer invested in code testing and deployment. In both cases, the candidate stretches far beyond the typical silos, crossing disciplines to achieve a holistic view of the business and its software product development.
DevOps engineers don't just embrace new coding skills, automation tools or VM provisioning tactics. They collaborate across teams, listen to the ideas and concerns of peers, and seek ways to improve processes and methods that get things done. It's not just the software, but rather the process, that moves the business forward and provides a strategic benefit.
Is DevOps really right for your org?
How to position yourself for IT careers
The right team is needed for a productive DevOps culture