GitLab provide a suite of products which work well together but can be used separately; the two primary components are a git wrapper, similar to GitHub, and the well-regarded GitLab CI CI/CD system, which is a good default choice if running within your own infrastructure.
Key advantages of GitLab CI are:
- Configuration as code.
- Containerised deployments.
- Deployment credentials can be provided from the environment (e.g. through IAM roles) which gives the strongest guarantees that only authorised, audited actions can be performed without risk of credential leakage.
The only real disadvantage, relative to cloud-hosted solutions such as Circle CI, is the overhead of maintaining the build system itself, which must run on servers.