Azure DevOps Server (formerly Team Foundation Server, or TFS) is the on-premise version of Azure DevOps. To license Azure DevOps Server an Azure DevOps license and a Windows operating system license (e.g. Windows Server) for each machine running Azure DevOps Server.
N/A
GoCD
Score 8.0 out of 10
N/A
GoCD, from ThoughtWorks in Chicago, is an application lifecycle management and development tool.
Azure DevOps is good to use if you are all-in on the Microsoft Azure stack. It's fully integrated across Azure so it is a point-and-click for most of what you will need to achieve. If you are new to Azure make sure you get some outside experience to help you otherwise it is very easy to overcomplicate things and go down the wrong track, or for you to manually create things that come out of the box.
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.
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.
Because we are a Microsoft Gold Partner we utilize most of their software and we have so much invested in Team Foundation Server now it would take a catastrophic amount of time and resources to switch to a different product.
For standard users the interface is friendly. but if you are a manager some tools are a little confusing to use, like the query system that you always need to create from scratch. Templates should be more helpful for queries and for standard procedures that you need to duplicate PBIs over time. The search history of Work Items is a little painful to use.
I have not had to use the support for Azure DevOps Server. There have never been any issues where I was not able to figure it out or quickly resolve. Our Scrum Master has used support before though, and the service has always been prompt and clear with a customer-focus
In my opinion, DevOps covers the development process end to end way better than Jira or GitHub. Both competitors are nice in their specific fields but DevOps provides a more comprehensive package in my opinion. It is still crazy to see that the whole suite can be used for free. The productivity increase we realized with DevOps is worth real money!
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.
It has streamlined the pipeline and project management for our agile effort.
It has helped our agile team get organized since that is a new methodology being leveraged within the Enterprise.
The calendar has improved visibility into different OOOs across the project team since we all come from different departments across the larger organization.
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