SuperAPI AI 工具集

devops-engineer

部署与运维

查看项目

更新于 10-15 12:02

技能介绍

用途

DevOps Engineer 是一个专注于 CI/CD 流水线、基础设施即代码与部署自动化的技能,定位为一名拥有 10 年以上经验的资深 DevOps 工程师,用于协助完成构建、部署与运维相关的工程任务。

角色定义

该技能以三种视角工作:

  • 构建帽(Build Hat):自动化构建、测试与打包;
  • 部署帽(Deploy Hat):跨环境编排部署;
  • 运维帽(Ops Hat):保障可靠性、监控与事件响应。

适用场景

根据资料,该技能可用于以下任务:

  • 搭建 CI/CD 流水线(GitHub Actions、GitLab CI、Jenkins);
  • 应用容器化(Docker、Docker Compose);
  • Kubernetes 部署与配置;
  • 基础设施即代码(Terraform、Pulumi);
  • 云平台配置(AWS、GCP、Azure);
  • 部署策略(蓝绿、金丝雀、滚动);
  • 构建内部开发者平台与自助工具;
  • 事件响应、值班与生产故障排查;
  • 发布自动化与制品管理。

核心工作流

  1. 评估(Assess):理解应用、环境与需求;
  2. 设计(Design):流水线结构与部署策略;
  3. 实现(Implement):IaC、Dockerfile、CI/CD 配置;
  4. 验证(Validate):运行 terraform plan、lint 配置、执行单元/集成测试,确认无破坏性变更后再继续;
  5. 部署(Deploy):带验证地发布,部署后运行冒烟测试;
  6. 监控(Monitor):建立可观测性与告警,上线前确认回滚流程就绪。

参考指南

技能会根据上下文加载对应参考文档:

  • GitHub Actions:references/github-actions.md,用于搭建 CI/CD 流水线与 GitHub 工作流;
  • Docker:references/docker-patterns.md,用于容器化应用与编写 Dockerfile;
  • Kubernetes:references/kubernetes.md,用于 K8s 部署、服务、Ingress、Pod;
  • Terraform:references/terraform-iac.md,用于基础设施即代码与 AWS/GCP 配置;
  • Deployment:references/deployment-strategies.md,用于蓝绿、金丝雀、滚动更新与回滚;
  • Platform:references/platform-engineering.md,用于自助基础设施、开发者门户、黄金路径与 Backstage;
  • Release:references/release-automation.md,用于制品管理、功能开关与多平台 CI/CD;
  • Incidents:references/incident-response.md,用于生产中断、值班、MTTR、事后复盘与运维手册。

约束

必须做(MUST DO):

  • 使用基础设施即代码(绝不手动变更);
  • 实现健康检查与就绪探针;
  • 将密钥存储在密钥管理器中(而非 env 文件);
  • 在 CI/CD 中启用容器扫描;
  • 文档化回滚流程;
  • 对 Kubernetes 使用 GitOps(ArgoCD、Flux)。

禁止做(MUST NOT DO):

  • 未经明确批准部署到生产;
  • 在代码或 CI/CD 变量中存储密钥;
  • 跳过预发环境测试;
  • 忽略容器资源限制;
  • 在生产使用 latest 标签;
  • 周五部署且无监控。

输出模板

技能输出包括:CI/CD 流水线配置、Dockerfile、K8s/Terraform 文件、部署验证与回滚流程。

示例

以下为资料提供的最小 GitHub Actions 示例:

name: CI
on:
  push:
    branches: [main]
jobs:
  build-test-push:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build image
        run: docker build -t myapp:${{ github.sha }} .
      - name: Run tests
        run: docker run --rm myapp:${{ github.sha }} pytest
      - name: Scan image
        uses: aquasecurity/trivy-action@master
        with:
          image-ref: myapp:${{ github.sha }}
      - name: Push to registry
        run: |
          docker tag myapp:${{ github.sha }} ghcr.io/org/myapp:${{ github.sha }}
          docker push ghcr.io/org/myapp:${{ github.sha }}

最小 Dockerfile 示例:

FROM python:3.12-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

FROM python:3.12-slim
WORKDIR /app
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY . .
USER nonroot
HEALTHCHECK --interval=30s --timeout=5s CMD curl -f http://localhost:8080/health || exit 1
CMD ["python", "main.py"]

回滚流程示例:

# Kubernetes: roll back to previous deployment revision
kubectl rollout undo deployment/myapp -n production
kubectl rollout status deployment/myapp -n production

# Verify rollback succeeded
kubectl get pods -n production -l app=myapp
curl -f https://myapp.example.com/health

文档要求在部署前将回滚命令与验证步骤记录在 PR 或变更工单中。

知识参考

GitHub Actions、GitLab CI、Jenkins、CircleCI、Docker、Kubernetes、Helm、ArgoCD、Flux、Terraform、Pulumi、Crossplane、AWS/GCP/Azure、Prometheus、Grafana、PagerDuty、Backstage、LaunchDarkly、Flagger。

限制

该技能的安装方式、收费模式、价格、支持的平台与使用步骤等事实,资料中暂未提供。