来源快照|CI/CD与DevSecOps
本页是原图的只读导入快照,不是已核验文档。原有历史命令、版本标记与疑点保留;已识别口令替换为占位符。图片只保留引用。
- CI/CD与DevSecOps ^xm-1149fab5e3bd47e8bd2d2be15b
-
◆ 2026 深度扩展|CI/CD 与 DevSecOps
- Git 分支、评审与制品追溯 ^xm-1b789547427c4f89936d29eb63
- 🎯 目标 ^xm-38b79c29a36d43d38151f8b922
- 让每个生产制品可追溯到代码、评审、依赖和构建。
- 🧠 知识拆解 ^xm-e4311f82d222493fb0d2e07557
- trunk-based vs GitFlow
- protected branch
- CODEOWNERS
- semantic version
- changelog
- artifact immutability
- ⌨️ 命令 / 配置 / 关键对象 ^xm-2a886aee408b44ed8d54a48f8e
- signed commit/tag
- PR checks
- release/tag
- SBOM/provenance
- 🔥 高频故障与风险 ^xm-5e5d00456b77432691f6134f3b
- 直接推生产分支
- 同 tag 覆盖
- 构建不可重现
- 制品与 commit 不匹配
- 🔎 排障路径 ^xm-da2319458f124ef5beb72f4371
- 从部署反查 image digest
- 核对 build metadata
- 检查依赖锁与 runner
- 🧪 实战练习 ^xm-2bcb6992d5d14e1c98c45268d6
- 建立保护规则与 release pipeline
- 从线上 Pod 追到 commit
- ✅ 验收标准 ^xm-fb85d83b8e1446efb690e22c33
- 使用 digest 部署
- 制品不可变
- 审批和测试证据完整
- 🎯 目标 ^xm-38b79c29a36d43d38151f8b922
- CI Pipeline 设计 ^xm-04b112276db94edb81cf5f6233
- 🎯 目标 ^xm-85cf23a207704bc096285d68f1
- 构建快速、稳定、安全且可维护的持续集成。
- 🧠 知识拆解 ^xm-b3662a1e010c4675bb976095c8
- stage/job/runner/agent
- cache vs artifact
- parallelism
- test pyramid
- secret isolation
- reusable pipeline
- ⌨️ 命令 / 配置 / 关键对象 ^xm-a6a9f4ae04384261ace3051fc9
- Jenkinsfile/GitHub Actions/GitLab CI
- shared library
- matrix
- timeout/retry
- artifact retention
- 🔥 高频故障与风险 ^xm-14a87e124b014099acee26fe11
- flaky tests
- 缓存污染
- runner 权限过大
- 流水线过慢
- secret 泄露
- 🔎 排障路径 ^xm-e8e56e6e54654b4891ca58d474
- 按阶段分解时间
- 重跑与隔离 flaky
- 检查 cache key
- 审计凭据访问
- 🧪 实战练习 ^xm-4813eb3a18a5476892b154dc7d
- 15 分钟内完成 build/test/scan
- 弹性隔离 runner
- ✅ 验收标准 ^xm-6e6a7c1442f0416d92cae3a41f
- 失败可定位
- 最小权限 token
- 关键测试阻止合并
- 🔗 对应优秀开源项目 ^xm-3c52d821be0940dd95f37b5713
-
jenkinsci/jenkins
备注(源图文本,未作运行验证):
定位:通用自动化与 CI 服务器 源码阅读:queue→executor→agent→pipeline 实战:共享库、凭据隔离、弹性 Agent 注意:控制插件数量并维护升级/备份策略 整理日期:2026-07-09- 原链接(未复核):
https://github.com/jenkinsci/jenkins
- 原链接(未复核):
-
- 🎯 目标 ^xm-85cf23a207704bc096285d68f1
- 制品、镜像、SBOM 与供应链 ^xm-578ae2bd12ca4737b97d4a339c
- 🎯 目标 ^xm-980335b8aea74971843d4807f6
- 保护从源码到镜像再到部署的完整供应链。
- 🧠 知识拆解 ^xm-4e9f899ec77e4fd0b2820e91fc
- artifact repository
- image layers/tag/digest
- SBOM
- SLSA/provenance
- signature/attestation
- dependency pinning
- ⌨️ 命令 / 配置 / 关键对象 ^xm-af4fb384204d468bbfd690cd78
- docker/buildkit
- syft/SPDX/CycloneDX
- trivy
- cosign sign/verify
- registry retention
- 🔥 高频故障与风险 ^xm-75f90dff710d4245bf14fe11a7
- 基础镜像过期
- tag 漂移
- 依赖投毒
- 签名未验证
- 私库容量爆满
- 🔎 排障路径 ^xm-50ba5bea75bb4261a25112323b
- 从 digest 展开 SBOM
- 核对 provenance/identity
- 扫描漏洞与 secret
- 验证准入记录
- 🧪 实战练习 ^xm-faa052085d134d2788eacdecf9
- 多阶段构建最小镜像
- 签名+准入验证
- ✅ 验收标准 ^xm-8d8aabf98cfb403a8ad76705fc
- 生产只允许可信来源
- SBOM 可查询
- 漏洞例外有期限
- 🔗 对应优秀开源项目 ^xm-a0523b2470d04fab80afac44da
-
aquasecurity/trivy
备注(源图文本,未作运行验证):
定位:镜像、仓库、IaC、K8s、SBOM 扫描 源码阅读:target→analyzer→DB→report/policy 实战:CI 中扫描并上传 SARIF 注意:处理误报、例外期限和修复责任人 整理日期:2026-07-09- 原链接(未复核):
https://github.com/aquasecurity/trivy
- 原链接(未复核):
-
sigstore/cosign
备注(源图文本,未作运行验证):
定位:制品签名与供应链验证 源码阅读:keyless identity→sign→transparency→verify 实战:签名镜像并在准入阶段验证 注意:签名证明来源,不自动证明制品安全 整理日期:2026-07-09- 原链接(未复核):
https://github.com/sigstore/cosign
- 原链接(未复核):
-
- 🎯 目标 ^xm-980335b8aea74971843d4807f6
- 部署策略与数据库变更 ^xm-8e62164fa5f44e0197343d0558
- 🎯 目标 ^xm-4b03f3b62bb64c4baf0b02ca53
- 在应用与数据兼容约束下安全发布。
- 🧠 知识拆解 ^xm-974a2241f6ca457db5c561f202
- rolling/blue-green/canary
- feature flag
- expand-migrate-contract
- backward/forward compatibility
- shadow traffic
- rollback vs roll-forward
- ⌨️ 命令 / 配置 / 关键对象 ^xm-954dc5a6e436404b81e7d7cdcc
- deployment strategy
- traffic split
- migration job
- readiness gate
- automated analysis
- 🔥 高频故障与风险 ^xm-ea6b140be5624a4abae787c603
- 新旧版本不兼容
- 不可逆 schema
- 回滚后读不了新数据
- 金丝雀样本不足
- 🔎 排障路径 ^xm-56c812397d5740fc8bb3012a50
- 应用/DB/消息 schema 分开核对
- 比较 cohort 指标
- 检查数据迁移进度
- 🧪 实战练习 ^xm-6a253735db93442c87cb5e7e05
- 双版本兼容发布
- 可回滚数据库迁移
- ✅ 验收标准 ^xm-e7723980db66404e80329ed493
- 回滚触发明确
- 数据变更有备份/校验
- 金丝雀覆盖关键用户路径
- 🎯 目标 ^xm-4b03f3b62bb64c4baf0b02ca53
- GitOps ^xm-431ee4159f2042ce8e7c086b20
- 🎯 目标 ^xm-cd7211b7a024495d8bffb4d90f
- 以 Git 为期望状态,持续发现并修复集群漂移。
- 🧠 知识拆解 ^xm-02ff41486837421cb9ed127962
- pull reconciliation
- desired/live state
- sync/health
- multi-env repo
- secret encryption
- progressive delivery
- ⌨️ 命令 / 配置 / 关键对象 ^xm-16aa2c5d7c0642108d8d6b7b9b
- argocd app diff/sync/history/rollback
- flux reconcile/get
- Kustomize/Helm source
- SOPS
- 🔥 高频故障与风险 ^xm-88aae4985baa4e93acda958ee5
- OutOfSync 风暴
- 手工热修复被回滚
- CRD 顺序
- repo 凭据/租户越权
- 🔎 排障路径 ^xm-74d44f859338471fa9f527b3d8
- Git revision→render→diff→controller events
- 检查 health/sync waves
- 核对 ignoreDifferences
- 🧪 实战练习 ^xm-0118c72f1e2c4801839dc758e2
- Argo CD 多环境
- Flux image automation
- ✅ 验收标准 ^xm-de2be523c87348f0ac9c26d33c
- 集群手工变更可发现
- secret 不明文
- 紧急变更能回写 Git
- 🔗 对应优秀开源项目 ^xm-49019a2452434c06b855c1f424
-
argoproj/argo-cd
备注(源图文本,未作运行验证):
定位:声明式 Kubernetes 持续交付 源码阅读:repo-server→application-controller→diff/sync 实战:实现多环境、sync wave、回滚 注意:自动同步前先治理 secret 和变更审批 整理日期:2026-07-09- 原链接(未复核):
https://github.com/argoproj/argo-cd
- 原链接(未复核):
-
fluxcd/flux2
备注(源图文本,未作运行验证):
定位:可组合 GitOps Toolkit 源码阅读:Source→Kustomize/Helm Controller→Notification 实战:Git/OCI source、镜像自动更新与 SOPS 注意:多租户时明确 source 与 namespace 权限 整理日期:2026-07-09- 原链接(未复核):
https://github.com/fluxcd/flux2
- 原链接(未复核):
-
- 🎯 目标 ^xm-cd7211b7a024495d8bffb4d90f
- Policy as Code 与 DevSecOps 门禁 ^xm-d0b7d68c145341da907ecf6de0
- 🎯 目标 ^xm-904fd189eb97424b9843ac3d93
- 把组织安全和合规要求变成可测试策略。
- 🧠 知识拆解 ^xm-2ffbe17c77f14cebbd2975ca61
- shift-left 与 runtime
- admission control
- audit/enforce
- exception lifecycle
- policy tests
- false positive governance
- ⌨️ 命令 / 配置 / 关键对象 ^xm-9491b61968864288a6c233ddc7
- Trivy config/image/k8s
- Kyverno test/report
- Gatekeeper constraints
- SARIF
- CI quality gate
- 🔥 高频故障与风险 ^xm-1b8b101e4521457ea7651f8403
- 门禁一刀切
- 大量永久 ignore
- 策略拖慢 API
- 规则无人维护
- 🔎 排障路径 ^xm-597aef4dd05a41e8a1df449ed6
- 先 audit 命中分布
- 验证规则覆盖与误报
- 测 admission latency
- 追踪例外 owner
- 🧪 实战练习 ^xm-b31287e8a8084fcf9ea857b4a4
- 禁止 latest/privileged
- 扫描 IaC 与镜像并形成修复闭环
- ✅ 验收标准 ^xm-7a4379b7fcde40a1ac432363e9
- 策略代码有测试
- 例外有到期时间
- 阻断规则有业务批准
- 🔗 对应优秀开源项目 ^xm-1132c4c0266a46ce943e938505
-
aquasecurity/trivy
备注(源图文本,未作运行验证):
定位:镜像、仓库、IaC、K8s、SBOM 扫描 源码阅读:target→analyzer→DB→report/policy 实战:CI 中扫描并上传 SARIF 注意:处理误报、例外期限和修复责任人 整理日期:2026-07-09- 原链接(未复核):
https://github.com/aquasecurity/trivy
- 原链接(未复核):
-
kyverno/kyverno
备注(源图文本,未作运行验证):
定位:Kubernetes Policy as Code 源码阅读:policy→admission/background→report 实战:强制镜像来源、资源限制与标签 注意:先 audit 后 enforce,避免阻断生产 整理日期:2026-07-09- 原链接(未复核):
https://github.com/kyverno/kyverno
- 原链接(未复核):
-
open-policy-agent/gatekeeper
备注(源图文本,未作运行验证):
定位:OPA 驱动的 K8s 准入治理 源码阅读:ConstraintTemplate→Constraint→admission 实战:编写并测试一条组织策略 注意:策略性能与例外治理同样重要 整理日期:2026-07-09- 原链接(未复核):
https://github.com/open-policy-agent/gatekeeper
- 原链接(未复核):
-
- 🎯 目标 ^xm-904fd189eb97424b9843ac3d93
- 平台工程与开发者自服务 ^xm-eb8dfc4e61c5478eb99847f9eb
- 🎯 目标 ^xm-726a1f40b6984bdcbe2c71ce3f
- 把重复运维能力产品化为安全的 golden path。
- 🧠 知识拆解 ^xm-791abb4c393241c18472b147a7
- internal developer platform
- service template
- self-service API
- scorecard
- paved road
- platform as product
- ⌨️ 命令 / 配置 / 关键对象 ^xm-5ba3b458b19546e692f252513f
- catalog/template
- workflow/API
- policy/guardrail
- telemetry by default
- cost ownership
- 🔥 高频故障与风险 ^xm-5d2379e051bd410492c922d55f
- 平台成为工单门户
- 抽象泄漏
- 强制标准阻碍团队
- 无人衡量开发者体验
- 🔎 排障路径 ^xm-8fc1083bab274a37bb4851f1fb
- 访谈用户旅程
- 测量 lead time/失败率
- 区分平台与底层工具问题
- 🧪 实战练习 ^xm-11bcc031554542b799d4bc43f9
- 一键创建带 CI/监控/Runbook 的服务
- 建立服务成熟度 scorecard
- ✅ 验收标准 ^xm-e2cdce47bcbc499b8345e35c85
- 自服务无需平台人工介入
- 默认安全可观测
- 采用率与满意度可衡量
- 🎯 目标 ^xm-726a1f40b6984bdcbe2c71ce3f
- Git 分支、评审与制品追溯 ^xm-1b789547427c4f89936d29eb63
-
★ [新增] 现代交付流水线
- 持续集成 ^xm-240e9ccf449d490f97a92bd87b
- 构建与单元测试
- 依赖缓存
- 并行与矩阵任务
- 质量门禁
- 可复现构建
- 制品治理 ^xm-b0d868bfce104d3c838df4bebf
- 镜像/包仓库
- 版本策略
- 制品晋级
- 保留策略
- 不可变制品
- 发布策略 ^xm-17249295524347718a5cc8f676
- 滚动发布
- 蓝绿发布
- 金丝雀发布
- 灰度与特性开关
- 自动/人工回滚
- GitOps ^xm-6e47de19fd82434f919be363b5
- 声明式期望状态
- Argo CD/Flux
- 环境分层
- 漂移检测
- 回滚与审计
- DevSecOps ^xm-b124d7a39528460294073857ce
- SAST/DAST/SCA
- Secret 扫描
- SBOM
- 镜像签名与验证
- 策略即代码
- 持续集成 ^xm-240e9ccf449d490f97a92bd87b
-
jenkins
-
安装部署
- docker部署 ^xm-047cg7pkvdk39ji8cnh7m29ggs
-
docker run -it -p 18080:8080 -v /data/jenkins:/var/jenkins_home(详见备注)
备注(源图文本,未作运行验证):
原节点完整内容: docker run -it -p 18080:8080 -v /data/jenkins:/var/jenkins_home ccr.ccs.tencentyun.com/devopsvip/jenkins:2.415-jdk11
-
- 二进制部署
- yaml部署
- docker部署 ^xm-047cg7pkvdk39ji8cnh7m29ggs
-
安装Jenkins所需插件
-
⚑ [纠错] Pipeline 流水线
备注(源图文本,未作运行验证):
原节点名称:pipline流水线。已统一为标准拼写。- 声明式pipline(官方推荐) ^xm-10vo9fquet2nn645ijtua9n3r8
- jenkinsfile.txt ^xm-6b1te718jbla70j270l7c345ke
- 原链接(未复核):
xap:resources/c242a509307d6f3f51684cd0ecc9c5f9b34952273fab1608a391931d8fa14dd6.txt
- 原链接(未复核):
- jenkinsfile2.txt ^xm-2iofb1mcng32jm7s5ccul80b0a
- 原链接(未复核):
xap:resources/524148815dafafec6390dc4fc7d44c1ad932c82467245e4de61f5370264e2fa9.txt
- 原链接(未复核):
- https://www.jenkins.io/doc/book/pipeline/syntax/#declarative-pipeline ^xm-0tc7muosphv8nuj4hrgnniqf53
- 原链接(未复核):
https://www.jenkins.io/doc/book/pipeline/syntax/#declarative-pipeline
- 原链接(未复核):
- jenkinsfile.txt ^xm-6b1te718jbla70j270l7c345ke
- 脚本式pipline ^xm-42ouu4ecfjr99e4t922960igea
-
node { timestamps { ansiColor(“xterm”) { stage(“Build”) { timeou(详见备注)
备注(源图文本,未作运行验证):
原节点完整内容: node { timestamps { ansiColor("xterm") { stage("Build") { timeout(time: 1, unit: "MINUTES") { sh 'printf "\\e[31mSome code compilation here...\\e[0m\\n"' } } if (env.FOO == "bar") { stage("Test") { timeout(time: 2, unit: "MINUTES") { sh 'printf "\\e[31mSome tests execution here...\\e[0m\\n"' } } } } } } -
node { stage(‘Example’) { if (env.BRANCH_NAME == ‘master’) { ech(详见备注)
备注(源图文本,未作运行验证):
原节点完整内容: node { stage('Example') { if (env.BRANCH_NAME == 'master') { echo 'I only execute on the master branch' } else { echo 'I execute elsewhere' } } } -
https://www.jenkins.io/doc/book/pipeline/syntax/#scripted-pipeline
- 原链接(未复核):
https://www.jenkins.io/doc/book/pipeline/syntax/#scripted-pipeline
- 原链接(未复核):
-
- 共享库 ^xm-4jk18ng04cjqd9142ff1k9pdlk
-
原有图示(16622829)
备注(源图文本,未作运行验证):
原节点未设置标题,为避免清理空节点时丢失图片,已补充占位标题。 图片来源:https://cdn.nlark.com/yuque/0/2022/png/2584012/1662282986619-ec2d8e5c-0467-43a9-83c9-8e9671b8f678.png-
图片引用(本次未导出图片字节):
https://cdn.nlark.com/yuque/0/2022/png/2584012/1662282986619-ec2d8e5c-0467-43a9-83c9-8e9671b8f678.png -
库结构: ● src: 类似于java的源码目录,执行流水线时会加载到class路径中(详见备注)
备注(源图文本,未作运行验证):
原节点完整内容: 库结构: ● src: 类似于java的源码目录,执行流水线时会加载到class路径中。 ● vars: 存放全局变量脚本,小的功能函数。 ● resources: 存放资源文件,类似于配置信息文件。
-
-
在Jenkins中使用Groovy语法,共享库中存储的每个文件都是一个groovy的类,每个文件(类)中包含一个或多个方法。每个方法包含groovy语句块。
-
共享库的使用
- Jenkinsfile_sharelib.txt ^xm-4s9gp47mqd36kftbr4h3qjsle5
-
原链接(未复核):
xap:resources/5be1d817acb749fbe15e9501e79cc2bfd0dbc04beb34740d2718a39e75a3ce8c.txt -
原有图示(17172128)
备注(源图文本,未作运行验证):
原节点未设置标题,为避免清理空节点时丢失图片,已补充占位标题。 图片来源:https://cdn.nlark.com/yuque/0/2024/png/2584012/1717212882953-21ea8335-c4fa-4ba2-b169-9b5ab1950b65.png- 图片引用(本次未导出图片字节):
https://cdn.nlark.com/yuque/0/2024/png/2584012/1717212882953-21ea8335-c4fa-4ba2-b169-9b5ab1950b65.png
- 图片引用(本次未导出图片字节):
-
原有图示(16622829)
备注(源图文本,未作运行验证):
原节点未设置标题,为避免清理空节点时丢失图片,已补充占位标题。 图片来源:https://cdn.nlark.com/yuque/0/2022/png/2584012/1662282986645-4fe1471d-4417-45b3-8591-55c237806c2c.png- 图片引用(本次未导出图片字节):
https://cdn.nlark.com/yuque/0/2022/png/2584012/1662282986645-4fe1471d-4417-45b3-8591-55c237806c2c.png
- 图片引用(本次未导出图片字节):
-
原有图示(17172129)
备注(源图文本,未作运行验证):
原节点未设置标题,为避免清理空节点时丢失图片,已补充占位标题。 图片来源:https://cdn.nlark.com/yuque/0/2024/png/2584012/1717212962771-005a6f59-d559-4b15-a20b-68ebb7ec2547.png- 图片引用(本次未导出图片字节):
https://cdn.nlark.com/yuque/0/2024/png/2584012/1717212962771-005a6f59-d559-4b15-a20b-68ebb7ec2547.png
- 图片引用(本次未导出图片字节):
-
- https://www.yuque.com/devopsgroup/vu6t5s/nu57x4bx4tyh139b ^xm-6r43k81j40qnb80huahlvo5p9r
- 原链接(未复核):
https://www.yuque.com/devopsgroup/vu6t5s/nu57x4bx4tyh139b
- 原链接(未复核):
- Jenkinsfile_sharelib.txt ^xm-4s9gp47mqd36kftbr4h3qjsle5
-
- 声明式pipline(官方推荐) ^xm-10vo9fquet2nn645ijtua9n3r8
-
按项目需求Dockerfile-私有化自定义镜像
-
用户权限范围
-
groovy语法
-
-
gitee/gitlab
- 安装部署 ^xm-2obucrvgp6kkpg80a3t7lftp65
- docker部署
- 容器部署
- 代码合并管理 ^xm-3v9k8acd109cjugoa1naj2b4qu
- gitflow分支模型(常用)
- 发布分支模型
- 蓝绿发布模型
- gitlab-runner
- webhook配置
- 用户管理
- 安装部署 ^xm-2obucrvgp6kkpg80a3t7lftp65
-
maven/npm/pypi
-
sonarqube
-
docker/docker-compose
-
harbor
-
⚑ [纠错] Kubernetes
备注(源图文本,未作运行验证):
原节点名称:kubenetes。已统一为标准拼写。- argocd
-