mcpField
I
infra-engineer

infra-engineer

github.com/samhvw8云与 DevOps15139 次安装今天更新
代码仓库

关于 infra-engineer

infra-engineer 是面向基础设施工程师的实践指南,涵盖多云平台、DevOps、安全与成本管理。它通过主题参考文档、操作示例和工作流支持常见基础设施任务。

主要功能

  1. 01多云平台部署指南
  2. 02Kubernetes 与 Docker 指南
  3. 03CI/CD 与 GitOps 工作流
  4. 04FinOps 成本优化参考
  5. 05DevSecOps 与 IaC 资料
  6. 06监控与可观测性实践

适用场景

  1. 01规划 AWS、Azure 或 GCP 部署
  2. 02构建 Kubernetes 集群与容器应用
  3. 03设置 CI/CD 或 GitOps 流水线
  4. 04审查云成本与安全实践

安装

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

$npx skills add https://github.com/samhvw8/dotfiles --skill infra-engineer

安装后在 Claude Code 中输入/infra-engineer确认已加载。

包含的文件

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

.env.example
references/
aws-overview.md
browser-rendering.md
cicd-github-actions.md
cloudflare-d1-kv.md
cloudflare-platform.md
cloudflare-r2-storage.md
cloudflare-workers-advanced.md
cloudflare-workers-apis.md
cloudflare-workers-basics.md
devsecops-basics.md
docker-basics.md
docker-compose.md
finops-basics.md
gcloud-platform.md
gcloud-services.md
kubernetes-basics.md
scripts/
cloudflare_deploy.py
docker_optimize.py
requirements.txt
scripts/tests/
requirements.txt
test_cloudflare_deploy.py
test_docker_optimize.py

详细介绍

基础设施工程技能

全面的现代基础设施工程指南,涵盖 DevOps 实践、多云平台(AWS、Azure、GCP、Cloudflare)、FinOps 成本优化和 DevSecOps 安全实践。

何时使用此技能

在以下情况使用此技能:

  • DevOps:搭建 CI/CD 流水线(GitHub Actions、GitLab CI、Jenkins),实施 GitOps 工作流(ArgoCD、Flux)
  • AWS:部署到 EC2、Lambda、ECS、EKS,管理 S3、RDS,使用 CloudFormation/CDK
  • Azure:使用 Azure VM、App Service、AKS、Azure Functions、Storage Accounts
  • GCP:管理 Compute Engine、GKE、Cloud Run、Cloud Storage、App Engine
  • Cloudflare:部署 Workers、R2 存储、D1 数据库、Pages 应用
  • Kubernetes:管理集群、部署、服务、入口、Helm chart、运算符
  • Docker:将应用容器化、使用多阶段构建、Docker Compose、镜像仓库
  • FinOps:分析云成本、优化支出、预留实例、竞价实例、调整资源规格
  • DevSecOps:安全扫描(SAST/DAST)、漏洞管理、密钥管理、合规
  • IaC:Terraform、CloudFormation、Pulumi、配置管理
  • 监控:搭建可观测性、日志、指标、告警、分布式追踪

平台选择指南

何时使用 AWS

最适合:

  • 大规模通用云计算
  • 拥有 200 多项服务的成熟生态系统
  • 有合规要求的企业工作负载
  • 借助 AWS Outposts 实现混合云
  • 广泛的第三方集成
  • 高级网络和安全控制

主要服务:

  • EC2(虚拟机、灵活计算)
  • Lambda(无服务器函数、事件驱动)
  • ECS/EKS(容器编排)
  • S3(对象存储、行业标准)
  • RDS(托管式关系数据库)
  • DynamoDB(NoSQL、全局表)
  • CloudFormation/CDK(基础设施即代码)
  • IAM(身份和访问管理)
  • VPC(虚拟私有云网络)

成本概况: 按需付费、预留实例(最高可享 72% 折扣)、节省计划、竞价实例(最高可享 90% 折扣)

何时使用 Azure

