DevOps部署技能Skill devops-deployment

本技能提供一套完整的DevOps与自动化部署解决方案,涵盖CI/CD流水线搭建、Docker容器化、Kubernetes集群部署、基础设施即代码(IaC)以及GitOps工作流。核心内容包括多阶段构建、滚动/蓝绿/金丝雀部署策略、安全加固、密钥管理和Helm Chart编排。适用于自动化软件发布、云原生应用部署和持续交付实践。关键词:CI/CD自动化、Docker容器、Kubernetes部署、GitOps、基础设施即代码、云原生、DevOps流水线、持续交付。

DevOps 0 次安装 0 次浏览 更新于 3/2/2026

name: devops-deployment description: CI/CD流水线、容器化、Kubernetes和基础设施即代码模式 version: 1.0.0 category: 基础设施与部署 agents: [后端系统架构师, 代码质量评审员, 工作室教练] keywords: [CI/CD, 部署, Docker, Kubernetes, 流水线, 基础设施, GitOps, 容器, 自动化, 发布]

DevOps与部署技能

涵盖CI/CD流水线、容器化、部署策略和基础设施自动化的综合框架。

使用场景

  • 搭建CI/CD流水线
  • 容器化应用程序
  • 部署到Kubernetes或云平台
  • 实施GitOps工作流
  • 管理基础设施即代码
  • 规划发布策略

流水线架构

┌─────────────┐   ┌─────────────┐   ┌─────────────┐   ┌─────────────┐
│    代码     │──▶│    构建     │──▶│    测试     │──▶│    部署     │
│   提交      │   │   与检查    │   │   与扫描    │   │  与发布    │
└─────────────┘   └─────────────┘   └─────────────┘   └─────────────┘
       │                 │                 │                 │
       ▼                 ▼                 ▼                 ▼
   触发器            制品              报告              监控

核心概念

CI/CD流水线阶段

  1. 代码检查与类型检查 - 代码质量门禁
  2. 单元测试 - 带报告的测试覆盖率
  3. 安全扫描 - npm审计 + Trivy漏洞扫描器
  4. 构建与推送 - Docker镜像到容器仓库
  5. 部署到预发布环境 - 环境门控部署
  6. 部署到生产环境 - 手动批准或自动部署

完整GitHub Actions工作流请见 templates/github-actions-pipeline.yml

容器最佳实践

多阶段构建 最小化镜像大小:

  • 阶段1:仅安装生产依赖
  • 阶段2:使用开发依赖构建应用
  • 阶段3:最小化占用空间的运行时环境

安全加固

  • 非root用户(uid 1001)
  • 尽可能使用只读文件系统
  • 编排器集成的健康检查

请见 templates/Dockerfiletemplates/docker-compose.yml

Kubernetes部署

核心清单文件

  • 带滚动更新策略的Deployment
  • 内部路由的Service
  • 带TLS的外部访问Ingress
  • 自动扩缩容的HorizontalPodAutoscaler

安全上下文

  • runAsNonRoot: true
  • allowPrivilegeEscalation: false
  • readOnlyRootFilesystem: true
  • 删除所有权限

资源管理

  • 始终设置请求和限制
  • 使用requests进行调度,limits进行限制

请见 templates/k8s-manifests.yamltemplates/helm-values.yaml

部署策略

策略 使用场景 风险
滚动更新 默认,逐步替换 低 - 自动回滚
蓝绿部署 即时切换,易于回滚 中 - 双倍资源
金丝雀发布 渐进式流量切换 低 - 逐步暴露

滚动更新(Kubernetes默认):

strategy:
  type: RollingUpdate
  rollingUpdate:
    maxSurge: 25%
    maxUnavailable: 0  # 零停机时间

蓝绿部署:部署到备用环境,切换服务选择器 金丝雀发布:使用Istio VirtualService进行流量分割(10% → 50% → 100%)

基础设施即代码

Terraform模式

  • S3中的远程状态,带DynamoDB锁
  • 基于模块的架构(VPC、EKS、RDS)
  • 环境特定的tfvars文件

AWS VPC + EKS + RDS示例请见 templates/terraform-aws.tf

使用ArgoCD的GitOps

ArgoCD监视Git仓库并同步集群状态:

  • 带清理的自动同步
  • 自愈(漂移检测)
  • 瞬态故障的重试策略

请见 templates/argocd-application.yaml

密钥管理

使用外部密钥操作符从云提供商同步:

  • AWS密钥管理器
  • HashiCorp Vault
  • Azure密钥保管库
  • GCP密钥管理器

请见 templates/external-secrets.yaml

部署检查清单

部署前

  • [ ] CI中所有测试通过
  • [ ] 安全扫描干净
  • [ ] 数据库迁移准备就绪
  • [ ] 回滚计划已记录

部署中

  • [ ] 监控部署进度
  • [ ] 观察错误率
  • [ ] 验证健康检查通过

部署后

  • [ ] 验证指标正常
  • [ ] 检查日志中的错误
  • [ ] 更新状态页面

Helm Chart结构

charts/app/
├── Chart.yaml
├── values.yaml
├── templates/
│   ├── deployment.yaml
│   ├── service.yaml
│   ├── ingress.yaml
│   ├── configmap.yaml
│   ├── secret.yaml
│   ├── hpa.yaml
│   └── _helpers.tpl
└── values/
    ├── staging.yaml
    └── production.yaml

扩展思考触发器

使用Opus 4.5扩展思考用于:

  • 架构决策 - Kubernetes与无服务器、多区域设置
  • 迁移规划 - 在云提供商之间迁移
  • 事件响应 - 复杂的部署故障
  • 安全设计 - 零信任架构

模板参考

模板 用途
github-actions-pipeline.yml 6个阶段的完整CI/CD工作流
Dockerfile 多阶段Node.js构建
docker-compose.yml 开发环境
k8s-manifests.yaml Deployment、Service、Ingress
helm-values.yaml Helm chart值
terraform-aws.tf VPC、EKS、RDS基础设施
argocd-application.yaml GitOps应用
external-secrets.yaml 密钥管理器集成