DevOps 自动化流水线套件
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,将该技能 @user_3c6cb52e/devops-automation-sh-enzvw9 安装到 AI 助手中。
技能介绍
它解决什么问题
多数团队的 CI 流水线跑得慢而且不可靠:同一个分支反复触发构建、依赖每次都重新下载、部署时说不清哪些 job 必须先完成、线上容器打着 latest 标签发布导致回滚困难。到了 Kubernetes 这一层,资源配额缺失、探针没定义、更新策略过于激进,又会让滚动发布出现短暂不可用。GitOps 落地时最常见的问题,是「Git 是唯一事实来源」这条原则被直接 kubectl apply 绕过,以及应用代码和部署清单混在同一个仓库里难以审计。
这个技能把这些实践拆成一组可执行的规则,覆盖从工作流结构、镜像构建、集群清单、Helm 模板、ArgoCD 同步到指标暴露的完整链路。
它如何工作
CI 工作流结构:用 concurrency 取消过期的运行,用 setup action 的 cache 选项缓存依赖,用 needs 声明 job 之间的依赖,用 environment protection rules 卡住部署门禁,用 matrix 做跨版本测试。
镜像构建:固定镜像 tag 而不用 latest,以非 root 用户运行,最终阶段只 COPY 必要文件,加 HEALTHCHECK 供编排器集成,用 .dockerignore 排除 node_modules、.git 和测试产物。
清单与 Helm:始终设置 resources requests/limits,定义 readiness 与 liveness 探针,用 maxUnavailable: 0 做零停机发布;每个环境用 values-{env}.yaml 覆盖配置,发布前先跑 helm lint 与 helm template 校验。
GitOps:Git 是集群状态的唯一事实来源,所有变更走 PR,生产环境不做 kubectl apply,开启 selfHeal 把手动改动拉回,应用代码仓库与清单仓库分离。
可观测性:暴露 http_request_duration_seconds、http_requests_total、process_resident_memory_bytes、db_query_duration_seconds 四类指标,并对错误率、P99 延迟、内存占用和 Pod 重启次数设告警阈值。
适用边界
这套规则偏「默认配置」而非完整方案:Terraform、Kustomize、服务网格都不在覆盖范围内,多集群或多地域部署需要自行扩展。告警阈值是通用经验值,需要按业务 SLO 调整。ArgoCD 的 selfHeal 会覆盖运维在集群内的临时变更,开启之前应先确认与现有应急流程是否冲突。
使用场景
- 编写 GitHub Actions 工作流:用 concurrency 取消过期运行、缓存依赖并声明 job 依赖
- 写多阶段 Dockerfile:固定镜像 tag、非 root 运行、排除构建垃圾文件并加 HEALTHCHECK
- 编写 K8s 清单:设置资源配额、定义就绪与存活探针,用 maxUnavailable: 0 零停机发布
- 配置 ArgoCD GitOps:Git 作为唯一状态来源、开启 selfHeal、代码与清单仓库分离
适合人员
- 后端或平台工程师,负责维护 CI 流水线,想让构建稳定在 10 分钟内、发布不再手动 kubectl apply
- SRE 或运维工程师,负责 Kubernetes 集群稳定性,需要探针、资源配额、GitOps 与告警阈值这类可复制的默认配置
- DevOps 或基础设施工程师,负责镜像与多环境发布,想把多阶段构建、Helm 环境覆盖、镜像安全扫描写成统一规范