关于 cloud-devops-expert
cloud-devops-expert 为云基础设施与 DevOps 开发者提供规范指导,涵盖 AWS、GCP、Azure、Terraform、Kubernetes、CI/CD、可观测性和成本管理。
主要功能
- 01AWS、GCP 与 Azure 模式
- 02Terraform 基础设施指导
- 03Kubernetes 部署与运维
- 04CI/CD 与基础设施即代码实践
- 05监控、可观测性与成本建议
适用场景
- 01审查 Terraform 基础设施变更
- 02规划 Kubernetes 部署与资源策略
- 03改进云监控和成本分摊
- 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.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/cloud-devops-expert.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/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
相关技能
docker-compose- 容器编排和多容器应用管理
记忆协议(强制)
开始前:
cat .claude/context/memory/learnings.md
**完成后:**记录发现的任何新模式或例外情况。
假设任务会中断:你的上下文可能会重置。如果没有记录在记忆中,就等于没有发生。
评论
支持 Markdown