Following the acquisition of GitHub, Microsoft now provides two distinct DevOps solutions in Azure DevOps and GitHub Enterprise. Both platforms have mature and popular features, as well as free and paid models.
Let’s kick things off with the elder platform. Azure DevOps is the culmination of years of investments from Microsoft into managing all aspects of building, testing and deploying code; As well as tracking all of the work items associated with that process. For longtime users of Team Foundation Server (also known as TFS), the jump was a no brainier. It offered a familiar experience, and is built on a very solid foundation.
GitHub has been a staple for code management for years, and Microsoft has poured a substantial amount of effort into the platform to make it not just competitive, but in many ways a leader. However regardless of how far it has come, it is still often associated with open-source projects and hobbyists. That does not mean it can’t give Azure DevOps a run for its money.
Let’s have a closer look at what each platform offers and hopefully arrive at which might be the better solution for your needs.
Azure DevOps
Azure Devops presents users with a very mature project and code management experience.
The overview section provides users with a very robust Dashboard and Analytics experience. Virtually every single piece of data in the platform can be visualized here to help you track progress, team performance, pipeline statuses, you name it!
The boards section offers access to the team’s backlog of work items, kanban board and sprints. Here you can manage requirements and visually track work as it flows between stages. From requirements gathering to design, to implementation, testing and deployment. This section gives you and your team the tools necessary to keep work on track and projects moving forward.
The repos section is where the code lives and as you can imagine my favorite section. This is what you often hear being referred to as “version control”. Version control maintains a history of your code so that you can easily review, merge and roll back to any version of your application. Most importantly it protects your intellectual property and hard work. Despite falling our of favor, Microsoft has maintained TFVC support although Git is the preferred model.
Now pipelines is where a lot of the magic happens. Here developers can create and manage code building and deployment pipelines. Azure DevOps pipelines support a wide array of environments which to target. It doesn’t matter if you are building and deploying for windows, linux, docker, azure, aws or app stores. Built in tools and a robust library of third party extensions are present to support your needs. There is also a very robust review and approvals framework built around the pipelines to satisfy security and regulatory requirements. A great example is requiring permission to deploy to production while freely allowing automated deployments to development and test environments.
Last but not least is the artifacts section. This is where you and your team can create and share packages. There is support for Maven, NuGet, npm and more. Modern applications often rely on internal and/or externally built libraries. This feature allows you to host and share packages in an environment you control while keeping everything secure and integrated with your pipelines.
Pros
- Mature and comprehensive feature offering
- Extensive Marketplace providing endless integration possibilities
- Support for TFVC and Git code models
- Support for Basic, Agile, Scrum and Custom work item tracking models
- Deep integrations with Microsoft 365 and Azure.
Cons
- Confusing pricing model
- Confusing permissions model
GitHub Enterprise
GitHub Enterprise offers many of the same features found in Azure DevOps. This platform is built around collaboration and accessibility, and by nature has quickly evolved into a pioneer in the space. With that said, it still remains deeply rooted in code management. The overview section provides a glance into your code repositories and statistics surrounding those.
The repositories section is what you’d expect. From here you can do pretty much anything code related. Code branching, opening feature requests or issues as they’re called in the platform. Pull Requests which are very convenient way to perform code reviews are also managed from here.
For those wondering, continuous integration and deployment is managed by way of GitHub Actions. Most of the necessary workloads are already supported with new ones being added with every release. Making building, testing and deploying code an extremely easy affair.
Packages is a very useful feature which allows you to publish and store your packages alongside your code. There is support for the most popular registries like Docker, Maven, NuGet, npm and more.
The next few sections, people and teams gives you the ability to bring people together around projects and repositories. This effectively ensures everyone is in sync as they tackle any given project being undertaken. Managing what people and teams can see and do is a breeze. It allows for resources from outside your organization to be invited to collaborate in various capacities. This is one of the most underrated features GitHub offers.
The last section we are going to be talking about is the projects section. This is where work is planned, organized and tracked. Various templates are supported. Useful kanban boards let you easily track progress as while giving you full visibility of all the work completed, in progress or pending.
Now most of the features discussed here are present in the “Free” and “Teams” versions of GitHub. Enterprise however gives users many extras not found in the aforementioned versions. Things like single-sign on support to allow for seamless integrations between other platforms in your organization and GitHub. Advanced auditing features for keeping auditors and happy. Code Scanning and Dependency vulnerability review.
Pros
- Rapidly evolving feature set
- Access to GitHub Codespaces
- Simple permissions model
- Simple pricing model
- Less mature but still very capable continuous integration and deployment capabilities
Cons
- Basic work item tracking support
- No support for legacy code management systems like TFVC
- Less expansive third party extensions marketplace
Alternatives
There are many alternatives out there when it comes to code management and work item tracking. Some are very similar to both Azure DevOps and GitHub and others specialize in specific functionality within these platforms. In any case here is a list, in no particular order of noteworthy alternatives.
Price
At a glance it appears that Azure DevOps will be the most affordable of the two options being discussed here. However things can start to get expensive as individual services are added and used. But if you keep things simple you can expect your first 5 users to be free, with subsequent accounts costing $6/month.
GitHub offers a simpler price model starting from completely free to $4/month per user for Teams or $24/month per user for Enterprise. Its amazing that such powerful tools are available at such an affordable price.
Conclusion
Both these platforms provide individuals and companies with a very robust set of tools to plan, build, secure and delivery code. Which one you end up choosing for your project will depend on your workload and level of integration required with various services like Microsoft 365 and Azure. But ultimately you can’t go wrong with either one. What is your experience with? Have you worked on both? Has one from your perspective provided a clear advantage over the other? Let us know in the comments below.