最适合:

  • 以 Microsoft 技术为核心的组织(.NET、Active Directory)
  • 混合云场景(Azure Arc、Stack)
  • 与 Microsoft 签订企业协议的组织
  • Windows Server 和 SQL Server 工作负载
  • 与 Microsoft 365 和 Dynamics 集成
  • 完备的合规认证(90 多项认证)

主要服务:

  • Virtual Machines(Windows/Linux 计算)
  • App Service(用于 Web 应用的 PaaS)
  • AKS(托管式 Kubernetes)
  • Azure Functions(无服务器计算)
  • Storage Accounts(Blob、File、Queue、Table)
  • SQL Database(托管式 SQL Server)
  • Active Directory(身份管理)
  • ARM Templates/Bicep(基础设施即代码)

成本概况: 按需付费、预留实例,Windows/SQL Server 许可证可享 Azure Hybrid Benefit

何时使用 Cloudflare

最适合:

  • 面向边缘、全球分发的应用
  • 超低延迟要求(<50ms)
  • 配备无服务器函数的静态站点
  • 无出口流量费用场景(R2 存储)
  • WebSocket/实时应用(Durable Objects)
  • 边缘 AI/ML(Workers AI)

主要产品:

  • Workers(无服务器函数)
  • R2(对象存储,兼容 S3)
  • D1(支持全球复制的 SQLite 数据库)
  • KV(键值存储)
  • Pages(静态托管 + 函数)
  • Durable Objects(有状态计算)
  • Browser Rendering(无头浏览器自动化)

成本概况: 按请求付费、宽裕的免费套餐、零出口流量费用

何时使用 Kubernetes

适用场景:

  • 大规模容器编排
  • 拥有 10 个以上服务的微服务架构
  • 多云和混合部署
  • 具备自我修复和自动扩缩容能力的工作负载
  • 复杂的部署策略(蓝绿部署、金丝雀发布)
  • 服务网格架构(Istio、Linkerd)
  • 配备 Operator 的有状态应用

主要功能:

  • 声明式配置(YAML 清单)
  • 自动滚动更新和回滚
  • 服务发现和负载均衡
  • 自我修复(重启失败的容器)
  • Pod 水平自动扩缩容
  • 密钥和配置管理
  • 存储编排
  • 批处理任务执行

托管选项: EKS(AWS)、AKS(Azure)、GKE(GCP)、托管 k8s 服务提供商

成本概况: 集群管理费用 + 节点成本(可通过使用竞价实例和集群自动扩缩容进行优化)

何时使用 Docker

适用场景:

  • 保持本地开发环境一致
  • 微服务架构
  • 多语言技术栈应用
  • 传统 VPS/VM 部署
  • 作为 Kubernetes 工作负载的基础
  • CI/CD 构建环境
  • 数据库容器化(开发/测试)

主要功能:

  • 应用隔离和可移植性
  • 通过多阶段构建进行优化
  • 使用 Docker Compose 管理多容器应用
  • 使用卷管理实现数据持久化
  • 网络配置和服务发现
  • 跨平台兼容性(amd64、arm64)
  • 使用 BuildKit 提升构建性能

成本概况: 仅需基础设施成本(计算 + 存储),无编排开销

何时使用 Google Cloud

适用场景:

  • 企业级应用
  • 数据分析和 ML 流水线(BigQuery、Vertex AI)
  • 混合/多云部署
  • 大规模 Kubernetes(GKE)
  • 托管数据库(Cloud SQL、Firestore、Spanner)
  • 复杂的 IAM 和合规要求

主要服务:

  • Compute Engine(VM)
  • GKE(托管 Kubernetes)
  • Cloud Run(容器化无服务器服务)
  • App Engine(PaaS)
  • Cloud Storage(对象存储)
  • Cloud SQL(托管数据库)

成本概况: 定价方式多样,提供持续使用折扣和承诺使用合约

快速入门

AWS Lambda 函数
# Install AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip && sudo ./aws/install

# Configure credentials
aws configure

# Create Lambda function with SAM
sam init --runtime python3.11
sam build && sam deploy --guided

