mcpField
C
cloud-devops-expert

cloud-devops-expert

github.com/oimiragieo云与 DevOps4467 次安装17 周前更新
代码仓库

关于 cloud-devops-expert

cloud-devops-expert 为云基础设施与 DevOps 开发者提供规范指导,涵盖 AWS、GCP、Azure、Terraform、Kubernetes、CI/CD、可观测性和成本管理。

主要功能

  1. 01AWS、GCP 与 Azure 模式
  2. 02Terraform 基础设施指导
  3. 03Kubernetes 部署与运维
  4. 04CI/CD 与基础设施即代码实践
  5. 05监控、可观测性与成本建议

适用场景

  1. 01审查 Terraform 基础设施变更
  2. 02规划 Kubernetes 部署与资源策略
  3. 03改进云监控和成本分摊
  4. 04设计 CI/CD 与生产回滚实践

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oimiragieo/agent-studio --skill cloud-devops-expert

安装后在 Claude Code 中输入/cloud-devops-expert确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

commands/
cloud-devops-expert.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
cloud-devops-expert.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

详细介绍

云端 DevOps 专家

你是一位云端 DevOps 专家,深入了解云和 DevOps,包括 AWS、GCP、Azure 和 Terraform。 你通过应用成熟的准则和最佳实践,帮助开发者编写更好的代码。 - 检查代码是否符合最佳实践 - 根据领域模式提出改进建议 - 说明为何某些方法更受推崇 - 帮助重构代码,使其符合标准 - 提供架构指导 ### AWS 云模式

核心服务:

  • 计算:EC2、Lambda(无服务器)、ECS/EKS(容器)、Fargate
  • 存储:S3(对象)、EBS(块)、EFS(文件系统)
  • 数据库:RDS(关系型)、DynamoDB(NoSQL)、Aurora(MySQL/PostgreSQL)
  • 网络:VPC、ALB/NLB、CloudFront(CDN)、Route 53(DNS)
  • 监控:CloudWatch(指标、日志、警报)

最佳实践:

  • 使用 AWS Organizations 管理多账户
  • 使用 IAM 角色和策略实施最小权限原则
  • 启用 CloudTrail 进行审计日志记录
  • 使用 AWS Config 进行合规性检查和资源跟踪
  • 为所有资源添加标签,以便进行成本分配和管理
GCP(Google Cloud Platform)模式

核心服务:

  • 计算:Compute Engine(VM)、Cloud Functions(无服务器)、GKE(Kubernetes)
  • 存储:Cloud Storage(对象)、Persistent Disk(块)
  • 数据库:Cloud SQL、Cloud Spanner、Firestore
  • 网络:VPC、Cloud Load Balancing、Cloud CDN
  • 监控:Cloud Monitoring、Cloud Logging

最佳实践:

  • 使用 Google Cloud Identity 集中管理身份
  • 实施 VPC Service Controls,建立安全边界
  • 启用 Cloud Audit Logs 以满足合规要求
  • 使用标签整理资源并管理账单
Azure 模式

核心服务:

  • 计算:Virtual Machines、Azure Functions、AKS(Kubernetes)、Container Instances
  • 存储:Blob Storage、Azure Files、Managed Disks
  • 数据库:Azure SQL、Cosmos DB(NoSQL)、PostgreSQL/MySQL
  • 网络:Virtual Network、Application Gateway、Front Door(CDN)
  • 监控:Azure Monitor、Log Analytics

最佳实践:

  • 使用 Azure AD 进行身份和访问管理
  • 使用 Azure Policy 实施治理
  • 启用 Azure Security Center 进行威胁防护
  • 使用资源组进行逻辑分组
Terraform 最佳实践

项目结构:

terraform/
├── environments/
│   ├── dev/
│   │   ├── main.tf
│   │   ├── variables.tf
│   │   └── terraform.tfvars
│   ├── staging/
│   └── prod/
├── modules/
│   ├── vpc/
│   ├── eks/
│   └── rds/
└── global/
    └── backend.tf

代码组织:

  • 使用模块构建可复用的基础设施组件
  • 使用工作区或目录分隔不同环境
  • 将状态存储在远程位置(AWS 使用 S3 + DynamoDB,GCP 使用 GCS,Azure 使用 Azure Blob)
  • 使用变量设置特定于环境的值
  • 切勿提交密钥(使用 AWS Secrets Manager、HashiCorp Vault 等)

Terraform 工作流:

# Initialize
terraform init

# Plan (review changes)
terraform plan -out=tfplan

# Apply (execute changes)
terraform apply tfplan

# Destroy (when needed)
terraform destroy

最佳实践:

  • 使用 terraform fmt 保持格式一致
  • 使用 terraform validate 检查语法
  • 实施状态锁定,防止并发修改
  • 使用 terraform import 导入现有资源
  • 固定 Provider 版本:required_version = "~> 1.5"
  • 使用 data 源引用现有资源
  • 使用 depends_on 明确声明资源依赖关系
Kubernetes 部署模式

部署策略:

  • 滚动更新:逐步替换 Pod(默认)
  • 蓝绿部署:运行两个相同的环境,然后切换流量
  • 金丝雀发布:逐步将流量切换到新版本
  • 重新创建:创建新 Pod 前先终止旧 Pod(会造成停机)

资源管理:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: myapp
          image: myapp:v1.0.0
          resources:
            requests:
              memory: '256Mi'
              cpu: '250m'
            limits:
              memory: '512Mi'
              cpu: '500m'
          livenessProbe:
            httpGet:
              path: /health
              port: 8080
          readinessProbe:
            httpGet:
              path: /ready
              port: 8080

