GoCD, from ThoughtWorks in Chicago, is an application lifecycle management and development tool.
N/A
Jenkins
Score 8.4 out of 10
N/A
Jenkins is an open source automation server. Jenkins provides hundreds of plugins to support building, deploying and automating any project. As an extensible automation server, Jenkins can be used as a simple CI server or turned into a continuous delivery hub for any project.
N/A
Mirantis Kubernetes Engine
Score 8.0 out of 10
N/A
The Mirantis Kubernetes Engine (formerly Docker Enterprise, acquired by Mirantis in November 2019)aims to let users ship code faster. Mirantis Kubernetes Engine gives users one set of APIs and tools to deploy, manage, and observe secure-by-default, certified, batteries-included Kubernetes clusters on any infrastructure: public cloud, private cloud, or bare metal.
$500
per year per node
Pricing
GoCD
Jenkins
Mirantis Kubernetes Engine
Editions & Modules
No answers on this topic
No answers on this topic
Free
$0.00
per year
Basic
$500.00
per year
Offerings
Pricing Offerings
GoCD
Jenkins
Mirantis Kubernetes Engine
Free Trial
No
No
Yes
Free/Freemium Version
No
Yes
Yes
Premium Consulting/Integration Services
No
No
No
Entry-level Setup Fee
No setup fee
No setup fee
No setup fee
Additional Details
—
—
These pricing options are compatible with Linux or Windows Server and are per year, per node. The basic version requires maximum online purchase not to exceed 50 nodes. Support/professional services are not included.
I prefer using GoCD compared to Jenkins. The UI makes sense, I like the simplicity to hit the 'Play' button for a straightforward deployment of the 'Play +' if you need to override some settings when deploying whereas Jenkins, you have the whole page for each pipeline. The …
GoCD is easier to setup, but harder to customize at runtime. There's no way to trigger a pipeline with custom parameters.
Jenkins is more flexible at runtime. You can define multiple user-provided parameters so when user needs to trigger a build, there's a form for him/her to …
The big difference between Jenkins and other alternative tools is that Jenkins is open source and it’s free. Jenkins is very much about simple functionality. It’s a general CI tool that offers basic automation. It’s the most common CI tool on the market with a large community …
It is free, of course that's the best advantage. Great number of plugins. Largest active developer community among peer competitors. Very few competitors have got the pipelines features right as good as Jenkins.
When looking for alternatives for Jenkins we found CircleCI and TeamCity are good too. Jenkins was considered for reasons like it has a wide variety of plugins which integrate well with any kind of system. And its ease of use.
One of the other greater advantage is it is open …
Basically all those CI/CD tools provides the same set of tooling. SaaS solutions have a pre set pool of languages and containers you can use, but hey also are less flexible because they will not allow you to do advance configurations or setups you may need. With jenkins you have …
I would also compare to BSD Jails, LXC, and Solaris Zones, but they weren't listed. One of the first reasons we decided to use Docker over other container applications is because Docker is the default everyone recommends and is easily the most popular. We found Docker to be …
While we still use virtual machines [for our Docker servers], we prefer Docker containers for our deployments. It really allows for a simpler infrastructure footprint to manage. For example, instead of managing 30 virtual machines with one or two apps on each VM, we could …
Previously, our team used Jenkins. However, since it's a shared deployment resource we don't have admin access. We tried GoCD as it's open source and we really like. We set up our deployment pipeline to run whenever codes are merged to master, run the unit test and revert back if it doesn't pass. Once it's deployed to the staging environment, we can simply do 1-click to deploy the appropriate version to production. We use this to deploy to an on-prem server and also AWS. Some deployment pipelines use custom Powershell script for.Net application, some others use Bash script to execute the docker push and cloud formation template to build elastic beanstalk.
Jenkins is a highly customizable CI/CD tool with excellent community support. One can use Jenkins to build and deploy monolith services to microservices with ease. It can handle multiple "builds" per agent simultaneously, but the process can be resource hungry, and you need some impressive specs server for that. With Jenkins, you can automate almost any task. Also, as it is an open source, we can save a load of money by not spending on enterprise CI/CD tools.
[Mirantis Cloud Native Suite (Docker Enterprise)] is the most advanced tool till now, which works as a VMs and separates any single application from the dependencies. Also, this tool is helping me in the agile development of the processes. It is strongly recommended to almost all major organizations.
Pipeline-as-Code works really well. All our pipelines are defined in yml files, which are checked into SCM.
The ability to link multiple pipelines together is really cool. Later pipelines can declare a dependency to pick up the build artifacts of earlier ones.
Agents definition is really great. We can define multiple different kinds of environments to best suit our diverse build systems.
Automated Builds: Jenkins is configured to monitor the version control system for new pull requests. Once a pull request is created, Jenkins automatically triggers a build process. It checks out the code, compiles it, and performs any necessary build steps specified in the configuration.
Unit Testing: Jenkins runs the suite of unit tests defined for the project. These tests verify the functionality of individual components and catch any regressions or errors. If any unit tests fail, Jenkins marks the build as unsuccessful, and the developer is notified to fix the issues.
Code Analysis: Jenkins integrates with code analysis tools like SonarQube or Checkstyle. It analyzes the code for quality, adherence to coding standards, and potential bugs or vulnerabilities. The results are reported back to the developer and the product review team for further inspection.
We have a certain buy-in as we have made a lot of integrations and useful tools around jenkins, so it would cost us quite some time to change to another tool. Besides that, it is very versatile, and once you have things set up, it feels unnecessary to change tool. It is also a plus that it is open source.
Jenkins streamlines development and provides end to end automated integration and deployment. It even supports Docker and Kubernetes using which container instances can be managed effectively. It is easy to add documentation and apply role based access to files and services using Jenkins giving full control to the users. Any deviation can be easily tracked using the audit logs.
Docker's CLI has a lot of options, and they aren't all intuitive. And there are so many tools in the space (Docker Compose, Docker Swarm, etc) that have their own configuration as well. So while there is a lot to learn, most concepts transfer easily and can be learned once and applied across everything.
No, when we integrated this with GitHub, it becomes more easy and smart to manage and control our workforce. Our distributed workforce is now streamlined to a single bucket. All of our codes and production outputs are now automatically synced with all the workers. There are many cases when our in-house team makes changes in the release, our remote workers make another release with other environment variables. So it is better to get all of the work in control.
As with all open source solutions, the support can be minimal and the information that you can find online can at times be misleading. Support may be one of the only real downsides to the overall software package. The user community can be helpful and is needed as the product is not the most user-friendly thing we have used.
The community support for Docker is fantastic. There is almost always an answer for any issue I might encounter day-to-day, either on Stack Overflow, a helpful blog post, or the community Slack workspace. I've never come across a problem that I was unable to solve via some searching around in the community.
It is worth well the time to setup Jenkins in a docker container. It is also well worth to take the time to move any "Jenkins configuration" into Jenkinsfiles and not take shortcuts.
GoCD is easier to setup, but harder to customize at runtime. There's no way to trigger a pipeline with custom parameters.
Jenkins is more flexible at runtime. You can define multiple user-provided parameters so when user needs to trigger a build, there's a form for him/her to input the parameters.
Overall, Jenkins is the easiest platform for someone who has no experience to come in and use effectively. We can get a junior engineer into Jenkins, give them access, and point them in the right direction with minimal hand-holding. The competing products I have used (TravisCI/GitLab/Azure) provide other options but can obfuscate the process due to the lack of straightforward simplicity. In other areas (capability, power, customization), Jenkins keeps up with the competition and, in some areas, like customization, exceeds others.
We've used XAMPP, PHPmyAdmin and similar local environments (our app is on PHP). Because of how easy you can change the configuration of libraries on PHP and versions (which is SO painful on XAMPP or other friendly LAMP local servers) we are using Docker right now. Also, being sure that the environment is exactly the same makes things easier for developing.
Settings.xml need to be backed up periodically. It contains all the settings for your pipelines! We accidentally deleted before and we have to restore and re-create several missing pipelines
More straight forward use of API and allows filtering e.g., pull all pipelines triggered after this date
Docker has made it possible for us to deploy code faster, increasing the productivity of our development teams.
Docker has made it possible for us to decentralize our build and release system. This means that teams can deploy on their own schedule and our dev ops team can concentrate on building better tools rather than deploying for the teams
Docker has allowed us to virtualize our entire development process and made it much simpler to build out new data centers. This, in turn, is significantly increasing our ROI by providing a path forward for internationalization.