DevOps is one of the hottest IT skills today. CBT Nuggets trainer Ben Finkel explains what it involves.
DevOps is one of the most valuable IT disciplines you can enter into today. The DevOps industry grew from $1.9 billion in 2014 to more than $2.3 billion in 2015 and shows zero signs of slowing down this year, according to Gartner. DevOps is not a buzzword, it’s not a fad, and IT professionals everywhere should consider adding DevOps to their skill set.
It’s important to understand what DevOps is and is not. DevOps is not a tool or suite of tools, although it does have tools defined for its use. It's not a job title or description, although firms will often hire directly for positions requiring familiarity with DevOps. Rather, DevOps is a process and a methodology.
Specifically, it’s a practice that brings together software developers and other IT pros to facilitate automation of application delivery and IT processes. DevOps is all about bringing together the structure and process of traditional operations, such as infrastructure deployment, with the tools and practices of traditional development operations such as source control and versioning.
If you want to get started in DevOps, you need to understand what the job functions entail and what training and education you need to bolster your skill set. For example, there are new skills in infrastructure deployment to learn, QA and testing that now are required, and even development methodologies that must take immutability in infrastructure into account.
Infrastructure deployment is no longer about plugging a server into a rack and turning it on. Data centers with hundreds or even thousands of servers simultaneously running in a giant network mean that when we deploy infrastructure it’s almost always as a virtual machine. VMs have many benefits from a DevOps perspective. They can be defined by software or even a script, and stood up with a hands-off automated process.
In this video, I discuss the role of the DevOps administrator, which is like a "super administrator."
Tools such as Chef and Puppet have emerged in recent years to allow for exactly that, but also to bring developer disciplines to this infrastructure process. IT pros can use Chef not only to script out a server configuration, but also to maintain versions of those configurations, rollback or undo configurations, and audit existing servers that are not compliant with scripted configurations. This is critical in the modern era, where spinning up servers often means configuring dozens or hundreds of servers at a time. There is no time for individuals to manually perform these tasks; DevOps provides the methodology to automate it.
DevOps is not just a movement of operations toward development practices, it’s also a movement of development toward operation practices; hence the term DevOps. Successful software developers in a DevOps environment need to adjust the way they approach deployment and change control. Increasingly, the target systems for software are not within the control of the organization. The explosive growth of public cloud services, and Platform-as-a-Service (PaaS) in particular, means that the underlying details of the infrastructure may well be opaque and dynamically scalable.
Developers need to understand how to develop software that is designed to run in the cloud with services such as Microsoft Azure or Amazon Web Services. Even for privately owned services, deployment and change control has changed. DevOps is moving infrastructure toward immutability, meaning servers and systems cannot be changed or updated with new software configurations, but rather are knocked down and then re-deployed as new systems with the desired configurations. If you’re wondering how this can happen, look into the brave new frontier of Docker containers.
All of these changes to traditional processes are rolling out fast at organizations all over the world. Maintaining relevance has always been a challenge in the world of IT, and DevOps is no different in this regard. If you wish to stay up-to-speed and desirable to IT departments, you need to understand and incorporate DevOps into your skill set. After all, you can never stop learning if you want to thrive in IT!
Ben Finkel has worked in software development for nearly two decades within the finance, healthcare, and insurance industries. A CBT Nuggets trainer since 2014, his areas of expertise include relational database architecture, .NET, and Google Cloud Platform. Finkel is a Google Developer Expert and Google Certified Trainer.