Throughout the years I have seen many companies using different tools to achieve same/similar things in CI/CD area. There's no denying that Jenkins is probably the most widely used solution due to the huge amount of available integrations and plugins. There are, however, some downsides such as resource consumption that can become very expensive at scale. I always remember this great article from Monzo Building a Modern Bank Backend that was mostly about migrating from Mesos to Kubernetes, but it does have some important points such as:
Previously, we ran several very beefy Jenkins hosts dedicated to the task, which were inefficient and expensive. Now, build jobs run under Kubernetes, using spare capacity in our existing infrastructure, which is basically free. - Oliver Beattie
Similar issues I have noticed in other companies, such as disks getting full due to growing workspaces or just agents getting quite slow due to insufficient host resources. Most of these issues could be labelled as user configuration problem, but then it seems that they don't exist in other systems.
My favourite tools to automate tasks:
- Google Cloud Build - powerful and cheap alternative to CircleCI/Travis. If you are running on GCP, I would definitely recommend looking into it as for most users it will be running for free :0
- Gitlab CI/CD + runners. A great model, probably designed based on drone.io server/agent model. Nevertheless, works great most of the time :)
- Drone - very lightweight solution that you can run even on your desktop or on any server. Pipelines are defined in the same repo as your code and all builds happen in containers, so no issues with dirty workspaces or tying them to individual hosts.
It would be interesting to know what tools other people are using and why, please write your answer in the comments! :)