SuperAPI AI 工具集

devops-cicd

部署与运维

查看项目

更新于 10-14 20:09

技能介绍

用途

DevOps & CI/CD 提供自动化构建、测试与部署流水线的实践指引,目标是把从代码提交到生产发布的过程标准化、自动化,并借助基础设施即代码与容器化手段管理环境。

主要能力

CI/CD 流水线

内容给出流水线的典型阶段顺序:Commit → Build → Test → Deploy Staging → Release Prod。构建阶段可包含 Compile、Lint、Type;测试阶段可包含 Unit、Integ、E2E;各阶段可设置触发条件与人工审批环节。

GitHub Actions

提供 .github/workflows/ci.yml 示例工作流,包含:在 push / pull_request 到 main 分支时触发;build 作业执行 checkout、Setup Node.js(含 npm 缓存)、npm ci、npm run lint、npm run type-check、npm run test -- --coverage、上传覆盖率、npm run build、上传构建产物;deploy-staging 作业依赖 build 且限定 main 分支;deploy-production 作业依赖 staging 并配置 environment 与 url。另附矩阵构建示例,使用 matrix.os 与 matrix.node 组合并支持 exclude。

部署策略

  • 蓝绿部署:用图示说明 Blue(v1.0)为 ACTIVE、Green 空闲,向 Green 部署 v1.1 测试后切换流量,Blue 转为 standby。
  • 金丝雀部署:给出 Argo Rollouts 的 Rollout 清单示例,按 10% → 30% → 50% → 100% 逐步放量并设置 pause,配合 analysis 模板与 startingStep。
  • 滚动更新:给出 Kubernetes Deployment 示例,设置 replicas: 4、maxSurge: 1、maxUnavailable: 0,并配置 readinessProbe。

基础设施即代码(Terraform)

提供 main.tf 示例:声明 aws provider 版本约束、S3 backend 存储 tfstate、变量 environment 与 instance_count、aws_vpc 与 aws_instance 资源、输出 instance_ips。另展示模块写法:在 modules/vpc/main.tf 中定义变量与 aws_vpc 资源并输出 vpc_id,再通过 module 块引用并连接 aws_subnet。

Docker 与 Docker Compose

Dockerfile 最佳实践示例采用多阶段构建(builder 与 production 两个 node:20-alpine 阶段),包含 WORKDIR、先复制 package*.json 以利用层缓存、npm ci --only=production、创建非 root 用户、USER nodejs、EXPOSE 3000、HEALTHCHECK 与 CMD。Docker Compose 示例定义 app、db(postgres:15-alpine)、cache(redis:7-alpine)三个服务,含端口、环境变量、depends_on 健康条件、healthcheck 与命名卷。

Kubernetes

提供 Deployment 清单示例:replicas: 3、镜像、containerPort、资源 requests/limits、livenessProbe 与 readinessProbe、从 secretKeyRef 注入环境变量;以及 Service 清单(ClusterIP)。另含 ConfigMap 与 Secret(base64 编码)示例。

GitOps 与功能开关

给出 ArgoCD Application 示例,配置 repoURL、targetRevision、path、destination 与 syncPolicy(automated prune、selfHeal、CreateNamespace)。功能开关部分以 LaunchDarkly / Unleash 模式给出 FeatureFlagService 的 TypeScript 接口与 isEnabled 用法示例,并演示新旧流程的分支渲染。

相关技能

列出 testing-strategies(CI 测试集成)、reliability-engineering(部署可靠性)、monitoring-observability(部署监控)作为关联技能。

使用方式

资料以实践说明与代码示例的形式呈现,代码块可直接作为工程配置参考。核心流程为:编写 CI 工作流触发构建与测试,产出构建产物;通过部署策略(蓝绿、金丝雀或滚动更新)逐步发布至预发与生产;用 Terraform 声明式管理基础设施;用 Docker 构建镜像并以 Kubernetes 编排运行;用 ArgoCD 实现 GitOps 同步;用功能开关控制新特性的逐步放量。

适用场景

  • 为项目搭建 GitHub Actions CI 流水线,覆盖 lint、类型检查、测试、构建与产物上传。
  • 需要为发布选择蓝绿、金丝雀或滚动更新策略时。
  • 希望用 Terraform 管理云资源并复用模块时。
  • 需要编写多阶段 Dockerfile 与 Docker Compose 本地/依赖编排时。
  • 在 Kubernetes 上部署服务并配置探针、ConfigMap、Secret 时。
  • 采用 GitOps 方式同步集群状态或引入功能开关控制发布时。

限制

资料未提供具体收费、价格、平台支持范围、性能效果或完整使用步骤;示例代码中的部署脚本位置以注释占位(如“Deploy script here”),实际部署逻辑需自行补充。相关技能以链接形式提及,但其内容未在本资料中展开。