参见:references/aws-lambda.md

AWS EKS Kubernetes 集群
# Install eksctl
brew install eksctl  # or curl download

# Create cluster
eksctl create cluster \
  --name my-cluster \
  --region us-west-2 \
  --nodegroup-name standard-workers \
  --node-type t3.medium \
  --nodes 3 \
  --nodes-min 1 \
  --nodes-max 4

参见:references/kubernetes-basics.md

Azure 部署
# Install Azure CLI
curl -L https://aka.ms/InstallAzureCli | bash

# Login and create resources
az login
az group create --name myResourceGroup --location eastus
az webapp create --resource-group myResourceGroup \
  --name myapp --runtime "NODE:18-lts"

参见:references/azure-basics.md

Cloudflare Workers
# Install Wrangler CLI
npm install -g wrangler

# Create and deploy Worker
wrangler init my-worker
cd my-worker
wrangler deploy

参见:references/cloudflare-workers-basics.md

Kubernetes 部署
# Create deployment
kubectl create deployment nginx --image=nginx:latest
kubectl expose deployment nginx --port=80 --type=LoadBalancer

# Apply from manifest
kubectl apply -f deployment.yaml

# Check status
kubectl get pods,services,deployments

参见:references/kubernetes-basics.md

Docker 容器
# Create Dockerfile
cat > Dockerfile <<EOF
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
EOF

# Build and run
docker build -t myapp .
docker run -p 3000:3000 myapp

参见:references/docker-basics.md

参考导航

AWS(Amazon Web Services)
  • aws-overview.md - AWS 基础知识、账户设置、IAM 基础
  • aws-ec2.md - EC2 实例、AMI、安全组、自动扩缩容
  • aws-lambda.md - 无服务器函数、SAM、事件源、层
  • aws-ecs-eks.md - 容器编排、ECS 与 EKS 对比、Fargate
  • aws-s3-rds.md - S3 存储、RDS 数据库、备份策略
  • aws-cloudformation.md - 基础设施即代码、CDK、最佳实践
  • aws-networking.md - VPC、子网、安全组、负载均衡器
Azure(Microsoft Azure)
  • azure-basics.md - Azure 基础知识、订阅、资源组
  • azure-compute.md - VM、App Service、AKS、Azure Functions
  • azure-storage.md - Storage Accounts、Blob、Files、托管磁盘
Cloudflare 平台
  • cloudflare-platform.md - 边缘计算概览、核心组件
  • cloudflare-workers-basics.md - 入门指南、处理程序类型、基本模式
  • cloudflare-workers-advanced.md - 高级模式、性能、优化
  • cloudflare-workers-apis.md - 运行时 API、绑定、集成
  • cloudflare-r2-storage.md - R2 对象存储、S3 兼容性、最佳实践
  • cloudflare-d1-kv.md - D1 SQLite 数据库、KV 存储、使用场景
  • browser-rendering.md - 在 Cloudflare 上使用 Puppeteer/Playwright 进行自动化
Kubernetes 与容器编排
  • kubernetes-basics.md - 核心概念、Pod、部署、服务
  • kubernetes-advanced.md - StatefulSet、运算符、自定义资源
  • kubernetes-networking.md - Ingress、服务网格、网络策略
  • helm-charts.md - 包管理、Chart、仓库
Docker 容器化
  • docker-basics.md - 核心概念、Dockerfile、镜像、容器
  • docker-compose.md - 多容器应用、网络、卷
  • docker-security.md - 镜像扫描、密钥、最佳实践
Google Cloud Platform
  • gcloud-platform.md - GCP 概览、gcloud CLI、身份验证
  • gcloud-services.md - Compute Engine、GKE、Cloud Run、App Engine
CI/CD 与 GitOps
  • cicd-github-actions.md - GitHub Actions 工作流、运行器、密钥
  • cicd-gitlab.md - GitLab CI/CD 流水线、制品、缓存
  • gitops-argocd.md - ArgoCD 设置、应用套应用模式、同步策略
  • gitops-flux.md - Flux 控制器、GitOps 工具包、多租户
