GitLab vs.GitHub - a comparison video created by an independent external source (LinuxHint.com).
GitHub is a collaborative code repository to host and review code, manage projects and build software. It offers all of the distributed version control and source code management (SCM) functionality of Git as well as adding its own features. It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project.
The GitHub Actions feature enables code snippets to be run in a container upon a wide variety of GitHub API calls. This has the promise of enabling users to orchestrate their workflows based on any event. With GitHub Actions, workflows and steps are just code in a repository. Actions enable GitHub to offer CI/CD, which makes it easier to automate how you build, test, and deploy your projects and includes runner support for Linux, MacOS, and Windows. It runs your workflows in a container or in a virtual machine.
Similarly, GitLab has integrated CI/CD, but also offers additional capabilities such as application performance and server monitoring. GitLab also includes static and dynamic security testing and container scanning.
GitHub does not come with a deployment platform and needs additional applications, like Heroku, in order to deploy applications. GitLab leverages Kubernetes to create a seamless deployment experience in a single application.
GitHub offers plans for both private repositories and free accounts which are commonly used to host open-source software projects. As of June 2018, GitHub reports having over 28 million users and 57 million repositories (including 28 million public repositories), making it the largest host of source code in the world.
On June 4, 2018, Microsoft announced it had reached an agreement to acquire GitHub for US$7.5 billion. The purchase is expected to close by the end of the year.
GitHub is also offered in a self-managed version called GitHub Enterprise (GHE).
On May, 23, 2019 at the GitHub’s Satellite developer conference, GitHub announced a number of new features. Here is a blog post summary of what GitHub announced today and how that relates to GitLab features that already exist or are on the public GitLab direction page.
Q: Is GHE based on a closed VM A: Yes - From GitHub Admin Guide “GitHub Enterprise is distributed as a virtual machine image that you install and manage within your existing infrastructure.”
Possible disadvantages of a closed VM:
Q: a closed environment (could be a trojan inside!) A: Agree with assessment
Q: Installation is quite complicated A: DISAGREE - single VM makes it easy to install, although less flexible See installation instructions
Q: upgrades and patching is complicated A: DISAGREE - VM appliance makes patching and upgrading relatively simple. See upgrade instructions
Q: bad thing off my head for using VM is I/O A: Not clear - In general yes. But things can be tuned to improve it a lot See general recent study on this.
Q: probably can't separate the installation to separated parts (in order to improve performance) A: DISAGREE - Can have VM act as different parts to scale per requirements. See GitHub Enterprise Clustering Guide - Cluster design recommendations and GitHub Enterprise Clustering Guide - Initializing-the-cluster for more details.