Understanding DevOps

Recently, we have been asked several questions about DevOps, from both customers and partners as well as consultants who have not yet worked in a DevOps environment. Many people in the industry have not yet had a chance to truly grasp what DevOps really is, what impacts it has on software development projects, and what to look for when finding DevOps resources. If you are a seasoned software developer or Agile professional, you know that DevOps breaks down barriers between software developers and system administrators through the implementation of Agile practices and technologies supporting continuous deployment, automated testing, continuous integration, and infrastructure as code. But for someone unfamiliar with DevOps, a short answer often doesn’t cut it.

From a high level, the technical skillset and implementation expertise of a solid DevOps engineer will entail solid development fundamentals combined with a core background in systems (and sometimes network) administration. Basically, they can’t be single threaded. screen-shot-2015-06-08-at-12-34-34-pmIf you are a developer who is scared of working in a Unix environment; or perform software installations; or setup integration between components that support your software landscape, then DevOps is probably not for you. Likewise, if you are a system administrator that is not comfortable writing scripts to automate processes and working side-by-side with developers, then it’s unlikely you’ll be comfortable in a DevOps role.

A DevOps implementation is generally aligned with Agile methodologies where deploying working software to Production is generally the highest priority. On Agile implementations, emphasis is placed on people over processes, so a DevOps engineer must be willing to work very closely with Agile development teams to ensure they have an environment necessary to support functions such as automated testing, continuous Integration and continuous Delivery. On a traditional implementation, without DevOps, the operations team is often isolated from developers, often working under a help desk model under general service level agreements where the system operations team treats developers as a customer. This is a proven model which obviously can work very well, but in a DevOps environment, development and operations are streamlined and barriers between the two groups should not exist.

In addition to the cultural shift, DevOps engineers must have the skillsets in place to work with a variety of tools which support functions such as infrastructure as code, continuous delivery and integration, automated testing, and more. Hands on experience with tools such as Chef and Puppet are key, but regardless of specific tools, DevOps engineers must have a fundamental understanding of concepts working in a distributed development environment, in addition to their core system administration skillsets.

In summary, DevOps is not a trend; in fact, the concept and practice have been around for several years, especially in the commercial world. As organizations continue to see software as a vehicle to increase their competitive advantage, we believe the practice of DevOps will expand within our industry because the nature of DevOps facilitates the rapid deployment of value-adding software to a customers Production environment.

Comments are closed.

Understanding DevOps