Continuous Delivery & DevOps in Practice
As those who have read our 2-part series on DevOps (click here for part 1, and here for part 2) already know, DevOps is a fairly recent IT approach that brings together the disciplines of development and operations, aligning their goals and weaving their processes together. Basically, DevOps brings the entire development-to-operations process together in one end-to-end lifecycle.
The basic benefits of DevOps are shortening time to market (improving release frequency), increasing product quality, and reducing failure rates and risks – generally, it helps increase business agility by removing bottlenecks in the process of software development.
To quote a great explanation that perfectly sums up the business benefits of DevOps:
“DevOps increases throughput while at the same time reducing work in progress and operating expense.”
While the philosophy/cultural aspect of DevOps is undeniably important, this approach also consists of various tools, methods, and best practices that help users realize the above benefits.
The role of Continuous Delivery
First and foremost, DevOps and the practice of Continuous Delivery (CD) are closely related. In fact, if you aim to release frequently (some companies deploy as many as 10 times a day), continuous testing, integration and deployment, which may be collectively referred to as continuous delivery, is key. In this sense, we can conclude that DevOps relies on CD.
Continuous Delivery is supported by a variety of tools – Puppet, Chef, JUnit, Ansible and Jenkins are among the most commonly cited solutions. That said, these are single-point solutions that help you, for instance, automate certain manual tasks. While they are important, they aren’t silver bullet solutions to implementing DevOps. To achieve success, various other aspects of DevOps need to be covered.
Alignment of goals, collaboration, automation
Just as importantly, the implementation of DevOps necessitates (or is at least supported by) tools for the following processes and disciplines:
- QA & Testing
- Test environment
- Issue Management
These fields and processes should all be aligned, enabling them to work together according to the basic objective of DevOps. While there’s a plethora of tools out there for each of these purposes, their integration and alignment is tricky if you’re using “single-point”, standalone solutions. Since tight collaboration is the most basic objective of DevOps, using a single, completely integrated platform as opposed to a variety of standalone tools makes sense.
The various features and functionalities offered by codeBeamer ALM make it a perfect tool to manage DevOps processes. As a highly flexible, yet complete and integrated, end-to-end solution, codeBeamer lets you overview and manage your entire application lifecycle. Among many other features, codeBeamer supports DevOps through its:
- Advanced release planner
- Collaborative features: activity feeds, e-mail notifications, task management functionality
- REST API integration with other tools (including Jenkins)
- QA & Testing functionality with test case reuse
- Issue management functionality with fully customizable Kanban boards