Build a DevOps feedback loop with these CI/CD tools
From Azure DevOps to Jenkins, DevOps teams can choose from a number of CI/CD tools to enable and maintain a continuous loop of feedback.
To create successful and continuous feedback loops, DevOps teams require proper tooling, just as much as the right cultural mindset.
CI/CD tools track processes and metrics to define whether application changes are successful. How a team measures success, exactly, depends on its particular goals -- but the metrics these tools monitor, and the feedback streams they support, play a key role.
Editor's note: In a previous article, we broke down the steps, from a process and cultural standpoint, that a DevOps team must take to ensure continuous and effective feedback in a CI/CD pipeline. In this article, we'll dive into the tools that can help support that effort.
First, a feedback loop example
A successful DevOps feedback look depends on three core components: timely notifications, relevant information and proper team assignments.
A CI/CD pipeline revolves around the need to build and test code. This is usually in response to a requested change, bug fix or enhancement. An example involving code builds can help demonstrate:
A customer reports that a web application has an interface bug that fails to validate the contact form. In response, the developers update the code to fix the logic, which enables the form to validate. Once committed into version control, the code automatically runs against a user interface testing framework.
Unfortunately, the fix introduces a new bug that removes the proper tab order for screen-readers. A CI/CD tool notifies the developer of the failure and where it occurred. With this quick feedback, the developer updates the code and has a successful build and test.
Once the code makes it through a successful build and test, it's time to deploy the code into production and validate the fix. After a successful notification to the quality assurance (QA) team, they go to test the code change in production, only to discover the change doesn't appear to be present.
It turns out the developers overlooked a step: invalidating the cache and ensuring the newest code was available. The QA team notifies developers, who look at the success message code version numbers to further pinpoint the issue. The developers then update the process to invalidate the cache and redeploy, which enables the QA team to successfully test the change.
Popular CI/CD pipeline tools
There are many CI/CD tools that can enable a continuous DevOps feedback loop, as outlined in the example above. Below are some options for DevOps teams to consider, based on their requirements, infrastructure and more.
Azure DevOps -- previously known as Visual Studio Team Services -- is a cloud-hosted tool from Microsoft. It includes a range of development, testing and deployment services, including Azure Pipelines, Azure Repos, Azure Artifacts, Azure Test Plans and Azure Boards.
Azure DevOps offers several ways to enable feedback throughout the CI/CD pipeline, including notifications related to code reviews and pull requests. Azure Pipelines, for example, integrates with Microsoft Teams to enable collaboration, and Azure Boards, pictured below, provides team dashboarding capabilities.
For DevOps teams that use Amazon Web Services or Google, those cloud platforms also include native CI/CD tools -- including AWS CodePipeline and Google Cloud Build.
Through integrations with GitHub and BitBucket, CircleCI automatically creates a build when developers commit code. The tool, pictured below, provides feedback via alerts, which notify a team if a build fails. It also includes interactive dashboards to visualize metrics, such as average build time.
Organizations can choose between two versions of the CircleCI tool: a cloud version, which CircleCI hosts on its own infrastructure and maintains on the users' behalf, and a private version, which users host on their own infrastructure and maintain themselves.
Open source and developed by and for developers, Jenkins, pictured below, offers a high degree of customization that enables it to fit a range of development and deployment scenarios. However, that flexibility means that Jenkins typically entails a more complex setup and configuration process than other CI/CD tools.
The tool's extensive list of supported integrations enables pipeline notifications via numerous sources, including email, Slack and Hipchat. Jenkins also includes a graphical interface that teams can use to manage and track jobs visually.
Buddy is generally considered a smaller player in the CI/CD market, but it offers a visual interface for simplified configuration. As shown below, the tool includes a large set of integrated "actions," or pipeline steps, including many specific to Docker and Kubernetes, such as building a Docker image and running a Kubernetes job.
Monitoring capabilities and notifications are available to track job progress.
Pair tooling with cultural adjustments
As mentioned earlier, an effective DevOps feedback loop -- and DevOps strategy, in general -- is a combination of the right tooling and mindset. Consider the following points to configure a CI/CD tool that pairs well with your organization's culture:
Buy-in from all management levels
Ensure all management levels within the company fully buy into the CI/CD process. If the entire organizational structure doesn't understand the value, or how CI/CD will enable faster application delivery and enhancements for customers, then the process is prone to early failure.
Non-traditional messaging and feedback
Consider all forms of messaging to fully incorporate CI/CD into every aspect of the organization. Track customer comments and metrics such as incident resolution times to get a complete picture of the process.
Tight integration of all teams involved -- from developers to systems engineers to customer relationship managers -- is critical to DevOps success. When all these units work well together, no single team will hold up the successful development and deployment of code.