Gitlab hero border pattern left svg Gitlab hero border pattern right svg

GitLab
vs
Puppet

Decision Kit

Decision Kit

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.

Feature Comparison
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.

Learn more about CI/CD

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.

Learn more about the Web IDE Web Terminal

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.

More information about AD / LDAP 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.

Kubernetes integration

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.

Read more about Auto DevOps in the documentation

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.

Learn more about Deploy Boards

Canary Deployments

GitLab Premium can monitor your Canary Deployments when deploying your applications with Kubernetes. Canary Deployments can be configured directly through .gitlab-ci.yml, the API, or from the UI of the Deploy Boards.

Learn more about configuring Canary Deployments

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.

Learn more about Static Application Security Testing

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.

Learn more about Vulnerability Management

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.