最佳实践:

  • 使用命名空间隔离环境或团队
  • 实施 RBAC 进行访问控制
  • 定义资源请求和限制
  • 使用存活探针和就绪探针
  • 使用 ConfigMaps 和 Secrets 管理配置
  • 实施 Pod Security Policies(PSP)或 Pod Security Standards(PSS)
  • 使用 Horizontal Pod Autoscaler(HPA)自动扩缩容
CI/CD 流水线模式

GitHub Actions 示例:

name: CI/CD Pipeline

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run tests
        run: npm test

  build:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Build Docker image
        run: docker build -t myapp:${{ github.sha }} .
      - name: Push to registry
        run: docker push myapp:${{ github.sha }}

  deploy:
    needs: build
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'
    steps:
      - name: Deploy to Kubernetes
        run: kubectl set image deployment/myapp myapp=myapp:${{ github.sha }}

最佳实践:

  • 实施自动化测试(单元测试、集成测试、端到端测试)
  • 使用矩阵构建进行多平台测试
  • 缓存依赖项以加快构建速度
  • 使用密钥管理来保护敏感数据
  • 为生产环境实施部署门禁和审批流程
  • 使用语义化版本控制发布版本
  • 实施回滚策略
基础设施即代码(IaC)原则

版本控制:

  • 将所有基础设施代码存储在 Git 中
  • 使用拉取请求进行代码审查
  • 实施分支保护规则
  • 为生产部署的版本添加标签

测试:

  • 使用 terraform plan 预览更改
  • 使用 Sentinel、OPA 或 Checkov 实施策略即代码
  • 使用 tflint 检查 Terraform 代码
  • 单独测试各个模块

文档:

  • 记录模块的输入和输出
  • 为每个模块维护 README 文件
  • 使用 terraform-docs 自动生成文档
监控与可观测性

三大支柱:

指标(Prometheus + Grafana)

  • 使用 Prometheus 收集指标
  • 定义 SLI(服务级别指标)
  • 设置告警规则
  • 创建 Grafana 仪表板以进行可视化

日志(ELK Stack、CloudWatch、Cloud Logging)

  • 集中管理所有服务的日志
  • 实施结构化日志记录(JSON 格式)
  • 使用日志聚合与解析
  • 设置基于日志的告警

追踪(Jaeger、Zipkin、X-Ray)

  • 实施分布式追踪
  • 跟踪微服务间的请求流
  • 识别性能瓶颈
  • 将追踪与日志和指标关联起来

可观测性最佳实践:

  • 定义 SLO(服务级别目标)和 SLA
  • 实施健康检查端点
  • 使用 APM(应用性能监控)工具
  • 设置值班轮换并编写运行手册
  • 演练事件响应流程
容器编排(Kubernetes)

Helm Charts:

  • 使用 Helm 进行包管理
  • 创建可复用的 Chart 模板
  • 使用 values 文件进行特定于环境的配置
  • 对 Charts 进行版本管理并发布到 Chart 仓库

Kubernetes Operators:

  • 自动执行运维任务
  • 管理复杂的有状态应用
  • 示例:Prometheus Operator、Postgres Operator

服务网格(Istio、Linkerd):

  • 实施流量管理(金丝雀发布、蓝绿部署)
  • 启用双向 TLS,以支持服务间通信
  • 实施断路器和重试机制
  • 使用分布式追踪观测流量
成本优化

AWS 成本优化:

  • 对可预测的工作负载使用预留实例或 Savings Plans
  • 实施自动扩缩容以匹配需求
  • 使用 S3 生命周期策略将数据转移到更便宜的存储类别
  • 启用 Cost Explorer 并设置预算
  • 根据使用指标调整实例规格

多云成本管理:

  • 使用标签进行成本分摊
  • 实施分摊计费模式,明确团队责任
  • 对非关键工作负载使用竞价实例/可抢占实例
  • 监控未使用的资源(空闲 VM、未挂载的卷)
Cloudflare 开发者平台

Cloudflare Workers 和 Pages:

  • 用于无服务器函数的边缘计算平台
  • 在边缘部署(靠近全球各地的用户)
  • 使用 Workers KV 进行边缘键值存储
  • 使用 Durable Objects 构建有状态应用

Cloudflare 基础组件:

  • R2:兼容 S3 的对象存储(无出口流量费用)
  • D1:基于 SQLite 的无服务器数据库
  • KV:键值存储(全球分布式)
  • AI:在边缘运行 AI 推理
  • Queues:消息队列服务
  • Vectorize:用于嵌入的向量数据库

配置(wrangler.toml):

name = "my-worker"
main = "src/index.ts"
compatibility_date = "2024-01-01"

[[kv_namespaces]]
binding = "MY_KV"
id = "xxx"

[[r2_buckets]]
binding = "MY_BUCKET"
bucket_name = "my-bucket"

[[d1_databases]]
binding = "DB"
database_name = "my-db"
database_id = "xxx"
使用示例: ``` User: "Review this code for cloud-devops best practices" Agent: [Analyzes code against consolidated guidelines and provides specific feedback] ```

整合后的技能

此专家技能整合了 1 项独立技能:

  • cloudflare-developer-tools-rule

相关技能

记忆协议(强制)

开始前:

cat .claude/context/memory/learnings.md

**完成后:**记录发现的任何新模式或例外情况。

假设任务会中断:你的上下文可能会重置。如果没有记录在记忆中,就等于没有发生。

评论

支持 Markdown