Recently I published a list of the 24 best CI/CD tools. While creating this list I found out some interesting information that I want to share with you. Some of this information can be seen directly in the table, and some of it I gained while collecting data for the list. So here we go!
1. There is no such thing as the best CI/CD tool
While compiling the list of CI/CD tools I quite quickly came to the conclusion that it is impossible to choose the best tool. This is because the factors that may affect the choice is too many. In addition, very often they are incompatible with each other.
As an example, I can give here the platform on which a tool can be run. Today, most tools can already be run within the cloud. Some, however, still only work on-premise. And for some people the need to run the tool on their own servers will be a disadvantage and for others not necessarily.
Another issue is that of cost. In several cases, tools are made available as open source. This makes the tool free. But also usually behind this is the need to maintain the tool. Again, some people prefer to pay for a tool just to not worry about the ongoing maintenance. And others prefer to have everything under control and not worry about it.
2. Despite this, Jenkins is still king
Jenkins, despite its age, is still the most used CI/CD tool in the world. The best confirmation of this will be the following graphic showing the number of searches in Google for the most popular CI/CD tools.
Confirmation of this popularity can also be found on many websites of competing tools. On many of them we can find comparisons of a given tool to its competitors. And here practically always we will find Jenkins as the main opponent.
I think the main reason for this popularity is the fact that the tool is very strongly supported by a crowd of volunteers. As a result, this tool has the largest number of extensions and integrations.
On the other hand, it is difficult to objectively state that Jenkins is the best tool. The tool itself has been developed for several years. As a result, Jenkins has already grown so much that it is difficult to keep it up to date. Additionally, you have to install a dozen or more plugins before you can get started, which makes maintenance even more difficult.
Also, since its creation, many new tools have been created that introduce new approaches in CI/CD tools. Jenkins, due to its age, is no longer able to adapt quickly to current market trends such as configuring pipelines behind YAML files.
3. Open source tools are still popular
Half of the tools in the list are open source. This results, on the one hand, in broad community support. On the other hand it also means that the tool is free. As a result, such tools are popular among small and medium teams, which are just starting their adventure with CI/CD.
There are a number of widely used standards in the IT industry that can be confirmed through analysis of CI/CD tools. Among these standards are:
- Git – it is the most popular version control system. Its hegemony is so strong that there are tools that support Git exclusively.
- Cloud – almost all tools in the list can be run within the cloud. This shows, on the other hand, that on-premise solutions are becoming less popular.
- Docker – all tools support running their processes within Docker containers.
- Kubernetes – most tools support the ability to install or run agents within Kubernetes clusters.
- Processes (pipeline) as code – all tools also support the definition of processes (pipeline) as code. This is nowadays the basis for proper application of the CI/CD approach in projects.
- Support for iOS/macOS – the vast majority of tools also support operating systems from Apple. This shows that programmers working in these environments are noticed by the producers of these tools
5. Good documentation is very important
While searching for the data needed for a report, I encountered many times a situation in which finding basic information was very difficult. This was due to the fact that the documentation for the tool was too sparse or inaccurate. Therefore, finding such basic information as supported version control systems was often impossible. I think this is because in many cases Git is the default and only system supported by the tools.
In such situations, a Google search was essential to finding such information.
6. And marketing is even more important
When searching and comparing many tools I tried to find the features that set them apart. Unfortunately this was often not possible. This is due to the fact that often indicated features were not really unique. Many sites mention that a given tool is fast, easy to use or supports GitHub integration. In my opinion, standing out from the competition is necessary to gain users.
A good example of software with unique features can be Codemagic. It is a tool that focuses on supporting software development and testing for mobile systems. This is very rare so this tool has found its niche.