2021-06-02 16:53:39 +02:00
---
2021-07-16 18:37:29 +02:00
slug: /1002/vs/
2021-06-02 16:53:39 +02:00
---
2021-03-25 01:31:22 +01:00
# Dagger vs. Other Software
2021-12-07 22:39:49 +01:00
## Dagger vs. CI (Github Actions, Gitlab, CircleCI, Jenkins, etc.)
2021-03-25 01:31:22 +01:00
2021-12-07 22:39:49 +01:00
Dagger does not replace your CI: it improves it by adding a portable development layer on top of it.
2021-03-25 01:31:22 +01:00
2021-12-07 22:39:49 +01:00
* Dagger runs on all major CI products. This *reduces CI lock-in* : you can change CI without rewriting all your pipelines.
* Dagger also runs on your dev machine. This allows *dev/CI parity* : the same pipelines can be used in CI and development.
2021-03-25 01:31:22 +01:00
2021-12-07 22:39:49 +01:00
## Dagger vs. PaaS (Heroku, Firebase, etc.)
2021-03-25 01:31:22 +01:00
2021-12-07 22:39:49 +01:00
Dagger is not a PaaS, but you can use it to add PaaS-like features to your CICD pipelines:
2021-03-25 01:31:22 +01:00
2021-12-07 22:39:49 +01:00
* A simple deployment abstraction for the developer
* A catalog of possible customizations, managed by the platform team
* On-demand staging or development environments
2021-03-25 01:31:22 +01:00
2021-12-07 22:39:49 +01:00
Using Dagger is a good way to get many of the benefits of a PaaS (developer productivity and peace of mind),
without giving up the benefits of custom CICD pipelines (full control over your infrastructure and tooling).
2021-03-25 01:31:22 +01:00
2021-12-07 22:39:49 +01:00
## Dagger vs. artisanal deploy scripts
2021-03-25 01:31:22 +01:00
2021-12-07 22:39:49 +01:00
Most applications have a custom deploy script that usually gets the job done, but is painful to change and troubleshoot.
2021-03-25 01:31:22 +01:00
2021-12-07 22:39:49 +01:00
Using Dagger, you have two options:
2021-03-25 01:52:38 +01:00
2021-12-07 22:39:49 +01:00
1. You can *replace* your script with a DAG that is better in every way: more features, more reliable, faster, easier to read, improve, and debug.
2. You can *extend* your script by wrapping it, as-is, into a DAG. This allows you to start using Dagger right away, and worry about rewrites later.
2021-03-25 01:52:38 +01:00
2021-12-07 22:39:49 +01:00
## Dagger vs. Infrastructure as Code (Terraform, Pulumi, Cloudformation, CDK)
2021-03-25 01:52:38 +01:00
2021-12-07 22:39:49 +01:00
Dagger is the perfect complement to an IaC tool.
2021-03-25 01:57:27 +01:00
2021-12-07 22:39:49 +01:00
* IaC tools help infrastructure teams answer questions like: what is the current state of my infrastructure? What is its desired state? And how do I get there?
* Dagger helps CICD teams answer question like: what work needs to be done to deliver my application, in what order, and how to I orchestrate it?
2021-03-25 01:57:27 +01:00
2021-12-07 22:39:49 +01:00
It is very common for a Dagger configuration to integrate with at least one IaC tool.
2021-03-25 01:57:27 +01:00
2021-12-07 22:39:49 +01:00
## Dagger vs. Build Systems (Make, Maven, Bazel, Npm/Yarn, Docker Build, etc.)
2021-03-25 01:57:27 +01:00
2021-12-07 22:39:49 +01:00
Dagger is complementary to build systems. Most Dagger configurations involve integrating with at least one specialized build.
If several build systems are involved, Dagger helps integrate them into a unified graph.