Mike_Kiev - Fotolia
CI/CD aims to make IT's traditionally long-cycle processes responsive to business and market changes that can happen in weeks or even days. While IT teams can tie together tools to build CI/CD processes, integrated suites make that endeavor a lot easier. There are many CI/CD products on the market, but two options best exemplify the benefits and issues of the space: Drone and Concourse.
CI/CD pipelines shuttle application versions through development, testing, integration and deployment processes. Every worthwhile CI/CD tool is based on the concept of repository-hosted version control, and all of them work best when repositories and version control include not just application code, but also the full range of parameters to define tests, hosting and how to run that application.
Drone and Concourse are stand-alone CI/CD tools, which engineers use to automate the build and stage processes, relying on a repository to manage versions and projects. Drone and Concourse, both open source and Go-based, serve as successors to manual builds and version management, as well as established CI/CD offerings, like Jenkins.
Respondents to CIMI Corporation surveys said the best CI/CD tool is one that fully supports existing development practices, while enabling a team to achieve its long-term CI/CD goals. In those surveys, companies that use newer CI/CD platforms, such as Concourse and Drone, revealed that the reasons for adoption differ greatly between these tools and older CI/CD options and practices, as well as between those two specific tools. Users want to go with a CI/CD tool that minimizes the disruption to development teams that must rely on it. They also want a tool that adheres to the critical application deployment and software development practices visible in their business.
Drone speaks all languages in repo-based model
Drone seems to have a slight lead over Concourse in market share. Drone is built on Docker; in fact, you don't need anything other than Docker to deploy it. You spin up repository images within a Docker container for testing, which helps to mimic the production deployment at all stages of development. Drone is language-independent, and users claim that it fits easily into development processes, as long as these center around version control and repositories. Containers maintain isolation for new software code versions until they're staged for production. With a matrix build capability, Drone enables teams to integrate new components in parallel configuration or development tracks.
Think of Drone in terms of the sequenced steps of a CI/CD pipeline. Drone provides a virtual workspace that contains the pipeline steps for the project. The steps in the pipeline are plugins hosted in Docker containers. Developers can apply conditions to each step in the pipeline, under which the step will execute. These steps depend on the specifics of a project. In a typical example, the project starts with a clone of a GitHub project on which the individual developer makes changes, before the new version moves on to testing, packaging and deployment. Steps can be as simple as clone, build and deploy within the tool.
Drone uses groups to define development teams that share a workspace and run on the same Drone agent process, which links to the Drone server that controls and stores work. Users cooperate in Drone, but it doesn't support roles, which means team members are mostly equal in their ability to control the group workspace. For some users, particularly in industries with stringent requirements, this lack of access management doesn't offer enough security and governance. However, project administrators can use secrets, essentially global or environmental parameters, to control how services work and influence when they run.
Plugins enable users to implement CI/CD pipeline steps, as well as customize Drone to tune it to various hosting environments and work with specific external platforms and tools. Drone offers a community for plugin development and an exchange that includes predefined plugins. You can author plugins, because Docker hosts them and they are language-agnostic, as long as you conform to the interfaces defined by Drone.
Users like that Drone is scalable, which makes it easy to expand and contract the resources you need to suit the number of projects, the complexity of the projects and the stage of project evolution. Scalability also makes Drone resilient. However, since there is one Drone server, it presents a single point of failure, and users should run it with high availability in mind.
On the negative side, developers struggle with Drone's documentation. Users who adopt Drone after they use another CI/CD tool, like Jenkins, can often adapt with minimal effort. Yet, organizations that are new to CI/CD management will likely labor to get familiar with the product's concepts.
Concourse offers the power of choice
On the other hand, Concourse offers thorough documentation. It provides tutorials at multiple levels, which, users said, help an organization get behind CI/CD. The documentation also makes it fairly easy to bootstrap Concourse from a tool-less CI/CD strategy to one based on another product.
Concourse is a largely open environment. Concourse abstracts nearly all application resources, which means users can adapt it to nearly any project. Users like Concourse, in particular, as a CI/CD tool for cloud deployments and for its adaptability to different deployment scenarios.
Concourse also includes pipelines, which it describes as a continuous makefile process that repeats a series of steps based on conditions. A pipeline is a set of tasks that all operate on containers, similar to Drone's approach. Steps include resources, which can be tools, repositories or the results of a pipeline -- meaning a deployment. Jobs determine the specific behavior of a pipeline, such as the steps used, the order of the steps and more.
The Concourse user defines every part of the CI/CD process explicitly, which means you can compose it in a way that's similar to how a declarative model of DevOps configuration management works. You define and resolve all of the dependencies during this modeling process, and they are stored in the repository rather than passed parametrically. Concourse pipelines are notably readable, as long as you know the language, which improves the operational control and reliability of CI/CD processes because there are no implied features or functions.
Concourse is almost as much a language for automating steps, a kind of operations scripting, as it is a specific CI/CD tool. This aptitude, combined with a fully pluggable interface set and Concourse's constrain-nothing approach, makes it flexible and capable -- more so, users said, than Drone or any other modern CI/CD tool. If they are willing to put in the extra work, users can apply Concourse to a larger segment of the CI/CD workflow than other tools, or even use it to help organize the development process.
Users are divided about whether all this power helps or hurts the critical process to get onboard and familiar with a tool. Concourse has no implicit dependencies, which means you can easily adapt it to any tools and nearly all practices to which you're committed in development, integration and deployment approaches. However, you must create these connections, which means it will take some time to set up Concourse, as well as its requisite resources, tasks and jobs -- even with the help of its superb documentation.
Drone is easier to adopt and use for organizations that have fairly basic project needs and no real preexisting commitment to CI/CD. Concourse is more powerful, more adaptable and more flexible in the long run. The best tool for a given organization depends on how users balance the initial ease of use experienced with Drone against the fact that, given its greater power, Concourse is likely to support more of their long-term project goals.
While Concourse requires more setup and more specific definition of things like resources and pipelines than Drone, the setup process is largely a one-time effort. The beauty of Concourse is that it doesn't change the users' basic practices and tools, so the operational impact of implementing it is negligible -- and in the future, users can change practices and adjust Concourse to suit. You can set up Drone and have it running in a heartbeat, but it's harder to mold it to the IT organization's practices, and application governance is also a bit more difficult.
Organizations can get bogged down in early issues, which renders them unable to visualize longer-term needs; that's never a good idea. The careful, upfront planning Concourse encourages is a big step along the right path for CI/CD.