CI/CD orchestration, as a fundamental aspect of DevOps, has been around for less than ten years. Even though a decade is practically forever in the high tech world, the industry has yet to develop a single solution to encompass the entire CI/CD orchestration chain. Similarly, many organizations are still figuring out exactly how to properly apply DevOps concepts.
As a result of these (probably temporary) shortcomings, developers need to pick and choose from a variety of tools while keeping in mind the best way to apply those tools. Let’s examine the principle aspects of CI/CD orchestration and take a brief look at the technologies associated with it. At the end, we’ll discuss a serious gap that most CI/CD orchestration tools don’t cover, and the DBmaestro solution to it.
CI/CD Orchestration Processes There are many stages in CI/CD, and the only way to manage them when speed and scale are required is through CI/CD orchestration. To illustrate, following is a condensed list of common, sequential CI steps: 1. Build automation and unit testing 2. Testing in simulated production environment 3. Automated deployment Each step should be managed according to various best practices: commit early and often; rapidly build each change; fix build errors immediately; and make the entire process accessible and transparent to the whole team, even if it is geographically distributed. Oh, and always ensure version control.
So how do you handle this level of standardization across an enterprise? A lot of planning, testing, and communicating is required, at least at first, and that means a formal CI/CD orchestration process. This is a management task, but various tools exist that can make it easier. For instance, JIRA (from the Japanese “Gojira” or “Godzilla”) enables bug tracking and agile project management. It allows the management of CI/CD orchestration processes through a suite of best practices that can guide a development team through the standardization of its DevOps approach.
There’s also Slack, a set of online services and collaboration tools. Slack is great for more than just discussing, in a chat-like fashion, the progress of your projects. Slack also lets team members keep track of pull requests, code check-ins, work item updates, and build events, all listed directly on the team’s Slack channel.
CI/CD Orchestration Tools Developers enjoy (or not, due to a bewildering number of choices) a wide variety of tools for CI/CD orchestration. Fortunately, many of these tools target a specific type of user or environment, so comparisons can be clearly made. Let’s look at two very popular CI/CD orchestration tools, Docker and Vagrant.Docker is based on images, and these contain all of the project code, environments, and configurations needed for an application. Vagrant is based on virtual machines, meaning that another tool (like VirtualBox) must be used for Vagrant implementation.Without getting into too much detail, each tool has comparative strengths. For instance, setting up Vagrant is easier than doing so for Docker, while Vagrant is also the better choice when applications must use interconnected operating systems and kernels. On the other hand, Docker is superior when it comes to collaborative projects, resource use, and startup times.
So which is the right one for you? The questions and answers that come up during your CI/CD orchestration process discussions will give you a strong hint. For instance, if resource constraints are a particular concern for your organization, then Docker is your solution.