What DevOps Really Means and How to Implement It

Buzz words have been a staple in software development for decades. Whether it is the latest programming language, design pattern or methodology, these acronyms or phrases seem to get lots of attention.

Over the past several years, a common buzz word has been DevOps, but what does that really mean? Google the phrase “DevOps” and you will find many differing definitions. At its core, DevOps is a cultural philosophy to bring the developers of software closer to those that implement and manage that software. Along with that philosophy, here are a few specific actions that will make the transition to DevOps flow more smoothly.

First, encourage frequent communication. Traditionally, each phase of the Software Development Life Cycle (SDLC) operates independently. By opening communication channels between the development, QA and operations teams you build trust and reduce tension when issues arise.

Second, focus more on results than the process itself. While it may seem better to enforce the new process, the results are ultimately what matter.

Finally, provide continual and constructive feedback. Doing this closes the development cycle and builds on the previous actions.

Along with the cultural changes, there are always new processes. Here is the basic DevOps process (although there are a number of variations):

Build – As code is committed to source control, the entire application is built to ensure there are no build defects.

Test – Whether automated or manual, verifying the application functions as intended is essential to DevOps.

Release – This involves change management and often a change approval board. When DevOps is fully implemented, release approvals should be straightforward since all parties have been included in communication from the beginning.

Configure – Being able to apply different configurations through various environments simplifies deployment.

Monitor – Operations captures performance metrics as well as any end-user issues and provides those back to development for remediation.

Finally, DevOps would not be successful without the right tools. Here is a list of popular DevOps tools:

Git – Source code repository and control

Jenkins – Continuous integration, testing and automation

Bamboo – Continuous integration and deployment

Puppet – Configuration management

Chef – Configuration management

Docker – Application containers

Kubernetes – Container orchestration and automation

Splunk – Application log analysis and monitoring

Selenium – Automated testing for web applications

Slack – Team collaboration and communication

While the decision to implement DevOps can be difficult, it has proven time and time again to be the right direction for any software development organization.