Commercial DevOps Platform
A Commercial DevOps Platform is a 3rd-party software platform that provides tools and services to support DevOps systems and DevOps practices.
- Context:
- It can (typically) be adopted by software development teams to automate and streamline their development processes.
- It can (often) offer both on-premise and cloud-based solutions to cater to different organizational needs.
- It can (typically) include features like Source Code Management, Build Automation, and Automated Testing.
- It can (often) provide Continuous Integration and Continuous Delivery services to facilitate rapid and reliable software release cycles.
- It can (typically) integrate with various version control systems and other DevOps Tools.
- It can (often) offer scalability and customization options to suit large enterprises and small development teams alike.
- It can range from being highly specialized in one area of Software Development to offering a broad suite of DevOps tools.
- ...
- Example(s):
- GitLab - A web-based DevOps platform that offers both on-premise and cloud-based solutions.
- Jenkins - An open-source automation server that enables developers to build, test, and deploy their applications.
- Travis CI - A hosted continuous integration service that integrates with GitHub repositories.
- CircleCI - A cloud-based continuous integration and continuous delivery platform.
- Bamboo - An on-premises continuous integration and continuous delivery server from Atlassian.
- TeamCity - A build management and continuous integration server from JetBrains.
- Azure DevOps - A suite of DevOps tools provided by Microsoft for planning, building, and deploying applications.
- AWS CodePipeline - A continuous integration and continuous delivery service from Amazon Web Services.
- Google Cloud Build - A continuous integration and continuous delivery platform from Google Cloud.
- Commercial LLMOps Platform,...
- ...
- Counter-Example(s):
- In-House Development Tools, where software development tools and processes are developed internally and not provided by a third-party vendor.
- See: Software Development Lifecycle, Continuous Deployment, DevOps, Cloud Computing.
References
2023
- chat
- There are several other DevOps platform options available for teams to streamline their software development process. Some popular alternatives include:
- GitLab - A web-based DevOps platform that offers both on-premise and cloud-based solutions.
- Jenkins - An open-source automation server that enables developers to build, test, and deploy their applications.
- Travis CI - A hosted continuous integration service that integrates with GitHub repositories.
- CircleCI - A cloud-based continuous integration and continuous delivery platform.
- Bamboo - An on-premises continuous integration and continuous delivery server from Atlassian.
- TeamCity - A build management and continuous integration server from JetBrains.
- Azure DevOps - A suite of DevOps tools provided by Microsoft for planning, building, and deploying applications.
- AWS CodePipeline - A continuous integration and continuous delivery service from Amazon Web Services.
- Google Cloud Build - A continuous integration and continuous delivery platform from Google Cloud.
- There are several other DevOps platform options available for teams to streamline their software development process. Some popular alternatives include:
2021
- https://www.upgrad.com/blog/github-vs-gitlab-difference-between-github-and-gitlab/
- QUOTE: ... GitLab and GitHub are both web-based repositories that help with code management and sharing local file changes with a remote repository. As the files on the internet keep changing from time to time, all the data is stored in a repository to be accessed later. Git development to track the changes in a source code requires both GitHub and GitLab. ...
A software development life cycle (SDLC) consists of making amends to the existing source code, and sometimes, even creating new source code. Most developers were simultaneously on different parts of code, and so, sometimes, the modifications in the code might conflict with each other. This is likely to introduce unwanted bugs in the software. While these might not affect software development in the beginning, they could lead to severe errors in the future, making it difficult to zero down the error zone.
- QUOTE: ... GitLab and GitHub are both web-based repositories that help with code management and sharing local file changes with a remote repository. As the files on the internet keep changing from time to time, all the data is stored in a repository to be accessed later. Git development to track the changes in a source code requires both GitHub and GitLab. ...
Feature | GitHub | GitLab |
Fees | GitHub projects are free and open to all with publicly shared codes. | GitLab is a repository that only lets its team of web developers collaborate on codes. |
Location | GitHub doesn’t allow locating a repository inside an organization in the free plan. | GitLab allows its users to locate a repository inside an organization while using the free plan. |
Issue Tracker | The issue tracker allows pulling requests so that the raised issues are automatically closed upon being merged to another repose. | Here, the issue tracker allows its users to associate issues with PRs to be closed automatically. |
Documentation | GitHub documents are organized in a series of various guides with each guide covers a particular platform.
It includes articles and tutorials. These guides are not fully searchable. Every article usually has a 5-10 minute read. Also, GitHub provides a searchable help page as well as FAQs. |
GitLab documents are similar to documentation for a language with a search bar, listing all the documents required for the installer.
The foremost thing you observe is a search bar on their docs page. They list out docs for GitLab, the GitLab installer, deployment tools, and integration. Also, the page includes a “most popular topics” section. |
Integration | There is no built-in continuous integration in GitHub. It is provided by third-party vendors. | GitLab offers 100% built-in integration. They favor their own integration tools with continuous developments. |
Authentication | Authenticating who can and cannot use the repository can be set according to their role. | Here, a developer has the authority to decide whether someone should access a repository. |
Community | GitHub boasts of a large community of developers. It has highly active millions of users to discuss problems with. | GitLab hosts community events connecting contributors with open-source systems. |
Platform | It has a development platform used to store projects. It provides features such as task management, bug tracking, etc. | GitLab provides web-based DevOps internal management of repositories. |
Inner-sourcing | Developers are allowed to promote inner sourcing of internal repositories. | GitLab doesn’t allow inner sourcing. |
Confidential Issues | This module creates confidential issues that are visible only to project members. | GitLab lacks this the confidential issue feature. |
Workflow | A prominent difference between Git and GitLab is that GitHub proposes a simple workflow that includes a main brand and feature branches.
Pull requests (PRs) support GitHub workflow. They are identical to GitLab MRs. Nothing avoids using GitLab flow on GitHub and vice versa. |
GitLab offers more workflow models than GitHub. These workflows have enhanced feature, production, development, environment, and release branches.
GitLab Flow is the standard. Moreover, merge requests (MRs) support GitLab workflow. MRs are a framework for code review before integration.
|
Backup | The backup is another major difference between Git and GitLab. GitHub Enterprise Server Backup Utilities is a backup system deployed on a separate host. It captures backup snapshots of the GitHub Enterprise Server instance regularly across a safe SSH network connection.
It also uses a snapshot to restore a current GitHub Enterprise Server instance to a preceding state from the backup host. |
The Git lab backup is a command-line utility that operates on the same Linux server as GitLab. It can be configured to operate at regular intervals similar to a cron job.
Alternative GitLab backup methods including file system snapshot and GitLab Geo (Ultimate and Premium) are also available.
|
Maintenance Mode | It is easy to compare Git vs GitLab based on the maintenance mode. GitHub supports a maintenance mode that transfers the GitHub Enterprise Server instance offline, so users can’t access it. It uses the Management Console. | The Git lab has a maintenance mode that blocks all external actions which modify its internal state. 3 ways to activate maintenance mode are API, web UI, and Rails console.
|
Configuration | All configuration processes are performed using the GitHub admin web interface (i.e.“Management Console”) and by clicking “Save changes”. | All configuration processes are performed by editing the GitLab configuration file (gitlab.rb) and executing reconfigure.
|
Architecture and Scalability | Since GHES is a monolith, it can’t be divided into several components. It can only be scaled by moving to a larger server (vertical scaling requiring downtime). | Gitlab is a modular application composed of various components like Nginx, GitLab Workhorse Redis, PostgreSQL, Gitaly, etc.
In the basic configuration, all components can exist in a single node. But when scaling is required, they can be distributed to separate nodes. Single or multiple nodes can be allocated to the same component (for example two or more Gitaly storage servers).
|
Installation | GitHub offers its virtual machine image.
Through GCP, it offers a set of gcloud compute commands that fulfil all required resources and also installs GitHub.
The entire installation process completes in 2.5 hours. |
GitLab installs on most of the standard Linux distributions. GitLab supports multiple installation methods. The most famous installation methods are Helm charts for installation on K8S, “Omnibus” installation on Linux, and Docker installation.
The installation process of GitLab through the Docker installation, Gitlab installation, and server provisioning takes nearly 2.5 hours. . |
Disaster Recovery | Both GitHub GitLab support disaster recovery but uniquely. GHES supports a configuration wherein a fully redundant secondary GitHub Enterprise Server appliance is synchronized with the primary appliance by replicating all major datastores.
No extra costs are involved.
GitHub names this configuration HA. But because the failover is manual, it’s stated here as a DR. |
GitLab Geo (Premium) permits duplication of a GitLab instance to other geographical sites. The duplication is allowed as a read-only fully operational instance which can be promoted during a disaster.
|
Groups | How groups are formed marks the GitHub vs GitLab difference. The repos can be assembled using organizations on GitHub.
But, organizations can’t offer access to projects. Being an organization’s member is not sufficient to push and pull from that organization’s repos. There is no feature matching GitLab’s subgroups because there are no “sub-organizations”. |
GitLab allows developers to use groups to manage one or more associated projects simultaneously. A user can use groups to manage permissions for their projects. If somebody gains access to the group, they also gain access to all the projects of that group. GitLab supports a maximum of 20 levels of subgroups. They are useful for large applications or organizations.
|
CI/CD – Setup | Another major GitHub vs Gitlab distinction is in terms of CI/CD setup. If you want to enable GitHub Actions on GHES, you should have access to external blob storage. For that, only Azure Blob storage, S3 or AWS S3-compatible MinIO Gateway for NAS are allowed. GCP storage doesn’t work.
It is mandatory to open an account on AWS, create an S3 bucket, and deploy it.
Runner setup is somewhat easier than in GitLab. The reason is every setup command is offered on an organization/instance/project’s page |
When using GitLab, a user has to create an access token, provide a runner server, install runner software on it and finally register it vis-a-vis GitLab through the token. CI/CD – Setup in GitLab uses various executors like Docker, shell, and Kubernetes.
GitLab’s web UI supports runner installation on K8S.
|
Integrations with Third Parties | Both GitHub GitLab differ based on their integrations with third-party tools. GitHub features a Marketplace of third-party tools which are categorized into actions and apps.
Apps on GitHub enable workflow and automation improvement. Apps are installed at the organization level. Presently, 493 apps exist in the GitHub marketplace.
Tools providers offer GitHub Marketplace tools support.
|
GitLab supports nearly 30 integrations with third-party tools.
Certain integrations (like Jira and Elasticsearch) are deployed on the instance level, whereas certain integrations like Jenkins are deployed on the project level. All GitLab integrations are subsets of the GitLab installation. GitLab supports and documents them.
|
Code Navigation | When developers program language-aware code, they can directly jump to references and definitions for specific identifiers. | When comparing Git vs GitLab in terms of code navigation, it is allowed to integrate with SourceGraph on GitLab.com.
|
Code Search | The latest “Code Search” features cover advanced syntax for searching content in code and directly linking to the Code Navigation features. | GitLab Advanced Search allows search within code and issues too.
|