<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CI/CD on 黄文卓 | DevOps Engineer</title><link>https://socake.github.io/categories/ci/cd/</link><description>Recent content in CI/CD on 黄文卓 | DevOps Engineer</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>17691281867@163.com (Wenzhuo Huang)</managingEditor><webMaster>17691281867@163.com (Wenzhuo Huang)</webMaster><copyright>© 2026 Wenzhuo Huang</copyright><lastBuildDate>Tue, 03 Feb 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://socake.github.io/categories/ci/cd/index.xml" rel="self" type="application/rss+xml"/><item><title>Earthly 在 Monorepo 的构建统一：Earthfile + Satellites 实战</title><link>https://socake.github.io/posts/earthly-buildfile-monorepo/</link><pubDate>Tue, 03 Feb 2026 10:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/posts/earthly-buildfile-monorepo/</guid><description>Bazel 复杂度太高，Makefile 表达力不够，Dockerfile 只能构建一个镜像——Earthly 填的就是这个缝：像 Dockerfile 一样熟悉，像 Makefile 一样组合，像 Bazel 一样可并发、可缓存、可复用。本文讲清楚它在 Monorepo 里的真实位置。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://socake.github.io/posts/earthly-buildfile-monorepo/featured.jpg"/></item><item><title>Dagger 实战：用代码而不是 YAML 编写 CI/CD</title><link>https://socake.github.io/posts/dagger-programmable-cicd/</link><pubDate>Wed, 21 Jan 2026 10:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/posts/dagger-programmable-cicd/</guid><description>每次迁移 CI 平台（Jenkins → GitLab → GitHub Actions → Tekton），业务流水线都要重写一遍。Dagger 的思路是：把流水线写成可移植的代码（Go/Python/TS），底层引擎负责执行和缓存，CI 平台只是调用方。本文讲清楚它怎么工作、什么时候值得引入。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://socake.github.io/posts/dagger-programmable-cicd/featured.jpg"/></item><item><title>Tekton Pipelines 企业级落地：从 Task 抽象到供应链签名</title><link>https://socake.github.io/posts/tekton-pipelines-production/</link><pubDate>Thu, 15 Jan 2026 10:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/posts/tekton-pipelines-production/</guid><description>Jenkins 扛不动 K8s Native 的调度压力，GitLab Runner 又太 monolithic。Tekton 把 &amp;lsquo;CI job&amp;rsquo; 拆成 Task + Pipeline + PipelineRun 三层 CRD，所有执行都是 Pod，天然贴合 K8s。本文讲清楚它在企业里该怎么用——以及怎么避免把它用成 YAML 地狱。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://socake.github.io/posts/tekton-pipelines-production/featured.jpg"/></item><item><title>ko 实战：无 Dockerfile 构建 Go 容器镜像的正确姿势</title><link>https://socake.github.io/posts/ko-go-image-build/</link><pubDate>Fri, 09 Jan 2026 10:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/posts/ko-go-image-build/</guid><description>同样是构建 Go 镜像，用 Dockerfile + BuildKit 要 2-3 分钟，用 ko 只需要 5-20 秒。差距来自 ko 不走 daemon、不写 tar、直接把 Go 编译产物塞进 OCI manifest。本文讲清楚这套 &amp;lsquo;Dockerfile-less&amp;rsquo; 构建到底怎么落地到生产，以及什么时候不该用它。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://socake.github.io/posts/ko-go-image-build/featured.jpg"/></item><item><title>BuildKit 缓存生产实战：从多阶段到远端 Registry Cache</title><link>https://socake.github.io/posts/buildkit-cache-production/</link><pubDate>Sat, 03 Jan 2026 10:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/posts/buildkit-cache-production/</guid><description>BuildKit 的缓存体系看似简单一行 &amp;ndash;cache-to，实际生产里坑极多：mode=max 在多架构下的 manifest 行为、registry 后端每层 0.3s 的验证开销、cache mount 在 &amp;ndash;cache-to=registry 下不被导出的限制、GHA 后端 10GB 上限……本文基于真实 CI 流水线的调优记录，给出一套可复制的生产配置。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://socake.github.io/posts/buildkit-cache-production/featured.jpg"/></item><item><title>Dockerfile 编写最佳实践</title><link>https://socake.github.io/docs/cicd/dockerfile%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</link><pubDate>Tue, 09 Dec 2025 17:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/docs/cicd/dockerfile%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</guid><description>系统讲解 Dockerfile 每条指令的最佳用法、ENTRYPOINT vs CMD 的组合方式、PID 1 信号处理问题，附 Go 服务和 Python 服务完整生产级示例。</description></item><item><title>发版回滚 SOP</title><link>https://socake.github.io/docs/cicd/%E5%8F%91%E7%89%88%E5%9B%9E%E6%BB%9Asop/</link><pubDate>Tue, 09 Dec 2025 16:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/docs/cicd/%E5%8F%91%E7%89%88%E5%9B%9E%E6%BB%9Asop/</guid><description>涵盖回滚判断标准、K8s/ArgoCD/配置各层回滚操作、数据库变更的前向修复 vs 回滚取舍，以及完整的值班人员操作 SOP 模板。</description></item><item><title>多环境发版策略设计</title><link>https://socake.github.io/docs/cicd/%E5%A4%9A%E7%8E%AF%E5%A2%83%E5%8F%91%E7%89%88%E7%AD%96%E7%95%A5/</link><pubDate>Tue, 09 Dec 2025 15:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/docs/cicd/%E5%A4%9A%E7%8E%AF%E5%A2%83%E5%8F%91%E7%89%88%E7%AD%96%E7%95%A5/</guid><description>覆盖环境划分标准、分支策略（GitFlow vs Trunk-based）、镜像 tag 策略、自动/手动审批节点、金丝雀发布、蓝绿部署，以及发版后验证 checklist。</description></item><item><title>Docker 镜像优化实践</title><link>https://socake.github.io/docs/cicd/docker%E9%95%9C%E5%83%8F%E4%BC%98%E5%8C%96/</link><pubDate>Tue, 09 Dec 2025 14:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/docs/cicd/docker%E9%95%9C%E5%83%8F%E4%BC%98%E5%8C%96/</guid><description>覆盖多阶段构建、基础镜像选型（alpine/distroless/scratch）、layer 缓存优化、BuildKit cache mount、漏洞扫描等实战技巧，附优化前后对比数据。</description></item><item><title>ArgoCD + Kustomize GitOps 体系实践</title><link>https://socake.github.io/docs/kubernetes/argocd-gitops%E5%AE%9E%E8%B7%B5/</link><pubDate>Mon, 08 Dec 2025 14:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/docs/kubernetes/argocd-gitops%E5%AE%9E%E8%B7%B5/</guid><description>记录在多套 K8s 集群（AWS EKS + 阿里云 ACK）上落地 GitOps 的完整过程：目录结构设计、Kustomize overlay 环境差异管理、ArgoCD ApplicationSet 自动化、以及真实踩过的坑。</description></item><item><title>GitHub Actions CI/CD 实战：从镜像构建到 K8s 部署</title><link>https://socake.github.io/docs/cicd/github-actions-%E5%AE%9E%E6%88%98/</link><pubDate>Mon, 08 Dec 2025 10:00:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/docs/cicd/github-actions-%E5%AE%9E%E6%88%98/</guid><description>完整的 GitHub Actions CI/CD 流水线设计：Docker 多阶段构建优化、ECR 推送、Kustomize 更新 GitOps 仓库触发 ArgoCD 自动部署，以及多环境（QA/PRE/PROD）的分支策略。</description></item><item><title>基础设施即代码：Terraform 入门与实践</title><link>https://socake.github.io/posts/%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E5%8D%B3%E4%BB%A3%E7%A0%81/</link><pubDate>Sun, 30 Nov 2025 09:44:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/posts/%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E5%8D%B3%E4%BB%A3%E7%A0%81/</guid><description>从 IaC 解决的本质问题出发，系统介绍 Terraform 的核心概念和工作流，重点覆盖 State 管理、模块化最佳实践，以及常见陷阱。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://socake.github.io/posts/%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E5%8D%B3%E4%BB%A3%E7%A0%81/featured.jpg"/></item><item><title>GitLab CI/CD + Kubernetes：从代码提交到生产部署全流程</title><link>https://socake.github.io/posts/gitlab-ci-kubernetes/</link><pubDate>Sat, 01 Feb 2025 11:01:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/posts/gitlab-ci-kubernetes/</guid><description>从 GitLab Runner 的 Kubernetes executor 配置，到 kaniko 替代 DinD 的镜像构建方案，再到通过更新 GitOps 仓库完成生产部署——记录一套在真实 AWS EKS 环境跑通的 CI/CD 全流程。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://socake.github.io/posts/gitlab-ci-kubernetes/featured.jpg"/></item><item><title>Jenkins + Kubernetes：动态 Agent 构建与流水线最佳实践</title><link>https://socake.github.io/posts/jenkins-kubernetes-cicd/</link><pubDate>Sun, 26 Jan 2025 13:03:00 +0800</pubDate><author>17691281867@163.com (Wenzhuo Huang)</author><guid>https://socake.github.io/posts/jenkins-kubernetes-cicd/</guid><description>静态 Jenkins Slave 的资源浪费和配置混乱问题，在 Kubernetes 动态 Pod Agent 模式下得到根本解决。本文记录在真实生产环境中把 Jenkins 迁移到 K8s 的完整过程。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://socake.github.io/posts/jenkins-kubernetes-cicd/featured.jpg"/></item></channel></rss>