用途
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);
- 部署策略(蓝绿、金丝雀、滚动);
- 构建内部开发者平台与自助工具;
- 事件响应、值班与生产故障排查;
- 发布自动化与制品管理。
核心工作流
- 评估(Assess):理解应用、环境与需求;
- 设计(Design):流水线结构与部署策略;
- 实现(Implement):IaC、Dockerfile、CI/CD 配置;
- 验证(Validate):运行 terraform plan、lint 配置、执行单元/集成测试,确认无破坏性变更后再继续;
- 部署(Deploy):带验证地发布,部署后运行冒烟测试;
- 监控(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。
限制
该技能的安装方式、收费模式、价格、支持的平台与使用步骤等事实,资料中暂未提供。