

Puppet is a configuration management tool and language that enables deployment and maintenance of state for large scale infrastructure. Puppet excels as managing legacy infrastructure like physical servers and VMs. Puppet was designed before widespread container adoption and does not implement Kubernetes natively.
GitLab is a complete DevOps platform, delivered as a single application that includes not only configuration management, but also capabilities for project management, source code management, CI/CD, and monitoring. GitLab is designed for Kubernetes and cloud native applications.
GitLab can be used together with Puppet to enable VM and bare metal configuration management. For Cloud Native applications run on Kubernetes, Puppet is not required and GitLab comes with all the functionality needed built-in.
FEATURES |
|
|
---|---|---|
Built-in CI/CD
GitLab has built-in Continuous Integration/Continuous Delivery, for free, no need to install it separately. Use it to build, test, and deploy your website (GitLab Pages) or webapp. The job results are displayed on merge requests for easy access. |
|
|
Web Terminal for Web IDE
Interact with your code in a Web Terminal in the Web IDE to inspect API responses, experiment in a REPL, or compile your code. |
|
|
AD / LDAP integration
Sync groups, manage SSH-keys, manage permissions, authentication and more. You can manage an entire GitLab instance through the LDAP / AD integration. |
|
|
Cloud Native
GitLab and its CI/CD is Cloud Native, purpose built for the cloud model. GitLab can be easily deployed on Kubernetes and used to deploy your application to Kubernetes with support out of the box. |
|
|
Auto DevOps
Auto DevOps brings DevOps best practices to your project by automatically configuring software development lifecycles by default. It automatically detects, builds, tests, deploys, and monitors applications. |
|
|
Deploy Boards
Deploy Boards offer a consolidated view of the current health and status of each CI/CD environment running on Kubernetes. The status of each pod of your latest deployment is displayed seamlessly within GitLab without the need to access Kubernetes. |
|
|
Canary Deployments
GitLab Premium can monitor your Canary Deployments when
deploying your applications with Kubernetes. Canary Deployments can be configured directly through |
|
|
Static Application Security Testing
GitLab allows easily running Static Application Security Testing (SAST) in CI/CD pipelines; checking for vulnerable source code or well known security bugs in the libraries that are included by the application. Results are then shown in the Merge Request and in the Pipeline view. This feature is available as part of Auto DevOps to provide security-by-default. |
|
|
Vulnerability Management
GitLab’s vulnerability management is about ensuring assets and applications are scanned for vulnerabilities. It also includes the processes to record, manage, and mitigate those vulnerabilities. Vulnerability management helps identify meaningful sets of vulnerabilities, in both your assets and application code, that can be mitigated, managed, and acted upon by your whole team—not just the security organization. It also provides a unified interface to the systems teams are already using for managing results from the ~”devops::secure” stage so there is always a single source of truth and single place for managing security results. |
|
|
Domain Specific Language
A Domain Specific Language (DSL) for defining infrastructure configuration allows thinking in resources, not files or commands to write declarative rather then procedural code. |
|
|
Automated Provisioning
Find, discover, and manage bare metal and VM servers. Provision using defined polices automatically installing the correct OS or hypervisors, based on the information discovered in your environment. |
|
|
Infrastructure Orchestration
Model complex infrastructures and the dependencies between distributed services and systems that make up an application or application stack using infrastructure as code. The infrastructure orchestrator uses the model to manage deployment ensuring the right services are available, at the right time, with the right information. |
|
|
Configuration Modeling
CM modeling is the concept to consolidate the interactions between IT service assets, configuration items and infrastructure. Shows the interaction and relationship of services, infrastructure, and assets with each other, it will ease to find the root cause of an incident and problem. |
|
|
Configuration Automation
Configure Management automation is used to make the server reach a desirable state, previously defined by provisioning scripts using a tool’s specific language and features ensuring that every system you’re responsible for is configured accurately and consistently. |
|
|
Configure Monitoring
CM monitoring includes the process of recording and reporting configuration item descriptions (e.g., hardware, software, firmware, etc.) and all departures from the baseline during design and production. In the event of discovered problems, the verification of baseline configuration and approved modifications can be quickly determined. |
|
|
Configure Governance
CM governance is a review that assesses compliance with established performance requirements, commercial and appropriate government standards, and functional, allocated, and product baselines. Configuration governance confirm that the system and subsystem configuration documentation complies with the functional and physical performance characteristics before acceptance into an architectural baseline. |
|
|