Many Snap CI users are now looking for a replacement CI/CD tool. In the end of life announcement we recommended that Snap CI users take a look at GoCD and consider it as an alternative. We recommend this not just because ThoughtWorks creates and supports both tools, but because we think it's a great choice for Snap CI users. Snap CI had its roots in GoCD and they share common features. However, they were also created with different specific needs in mind and offer unique capabilities.
This post intends to serve as reference for anyone comparing GoCD to Snap CI (or any other hosted CI/CD tool) and fairly compare them to provide you with useful insights into why GoCD might be a good choice for you. Because we understand the needs of Snap CI users, we will also highlight areas where GoCD may not completely meet your needs and where you may need to consider your own tooling priorities. Finally, should you think that GoCD is a good choice for you, we will provide you with information about how to migrate from Snap CI to GoCD.
Comparison of GoCD and Snap CI
Here is the obligatory comparison table. Read on ahead for our opinions.
|Pricing||Free for public repositories. Starting at $30 for private repositories||Free, open source for all users|
|Platform||Hosted software as a service||Run on your own servers, on-premise or on the cloud|
|Source Control||Github integration||GoCD is universal (not platform or tool specific) and extensible through plugins|
|Pipeline||Built with pipelines at the core||Built with pipelines at the core|
|Pipeline Dependencies||Some support for fan-in and fan-out pipelines capabilities||First class support for fan-in/fan-out (to chain multiple pipelines) and value stream map.
GoCD works great when it comes to modeling and visualizing workflows spanning across multiple repositories and pipelines.
|Configuration||Configuration via UI||Configuration via source code, API and UI|
|Language Support||Ruby/JRuby, Python, Node.js/io.js, PHP, Java, Groovy/Gradle, Scala/SBT, Clojure/Leiningen, C/C++, Android||GoCD will execute tests and perform deployments written using any languages or frameworks|
|Operating System||CentOS, Ubuntu||Windows, Mac OSX and Linux (Debian/Ubuntu CentOS/RedHat)|
|Docker Support||Out of the box support for docker||Users are required to setup and configure docker on GoCD agents|
|Test Parallelization||Test parallelization up to 5 workers||Test parallelization and flexibility to scale from one machine to many machines using multiple GoCD agents|
|Branch Tracking||Automatic branch tracking and pull request integration||Plugin support|
|Support||First class professional support for all users||Community based support for all users
1. Google Group
2. Gitter Chat for code contributors
Professional support for paid GoCD users
|API||APIs to trigger pipelines and get pipeline history||Rich API to configure GoCD, trigger pipelines and get read historical data from GoCD|
What does this really mean for me? Is GoCD the tool for me?
Basically, if what you liked about Snap CI was the continuous delivery pipelines then GoCD has all that and much more. If you used the Snap CI workaround for fan-in and fan-out pipelines then GoCD can easily meet your pipeline dependency needs. It you loved seeing which stage was broken and halting the line when there was a problem then GoCD can continue to do all that for you. And, if you were waiting for Snap CI's config as code feature to go live or were hoping we'd make Snap CI free to use then GoCD can meet these needs already.
However, if what you really liked and still need in a CI/CD tool is that it is hosted, and that does not require you to manage your own machines then GoCD is likely not the best choice for you. If seamless support for GitFlow, branch tracking and PRs or out of the box support for Heroku is a priority for you then GoCD is likely not what you should choose.
If you would like our opinions on which hosted CI/CD tool may best suit your needs please get in touch with us at email@example.com. We are familiar with many of the tools available and happy to provide our unbiased opinion on what might work for you.
If you'd like to learn more about GoCD or try it out we recommend the GoCD getting started guide and the GoCD community. And if you do decide to migrate from Snap CI to GoCD then do email us at firstname.lastname@example.org and we can provide your Snap CI configuration in a GoCD compatible format and help you get started.
We hope you find this a useful, thorough and fair comparison. We are more than happy to answer any specific questions you may have. We are all the same friendly, informed Thoughtworks team you're used to from Snap CI so drop us a note and say hi!