There are essentially four different DevOps platforms on the market, which can be used to their full potential only when you purchase an enterprise license for the full version.
These are GitLab—whose developers introduced, coined, and, to a certain extent, invented the term DevOps platform—GitHub and Azure DevOps from Microsoft, and the toolstack from Atlassian. All these platforms aim to be full DevOps platforms, but none of them really supports the whole toolchain in the way you would expect in an enterprise. It’s just a huge task with many pitfalls.
We want to emphasize one thing first: You will reach your goal with any of the four platforms. All platforms are under active development and are constantly changing.
The brief overview that follows should not be used as a decision-making criterion; once again, we advise you to evaluation the options on the basis of your specific requirements.
GitLab is primarily known for two things: source code management and continuous integration, to an extent. These are also the functions with which GitLab was first developed, although the continuous integration component was initially a separate project. In the early days of GitLab, both components were merged, which resulted in the DevOps platform it is today.
GitLab now offers solutions for all stages of the DevOps lifecycle. This starts with project management, continues with source code management and continuous integration and package management, and extends to continuous delivery, security, and monitoring solutions. Users are not forced to use all functions, as each one can easily be replaced by an alternative.
Not all solutions from the stages are perfect, but the basics are covered almost everywhere. Special strengths lie in source code management, continuous integration, continuous delivery, and security.
The nice thing about GitLab is that the company is rather independent. The product is open core, and many functions are available in the free version, which is available under an open-source license. A new release with a number of functions is published every month. The platform can be easily hosted in your own infrastructure. Overall, GitLab works very transparently. Individual function blocks, divided into the individual DevOps stages, are transparently available on the maturity page, including the features planned for the future (https://about.gitlab.com/direction/maturity/).
Although GitHub is a few years older than GitLab, it was only much later that it adopted the holistic platform approach. Similar to GitLab, GitHub also began with pure source code management and simple project management features. The components for continuous integration and continuous delivery (GitHub Actions) were added much later and are still relatively new.
GitHub is best known as a platform for hosting open-source projects, which are available on GitHub.com. Unlike GitLab, however, GitHub itself is not open source. GitHub was acquired by Microsoft at the end of 2018 and has since been operated as a more or less independent platform.
For a long time, GitHub users had to take care of their own continuous integration infrastructure yourself, which was docked to GitHub. Continuous integration servers such as Travis-CI or Jenkins were often found there. It wasn’t until 2018 that GitHub Actions was introduced, which integrates CI/CD functions directly into GitHub.
GitHub relies on a large marketplace. This is both a curse and a blessing, just as it was with Jenkins. Missing functions can be added, but new external dependencies are created, and a lot of time has to be spent on configuration, as the marketplace functions do not come directly from the manufacturer. This is actually exactly the point that should be avoided by using a DevOps platform.
An enterprise subscription is also required for GitHub in order to benefit from all functions. In addition to GitHub.com, GitHub also offers enterprise solutions for self-hosting, which, however, have a different range of functions than the website does. The features of website usually appear much later on the GitHub Enterprise server.
The functional scope of GitLab and GitHub is very similar. It’s a bit like cars: They all have four wheels and get you to your destination. The question is rather, How quickly and how comfortably is this possible, and who can you take with you on the journey?
GitHub sees itself primarily as a developer platform. There is actually no mention of DevOps in the self-description. This is also noticeable in the range of functions: Typical operational information cannot be found in GitHub.
Learn more about the differences between GitHub and GitLab here.
In addition to GitHub, Microsoft also has Azure DevOps. You may still know it under the name Visual Studio Team Services, which it was known as until 2018.
Azure DevOps is an offering from and for Microsoft’s cloud offering. Accordingly, the toolchain can be easily integrated into the Microsoft Azure world.
In contrast to GitHub or GitLab, Azure DevOps is relevant only in the corporate environment. It basically offers a similar scope to GitHub and GitLab but with a stronger focus on Microsoft technologies.
It will be exciting to see what the future of Azure DevOps will look like, as two products from Microsoft are now essentially targeting the same service. There is some overlap between the two platforms; for example, GitHub Actions evolved from Azure Pipelines, and both have the same technological basis. Accordingly, there are always rumors that Azure DevOps will be discontinued in favor of GitHub. But as long as nothing has been communicated directly by Microsoft, this is just speculation for now.
Atlassian is listed as a leader in Gartner’s Magic Quadrant, but in the author’s opinion, you have to be a little cautious with this assessment. The classification is justified, because Atlassian’s tools are very important and are market leaders in their fields. However, unlike GitLab, GitHub, and Azure DevOps, the toolstack offered by Atlassian is a collection of tools; you have to install and manage all the tools separately. However, the amount of configuration you need to do to allow the tools to interact is negligible.
Particularly important tools in the Atlassian toolstack are the project management tool Jira and the wiki tool Confluence, which are widely used and are constantly being developed further. The source code management tool Bitbucket is relatively mature, and no major changes are expected. Most companies are currently migrating away from Bitbucket.
Other tools, such as Opsgenie for incident management in the event of failures or Bamboo and Bitbucket Pipelines for CI/CD pipelines, also tend to play a subordinate role in practice. They all have to be installed and managed separately, so you can’t really speak of a comprehensive suite.
However, Atlassian also sees the advantages of this approach and has recently launched its own platform, Open DevOps (https://atlassian.com/solutions/devops/). This package is mainly controlled by Jira but offers integrations for other tools: GitHub, GitLab, or Bitbucket for source code management, Jenkins, JFrog, Bamboo, and others for CI/CD, as well as Opsgenie and Confluence.
In addition to GitLab, GitHub, Azure DevOps, and the Atlassian toolstack, there are also some other similar solutions to consider. These include the major cloud providers AWS and GCP, which each have their own tools to offer. However, great caution is required here, as these are little-used isolated solutions that are strongly geared toward their respective clouds. They are very, very closely tied to their respective providers. AWS, for example, had a service called CodeCommit for hosting Git repositories, which AWS announced would be deprecated in August 2024.
JFrog, the company behind Artifactory, also has its own platform (https://jfrog.com/platform/). It is a combination of several tools from JFrog. This platform is not widely used.
Nowadays, there is hardly any way around GitHub or GitLab. Both are good platforms for developing and rolling out products and projects. However, we are deliberately not saying “products for operating applications” here, because there is still significant potential for improvement.
In the author’s daily conversations with people in IT, the direction is clear: Many want to migrate away from Bitbucket and Jenkins and toward GitLab or GitHub in order to modernize and simplify their development infrastructure. Although GitHub and GitLab are not yet fully usable everywhere for the entire DevOps lifecycle, the path is pointing in exactly this direction.
Editor’s note: This post has been adapted from a section of the book DevOps: Frameworks, Techniques, and Tools by Sujeevan Vijayakumaran.