There are many options for development teams when it comes to a build and deploy system. With the adaptation of DevOps and CI/CD pipelines, a large number of products have been developed either through commercial or community means. In this article, we look at Azure DevOps vs Jenkins. Two systems that are familiar to many of us tasked with build and release management.
When comparing Azure DevOps vs Jenkins, we should take a bit of time to understand where each of these products got its start. We will look at some of their similarities as well as differences that may be the deciding factors for those groups thinking about adopting one product over another.
Azure DevOps Progression as a Viable Build and Release Platform.
When you look at how far we have come with the adaptation of proper CI/CD processes, it is comforting to see a wide array of tooling available to complete the task. From open-source to enterprise-class products; those that continually benefit from a robust user community usually stand out. Additionally, having multiple choices allows for each development team to ensure they aren’t trying to fit their square peg into a round hole!
In the not too distant past, many corporate development teams used a product called Team Foundation Server (TFS). Understandably so, as many projects were and still are created under some type of Microsoft architecture. Additionally, many teams used the Team Foundation Version Control (TFVC) system to manage and safeguard their codebase. This lent the automation capabilities of TFS to be intrinsic in most teams’ workflows.
Being that GIT became natively supported in TFS 2013, this made it even easier for teams not on a Microsoft stack to take advantage of the automation it offered. Using an agent-based build system allowed for build environments to be tailored to meet the needs of a variety of compile and packaging requirements.
What’s in a Name? Azure DevOps Targets a Mindset.
It should be noted that the ultimate progression of Team Foundation Server would follow the adaptation of Cloud computing and other integrations to provide an online offering. Visual Studio Online which ultimately became Visual Studio Team Services, used the Azure platform to provide an easy route to a centralized area that included work items, a code repository, build and release capabilities, as well as reporting.
The culmination of these features allowed for an easy transition to rebranding as Azure DevOps. While benefiting from the Azure platform for its backend, Azure DevOps has progressed to be a top-performing build and release system. One that requires just a short amount of time to be productive.
Still, when comparing usage statistics of Azure Devops vs Jenkins, one can see that Jenkins has a substantial amount more adaptation. How much more? In a recent survey on CI systems that engineers regularly use, Jenkins was chosen 55% of the time while 9% reported using Azure DevOps. This is quite a range of differences but is something to be expected when considering some of the reasons Jenkins may be chosen over Azure DevOps. (Learn more about what is Jenkins).
Similarly, TeamCity usage was reported to be around 8%. In our prior article on Jenkins vs. TeamCity, we compared a number of features showing each system’s strengths and weaknesses. Just as we deduced in that article, both Jenkins and Azure DevOps have aspects that appeal to different subsets of the development community.
Here are just a few of the more recognizable companies that use Azure DevOps in their day-to-day operations:
- Axonize — Smart IoT platform. Boasting data analytics and optimization from multiple sources.
- Cargill — Global food supplier. Utilizing Azure DevOps for security and ease of migration.
- Chevron — World energy leader. Uses Azure DevOps for seamless cloud migration and project management.
- Itron — Technology provider to utility companies. Successfully uses Azure DevOps to reduce release cycles and pull together a fragmented development landscape.
Jenkins Users Rely on High Extensibility.
One of the features DevOps engineers look for in a CI/CD system is its ability to provide a build and deploy solution for virtually any situation. This has been the case with Jenkins for quite some time, as evidenced by its usage and the amount of 3rd party plugins available. The ability of Jenkins to support multiple technologies really starts from square one, accessing your codebase.
The number of source repositories Jenkins is able to access helps those teams who may not be prepared to transition to other methods. GIT, Mercurial, and even older systems like Subversion can easily be accessed to complete the various build and release operations needed. With a DevOps mindset moving towards the concept of “Pipeline as Code,” the ability to access a variety of existing source control systems is critical to some teams.
Beyond the ability to access code in a variety of ways, Jenkins uses a culmination of specialty build agents, plugins, and interaction with APIs. This provides the full build and deployment landscape that those who have adopted Jenkins are used to interacting with. Being that the community involvement and overall usage is so high for Jenkins vs Azure DevOps, one may consider them to be in different classes. In some ways, that may be true but there are similarities in both products.
|Pricing||Free||Free Basic / Per-User|
|Founded||2011 (Initially Hudson in 2005)||2006|
|Technology||Java||.NET Framework (WCF)|
|Hosting||Self-Hosted / Jenkins X||Self-Hosted / SaaS|
|Ease of Use||Intermediate||Basic|
|Project Integration||Plugin Dependent||Native|
|Cloud Integration||Via Plugins / Jenkins X||Native|
|Language Support||C, C++, Fortran, Java, PHP, Python||.NET, Java, Node.js, PHP, Python|
Project Management Integrations Play a Factor.
It is safe to assume that any development team works best from an organized backlog of tasks. Whether that backlog is in a service like Atlassian JIRA, or something more native for those that develop on Microsoft products. In each case, many teams now require that any changes pushed to production have a clear definition as to where that code was changed and why.
For example, many companies that deal with protected personal information (PPI), have to go through extensive change management processes. During that process, one of the key items to determine is why and where a change was made in code. By doing so, anything introduced into production since the last release can be easily traced back to the original request. This is critical to maintain privacy and so companies can retain any security-related certifications.
When comparing Azure DevOps vs Jenkins as it comes to project integration, Azure DevOps definitely has a lot of benefits. Being that all the major factors involved in a software release are in the one product, there is less need for integrations that require additional configuration. Such is the case for Jenkins. In order to integrate to the degree necessary, Jenkins users can select from a number of plugins that correspond with the project management systems they use.
Community Involvement vs. Commercial Support
There is a vast amount of development technologies available. Add the need to be creative at times in build and release automation and it’s no surprise many turn to CI/CD systems that have solid involvement from the community. While Azure DevOps is commercial, there is a dedicated online area to help find support from others in the community. Furthermore, since Microsoft is backing the product, it’s likely we will see increased usage over time.
Community support for Jenkins is one of the major reasons it has been adopted by thousands of development teams. Open-source products tend to lend themselves to an increased amount of flexibility. With increased flexibility comes more ability to apply it to a larger number of programming technologies.
This has resulted in a huge number of plugins and steps designed to extend Jenkins’ abilities. With the open-source model, many of these were the result of mass community involvement. That increased buzz of activity resulted in people taking action versus waiting for a product roadmap. This is one reason the commercial offerings of Azure DevOps are less of a factor when comparing with Jenkins.
From social media giants to the companies that introduced ride-sharing and public-sourced delivery. Many of today’s most recognizable providers of these services use Jenkins in their development pipelines:
It is worth mentioning another CI/CD product that is also gaining community support. For those moving towards the pipeline as code methodology, GitHub Actions promises to extend capabilities for those already hosting on their site to include workflows. These workflows allow users to compile, package, and deploy code directly from GitHub or on-premise build servers. It is likely we will see increased usage as time goes on.
When Comparing Azure DevOps vs Jenkins, the Results Become Clear.
Like all solutions, both Azure DevOps and Jenkins have their pros and cons. While pointing out negative aspects of both products is not the goal of this article, it is safe to assume those are some of the reasons a team may choose one over the other. Alternatively, it is wiser to look at what is needed for the end result.
Does the product support the programming technology the team is using? Does it interface with your code repository? Are there support aspects that need to be considered for enterprise-level uptime related to the build and deploy system? These questions and more should all be considered when choosing a CI/CD system.
Both products can clearly fill the bill. Taking the time to test and select the right one for your current and future needs is critical in making the right decision. As with all good decisions, a proof-of-concept is the best way to find out how each system would fit into your landscape. By taking advantage of Jenkins and its open-source model, there is little concern for backing you and your team into a decision due to the financial aspect.
Conversely, the commercial aspect may be the reason why your team selects Azure DevOps over Jenkins or other similar products. Utilizing the commercial offerings may provide the right combination of support, updates, and disaster recovery to ensure a stable environment. There are some groups that prefer this hands-off approach to their CI/CD pipeline. The off-the-shelf product provides a system that depends less on continual maintenance and more on completing projects.
It comes down to what allows your team to perform in ways that not only just complete tasks but may also spur on additional innovation. With innovation and a stable path to delivery, many development teams enjoy their ability to focus on code instead of how that code is delivered. By taking a close look at Azure DevOps vs. Jenkins, you are sure to find the one that allows for the right approach for your group.