If you need to come up to speed quickly on DevOps, here are the basics.
As companies push for digital innovation, IT departments are embracing DevOps, an approach to developing and deploying software that promotes communication and collaboration among application developers and IT operations during software development.
DevOps aims to improve software delivery and deploy new applications faster. IDC predicts that by 2018, 45 percent of CIOs will be focused on implementing software platforms for digital business, and they will turn to DevOps for “rapid development, cost reduction and enterprise agility.”
Doing so requires a cultural evolution within IT. In the past, development and deployment have been sequential activities: developers would write new code, then operations would manage the processes for building, testing, installing and running it. But modern IT operations rely increasingly on automation--that is, software--for these processes. In other words, operations has become embedded in the development process, creating roles for operations professionals on development teams.
To navigate this shift in how software is produced and managed, CIOs are beginning to look for IT leaders with DevOps experience to run applications development, operations and infrastructure. Unlike other IT disciplines, like cybersecurity, there are no widely-accepted certifications for DevOps leaders or practitioners. (Whether or not there should be is hotly-debated, notes Andi Mann, chief technology advocate at Splunk, which provides software for real-time operational intelligence, including analytics tools for logging and monitoring application performance.)
If you are recruiting a candidate to introduce DevOps to your IT department, or to run an organization that has already embraced it, understanding the concepts below will help you define the skills and competencies you need for the position.
An approach to software development that promotes using small teams to build software in increments, Agile enables IT to speed up software delivery, as well as to easily shift development priorities if business needs change. Using one of the numerous Agile software methodologies, each increment can be completed and functioning within a short period--typically not more than a month.
DevOps is sometimes referred to as “Agile for operations” because it applies many Agile principles (such as iterative development and collaboration across silos) to IT operations.
Container (also, Containerization)
A tool for packaging an application with its operating system so that it is able to run anywhere automatically, saving work and enabling faster deployment. Although container technology is not new, it is gaining attention among DevOps practitioners because it eliminates the need to reconfigure applications for different operating systems or to accommodate increased demand for their use.
Continuous Integration, Delivery and Deployment
DevOps practices support the regular release of new software. Continuous integration, continuous delivery and continuous deployment automate the operational steps of development.
Usually a team of developers are working on different parts of an application. Continuous integration is the practice of frequently incorporating their updates into the source code--typically every time someone finishes a section of code. The updates can then be verified in the automated “build” and “test” stages of development, a process known as continuous delivery.
Because continuous integration and continuous delivery are seamless, the term continuous integration may be used to cover both.
Continuous deployment further automates the release of new software after it passes through the build and test stages. Continuous deployment requires continuous delivery. But teams can, and often do, practice continuous delivery without automating deployment.
While DevOps is focused broadly on how people work, rather than specific processes they use, experience with continuous delivery indicates familiarity with a DevOps work environment.
Dozens of tools have emerged to support the DevOps development process. XebiaLabs, which makes continuous delivery tools, assembled a Periodic Table of more than 100 DevOps tools in 15 categories. Two characteristics distinguish many of them from old-style tools:
- They’re designed to facilitate communication and collaboration. Examples include Github and Bitbucket for source code management, JIRA for bug tracking, HipChat and Slack for team communication.
- They automate steps, particularly on the operations side, that used to require human intervention. Examples include Chef and Puppet for configuration management, Docker and Kubernetes for containerization.
Of course, DevOps experience constitutes only part of the skillset that candidates will need to direct one of your critical IT teams. Whether DevOps is new to your IT department, or it has been widely-adopted, an IT recruiting specialist can help you define the qualifications that are essential to the position you are filling.