FinOps(成本优化)
  • finops-basics.md - 成本优化原则、FinOps 生命周期
  • finops-aws.md - AWS 成本优化、RI、Savings Plans、Spot
  • finops-azure.md - Azure 成本管理、预留实例、混合权益
  • finops-gcp.md - GCP 成本优化、承诺使用、持续使用
  • finops-tools.md - 成本分析工具、Kubecost、CloudHealth、Infracost
DevSecOps(安全)
  • devsecops-basics.md - 安全最佳实践、安全左移
  • devsecops-scanning.md - SAST、DAST、SCA、容器扫描
  • secrets-management.md - Vault、AWS Secrets Manager、密封密钥
  • compliance.md - SOC2、HIPAA、PCI-DSS、审计日志
基础设施即代码
  • terraform-basics.md - Terraform 基础知识、提供程序、状态
  • terraform-advanced.md - 模块、工作区、远程状态
  • cloudformation-basics.md - CloudFormation 模板、堆栈、更改集
实用工具与脚本
  • scripts/cloudflare-deploy.py - 自动部署 Cloudflare Worker
  • scripts/docker-optimize.py - 分析并优化 Dockerfile
  • scripts/cost-analyzer.py - 云成本分析与报告
  • scripts/security-scanner.py - 自动化安全扫描

常见工作流

多云架构
# Edge Layer: Cloudflare Workers (global routing, caching)
# Compute Layer: AWS ECS/Lambda or Azure App Service (application logic)
# Data Layer: AWS RDS or Azure SQL (persistent storage)
# CDN/Storage: Cloudflare R2 or AWS S3 (static assets)

Benefits:
- Best-of-breed services per layer
- Geographic redundancy
- Cost optimization across providers
使用 CI/CD 部署 AWS ECS
# GitHub Actions workflow
name: Deploy to ECS
on: push
jobs:
  deploy:
    - Build Docker image
    - Push to ECR
    - Update ECS task definition
    - Deploy to ECS service
    - Wait for deployment stabilization
使用 ArgoCD 实现 Kubernetes GitOps
# Git repository structure
/apps
  /production
    - deployment.yaml
    - service.yaml
    - ingress.yaml
  /staging
    - deployment.yaml

# ArgoCD syncs cluster state from Git
# Changes: Git commit → ArgoCD detects → Auto-sync to cluster
多阶段 Docker 构建
# Build stage
FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# Production stage
FROM node:20-alpine
WORKDIR /app
COPY --from=build /app/dist ./dist
COPY --from=build /app/node_modules ./node_modules
USER node
CMD ["node", "dist/server.js"]
FinOps 成本优化工作流
# 1. Discovery: Identify untagged resources
# 2. Analysis: Right-size instances (CPU/memory utilization)
# 3. Optimization:
#    - Convert to reserved instances (predictable workloads)
#    - Use spot instances (fault-tolerant workloads)
#    - Schedule start/stop (dev environments)
# 4. Monitoring: Set budget alerts, track savings
# 5. Governance: Enforce tagging policies
DevSecOps 安全流水线
# 1. Code Commit
# 2. SAST Scan: SonarQube, Semgrep (static code analysis)
# 3. Dependency Check: Snyk, Trivy (vulnerability scanning)
# 4. Build: Docker image
# 5. Container Scan: Trivy, Grype (image vulnerabilities)
# 6. DAST Scan: OWASP ZAP (runtime security testing)
# 7. Deploy: Only if all scans pass
# 8. Runtime Protection: Falco, AWS GuardDuty
Terraform 基础设施部署
# 1. Write: Define infrastructure in .tf files
# 2. Init: terraform init (download providers)
# 3. Plan: terraform plan (preview changes)
# 4. Apply: terraform apply (create/update resources)
# 5. State: Store state in S3 with DynamoDB locking
# 6. Modules: Reuse common patterns across environments

最佳实践

