CI/CD Orchestration
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:
- Build automation and unit testing
- Testing in simulated production environment
- 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.
What’s Missing in Most CI/CD Orchestration Solutions
When shopping around for CI/CD orchestration tools, you will find that they neglect one essential aspect of DevOps – the database. That’s because databases and applications are very different in structure and therefore in the way they are handled. For databases, this tends to mean manual administration.
So how can you use CI/CD orchestration tools and processes, and also include the database? DBmaestro has the answer. DBmaestro’s CI/CD orchestration tools combine with other technologies to orchestrate database-related functions that are otherwise handled in ways that are less than optimal.
Take our release automation module, for example. It works together with standard SQL coding and doesn’t require any intermediate language for use. The module ensures that the scripts introduced and tested in the integration environment are the actual scripts used in higher environments.
Or check out DBmaestro’s visual database pipeline builder. It enables packaging, verification, deployment, and promotion of database releases, and employs pre-check functionality that executes the upcoming release in a provisional environment.
Then there’s database version control, which can be applied (for example) as a means for continuous integration of the database through the use of Jenkins.
These are just three of the tools that can be used to ensure the stability of your database when applying CI/CD orchestration, and together, they allow you to minimize time to market and reduce application downtime caused by database-related errors.
Want to implement CI/CD orchestration as part of a large-scale DevOps effort? Don’t forget the database! To find out more, contact DBmaestro today!