文章目录Dagger把软件交付这件事变得可编程、可重复、可观测四个关键词设计上的一些细节上手成本Dagger把软件交付这件事变得可编程、可重复、可观测做软件交付的人大概都经历过这样的场景CI 脚本写得像面条一样缠在一起本地能跑、上服务器就挂部署一次要盯半个小时日志。Dagger 就是冲着这些痛点来的。四个关键词Dagger 对自己的定位很明确让软件交付变得可编程、本地优先、可重复、可观测。可编程。Shell 脚本和私有 YAML 方案统治 CI/CD 领域太久了。Dagger 给了一套完整的执行引擎和系统 API8 种语言的 SDK一个交互式 REPL还有不断增长的模块生态。写流水线像写普通代码一样自然。本地优先。在 Dagger 上写好一个自动化任务拿到任何地方都能跑。笔记本、CI 服务器、云端基础设施结果完全一致。唯一的依赖是容器运行时。可重复。所有工具跑在容器里由沙箱化的函数编排。宿主机依赖被显式声明和严格类型化。每次构建增量执行改了哪个文件就只重跑相关的操作。可观测。每次操作都生成完整的 OpenTelemetry 追踪数据在终端或网页上直接可视化。排查问题不用再翻几百行日志找线索。设计上的一些细节系统 API 是跨语言的统一操作容器、文件系统、密钥、Git 仓库、网络隧道等基础设施。每个操作的返回值都有类型、可组合。8 个语言的 SDKGo、Python、TypeScript、PHP、Java、.NET、Elixir、Rust都是从 API schema 自动生成的类型安全和编辑器补全都是原生支持。自定义对象类型可以跨 SDK 语言边界和模块边界传递不涉及序列化。类型通过内容寻址天然防冲突。增量执行靠内容寻址缓存操作按输入键控。改一个文件只有受影响的操作重跑缓存在本地和 CI 之间自动共享。上手成本安装只需要一行 brew前提是有容器运行时。Linux 原生跑macOS 和 Windows 靠 Docker Desktop 或者类似产品。官方有完整的文档和快速入门社区在 Discord 和 GitHub Discussions 活跃。如果你对 CI/CD 的现状不满想找一种更工程化的方式来做软件交付Dagger 值得看看。的现状不满想找一种更工程化的方式来做软件交付Dagger 值得看看。