DevOps
  • CI/CD:自动化测试和部署,使用功能开关逐步发布
  • GitOps:声明式基础设施、将 Git 作为唯一事实来源、自动同步
  • 监控:实现可观测性(日志、指标、追踪),设置告警
  • 事件管理:运行手册、事后复盘、无责文化
  • 自动化:基础设施即代码、配置管理、自助服务平台
安全(DevSecOps)
  • 安全左移:在流水线早期进行安全扫描(SAST、依赖项检查)
  • 密钥管理:使用 Vault、AWS Secrets Manager 或密封密钥(绝不存放在代码或 Git 中)
  • 容器安全:以非 root 用户运行、使用精简基础镜像、定期扫描
  • 网络安全:零信任架构、服务网格、网络策略
  • 访问控制:遵循最小权限原则的 IAM、MFA、临时凭证
  • 合规性:审计日志、静态与传输加密、定期安全审查
  • 运行时防护:安全监控、入侵检测、自动响应
成本优化(FinOps)
  • 标记:强制为资源添加标记,以便分摊和跟踪成本
  • 调整规格:分析资源利用率,缩减配置过高的资源
  • 预留容量:为工作负载可预测的场景购买 RI/Savings Plans(最高可享 72% 折扣)
  • Spot/可抢占实例:用于容错工作负载(最高可享 90% 折扣)
  • 计划调度:非工作时间自动停止开发/测试环境
  • 存储优化:设置生命周期策略,将数据归档到成本更低的存储层,并删除孤立资源
  • 监控:预算警报、成本异常检测、成本分摊/展示
  • 治理:为高成本资源设置审批工作流,管理配额
Kubernetes
  • 资源管理:设置请求和限制,使用水平 Pod 自动扩缩
  • 高可用性:多可用区集群、Pod 中断预算、反亲和规则
  • 安全性:RBAC、Pod 安全策略、网络策略、准入控制器
  • 可观测性:Prometheus 指标、分布式跟踪、集中式日志记录
  • GitOps:使用 ArgoCD/Flux 进行声明式部署,自动纠正配置偏差
性能
  • 计算:自动扩缩、负载均衡、使用多区域以降低延迟
  • 缓存:CDN、内存缓存(Redis/Memcached)、边缘计算
  • 存储:选择合适的存储层(SSD 或 HDD)、启用缓存,并使用 CDN 提供静态资源
  • 容器:多阶段构建、精简镜像、层缓存
  • 数据库:连接池、只读副本、查询优化、索引
开发
  • 本地开发:使用 Docker Compose 确保环境一致,并使用开发容器
  • 测试:在 CI/CD 流水线中运行单元、集成和端到端测试
  • 基础设施即代码:使用 Terraform/CloudFormation 确保可重复性
  • 文档:架构图、运行手册、API 文档
  • 版本控制:使用 Git 管理代码和基础设施,并采用语义化版本

决策矩阵

需求选择
计算
全球延迟低于 50msCloudflare Workers
无服务器函数(AWS 生态系统)AWS Lambda
无服务器函数(Azure 生态系统)Azure Functions
容器化工作负载(托管式)AWS ECS/Fargate、Azure AKS、GCP Cloud Run
大规模 KubernetesAWS EKS、Azure AKS、GCP GKE
完全掌控的虚拟机AWS EC2、Azure VMs、GCP Compute Engine
存储
对象存储(兼容 S3)AWS S3、Cloudflare R2(零出口流量费用)、Azure Blob
虚拟机块存储AWS EBS、Azure Managed Disks、GCP Persistent Disk
文件存储(NFS/SMB)AWS EFS、Azure Files、GCP Filestore
数据库
托管 SQL(AWS)AWS RDS(PostgreSQL、MySQL、SQL Server)
托管 SQL(Azure)Azure SQL Database
托管 SQL(GCP)Cloud SQL
NoSQL 键值存储AWS DynamoDB、Azure Cosmos DB、Cloudflare KV
全球 SQL(边缘读取)Cloudflare D1、AWS Aurora Global
CI/CD 与 GitOps
与 GitHub 集成的 CI/CDGitHub Actions
自托管 CI/CDGitLab CI/CD、Jenkins
Kubernetes GitOpsArgoCD、Flux
成本优化
工作负载可预测Reserved Instances、Savings Plans
容错工作负载Spot Instances(AWS)、Preemptible VMs(GCP)
开发/测试环境自动调度、预算警报
安全性
密钥管理HashiCorp Vault、AWS Secrets Manager、Azure Key Vault
容器扫描Trivy、Snyk、AWS ECR scanning
SAST/DASTSonarQube、Semgrep、OWASP ZAP
特殊用例
静态站点 + 边缘函数Cloudflare Pages、AWS Amplify
WebSocket/实时通信Cloudflare Durable Objects、AWS API Gateway WebSocket
ML/AI 流水线AWS SageMaker、GCP Vertex AI、Azure ML
浏览器自动化Cloudflare Browser Rendering、AWS Lambda + Puppeteer

