What is DevOps?

Spire Digital
Mar 14, 2016

DevOps is the practice of operations and development engineers interacting together throughout the entire service life cycle, from design through development to production support.

Some of the tasks associated with DevOps include:

· Systems Administration, Installation, Configuration and Software Management (Linux and Windows)
· VPC/VPS (Cloud-based) Service Instance Provisioning and Management
· DNS management
· Continuous Integration Setup/Management
· SSL/SSH Key and Certificate Management
· Source Control (Git+Bitbucket) Management
· Security and Testing

Traditionally, we would expect our clients to provide technology environments and engineering expertise (whether in-house or through a hosting services provider) to bring to the projects that we undertake. More and more, they are relying upon us to provide this operational engineering expertise.  It’s become increasingly clear that it’s something that can provide significant additional value to our clients. In addition, by providing operational engineering services to clients, we provide a more full-service product development offering. And, like our other disciplines, operational engineering can be offered as a decoupled service.

From The Agile Admin:

“DevOps doesn’t differentiate between different sysadmin sub-disciplines – “Ops” is a blanket term for systems engineers, system administrators, operations staff, release engineers, DBAs, network engineers, security professionals, and various other subdisciplines and job titles. “Dev” is used as shorthand for developers in particular, but really in practice it is even wider and means “all the people involved in developing the product,” which can include Product, QA, and other kinds of disciplines.”

Like all disciplines at Spire Digital, DevOps leverages Agile and Lean approaches. The traditional boundary between the coders and the sysadmins, wherein the developers code in a silo then hurl the finished application over the fence for the sysadmins to “install” has been broken down.  The iterative and continuous development and deployment of application code has necessitated new and agile ways of accomplishing this critical component of software development.

Automation is key – through the use of tools such as Chef, Puppet, SaltStack, Jenkins, and Ansible+Semaphore, operational efficiencies, reliability, and consistency can be realized.  What used to take days to deploy, can now be deployed in less than an hour.  For a great comparison of these automation tools, go here.

People who are good candidates for DevOps engineering are usually folks with development/scripting background who become interested in network operations and code deployment, or SysAdmins who realize the power and utility of scripting and coding.

Key to a successful Dev Ops team include:

· Ability to use a wide variety of open source technologies and tools
· Ability to code and script
· Experience with systems and IT operations
· Comfort with frequent, incremental code testing and deployment
· Strong grasp of automation tools
· Data management skills
· A strong focus on business outcomes
· Comfort with collaboration, open communication and reaching across functional borders