跳过正文

CI/CD

Earthly 在 Monorepo 的构建统一:Earthfile + Satellites 实战

Earthly 在 Monorepo 的构建统一:Earthfile + Satellites 实战

·1437 字·7 分钟
Bazel 复杂度太高,Makefile 表达力不够,Dockerfile 只能构建一个镜像——Earthly 填的就是这个缝:像 Dockerfile 一样熟悉,像 Makefile 一样组合,像 Bazel 一样可并发、可缓存、可复用。本文讲清楚它在 Monorepo 里的真实位置。
Dagger 实战:用代码而不是 YAML 编写 CI/CD

Dagger 实战:用代码而不是 YAML 编写 CI/CD

·1653 字·8 分钟
每次迁移 CI 平台(Jenkins → GitLab → GitHub Actions → Tekton),业务流水线都要重写一遍。Dagger 的思路是:把流水线写成可移植的代码(Go/Python/TS),底层引擎负责执行和缓存,CI 平台只是调用方。本文讲清楚它怎么工作、什么时候值得引入。
Tekton Pipelines 企业级落地:从 Task 抽象到供应链签名

Tekton Pipelines 企业级落地:从 Task 抽象到供应链签名

·1901 字·9 分钟
Jenkins 扛不动 K8s Native 的调度压力,GitLab Runner 又太 monolithic。Tekton 把 ‘CI job’ 拆成 Task + Pipeline + PipelineRun 三层 CRD,所有执行都是 Pod,天然贴合 K8s。本文讲清楚它在企业里该怎么用——以及怎么避免把它用成 YAML 地狱。
ko 实战:无 Dockerfile 构建 Go 容器镜像的正确姿势

ko 实战:无 Dockerfile 构建 Go 容器镜像的正确姿势

·1639 字·8 分钟
同样是构建 Go 镜像,用 Dockerfile + BuildKit 要 2-3 分钟,用 ko 只需要 5-20 秒。差距来自 ko 不走 daemon、不写 tar、直接把 Go 编译产物塞进 OCI manifest。本文讲清楚这套 ‘Dockerfile-less’ 构建到底怎么落地到生产,以及什么时候不该用它。
BuildKit 缓存生产实战:从多阶段到远端 Registry Cache

BuildKit 缓存生产实战:从多阶段到远端 Registry Cache

·1648 字·8 分钟
BuildKit 的缓存体系看似简单一行 –cache-to,实际生产里坑极多:mode=max 在多架构下的 manifest 行为、registry 后端每层 0.3s 的验证开销、cache mount 在 –cache-to=registry 下不被导出的限制、GHA 后端 10GB 上限……本文基于真实 CI 流水线的调优记录,给出一套可复制的生产配置。

Dockerfile 编写最佳实践

·962 字·5 分钟
系统讲解 Dockerfile 每条指令的最佳用法、ENTRYPOINT vs CMD 的组合方式、PID 1 信号处理问题,附 Go 服务和 Python 服务完整生产级示例。

发版回滚 SOP

·811 字·4 分钟
涵盖回滚判断标准、K8s/ArgoCD/配置各层回滚操作、数据库变更的前向修复 vs 回滚取舍,以及完整的值班人员操作 SOP 模板。

多环境发版策略设计

·806 字·4 分钟
覆盖环境划分标准、分支策略(GitFlow vs Trunk-based)、镜像 tag 策略、自动/手动审批节点、金丝雀发布、蓝绿部署,以及发版后验证 checklist。

Docker 镜像优化实践

·900 字·5 分钟
覆盖多阶段构建、基础镜像选型(alpine/distroless/scratch)、layer 缓存优化、BuildKit cache mount、漏洞扫描等实战技巧,附优化前后对比数据。

ArgoCD + Kustomize GitOps 体系实践

·2128 字·10 分钟
记录在多套 K8s 集群(AWS EKS + 阿里云 ACK)上落地 GitOps 的完整过程:目录结构设计、Kustomize overlay 环境差异管理、ArgoCD ApplicationSet 自动化、以及真实踩过的坑。