资源

云服务提供商
容器与编排
CI/CD 与 GitOps
基础设施即代码
安全与合规
FinOps 与成本优化

实施清单

AWS Lambda 部署
  • 安装 AWS CLI 和 SAM CLI
  • 配置 AWS 凭证(访问密钥、秘密密钥)
  • 使用 SAM 模板创建 Lambda 函数
  • 配置 IAM 角色和策略
  • 使用 sam local invoke 在本地测试
  • 使用 sam deploy 部署
  • 设置 CloudWatch 监控和警报
AWS EKS Kubernetes 集群
  • 安装 kubectl、eksctl、aws-cli
  • 配置 AWS 凭证
  • 使用 eksctl 创建 EKS 集群
  • 配置 kubectl 上下文
  • 安装集群自动扩缩器
  • 设置 Helm 进行包管理
  • 使用 kubectl/Helm 部署应用
  • 配置入口控制器(ALB/NGINX)
Azure 部署
  • 安装 Azure CLI
  • 使用 az login 登录
  • 创建资源组
  • 部署 App Service 或 AKS
  • 配置持续部署
  • 使用 Application Insights 设置监控
在任意云平台上运行 Kubernetes
  • 安装 kubectl 和 helm
  • 连接到集群(更新 kubeconfig)
  • 为各环境创建命名空间
  • 应用 RBAC 策略
  • 部署应用(部署、服务)
  • 配置入口以供外部访问
  • 设置监控(Prometheus、Grafana)
  • 使用 ArgoCD/Flux 实施 GitOps
CI/CD 流水线(GitHub Actions)
  • 创建 .github/workflows/deploy.yml
  • 配置机密(云凭证、API 密钥)
  • 添加构建和测试作业
  • 添加容器构建并推送到镜像仓库
  • 添加部署到云平台的作业
  • 设置分支保护规则
  • 启用状态检查和通知
FinOps 成本优化
  • 实施资源标记策略
  • 启用成本分配标签
  • 设置预算警报
  • 分析资源利用率(CloudWatch、Azure Monitor)
  • 找出调整资源规格的机会
  • 为负载可预测的工作负载购买预留实例
  • 配置自动扩缩和调度
  • 定期进行成本审查和优化
DevSecOps 安全
  • 在 CI/CD 中添加 SAST 扫描(SonarQube、Semgrep)
  • 添加依赖项扫描(Snyk、Trivy)
  • 实施容器镜像扫描
  • 设置机密管理(Vault、云服务提供商)
  • 配置安全组和网络策略
  • 启用审计日志记录
  • 实施安全监控和警报
  • 定期进行漏洞评估
Cloudflare Workers
  • 安装 Wrangler CLI
  • 创建 Worker 项目
  • 配置 wrangler.toml(绑定、路由)
  • 使用 wrangler dev 在本地测试
  • 使用 wrangler deploy 部署
Docker
  • 编写采用多阶段构建的 Dockerfile
  • 创建 .dockerignore 文件
  • 在本地测试构建
  • 推送到镜像仓库(ECR、ACR、GCR、Docker Hub)
  • 部署到目标平台

评论

支持 Markdown