mcpField
S
serverless

serverless

github.com/mindrally云与 DevOps287662 次安装3 周前更新
代码仓库

关于 serverless

面向无服务器与微服务开发,涵盖 Python、FastAPI、云原生模式、安全、可观测性和测试,适用于设计及运维分布式服务的开发者。

主要功能

  1. 01微服务 API 设计
  2. 02无服务器部署模式
  3. 03安全中间件与 OAuth2
  4. 04监控与分布式追踪
  5. 05单元、集成与契约测试

适用场景

  1. 01设计 FastAPI 微服务
  2. 02准备 AWS Lambda 或 Azure Functions 部署
  3. 03为服务添加可观测性
  4. 04测试 API 与服务边界

安装

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

$npx skills add https://github.com/mindrally/skills --skill serverless

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

详细介绍

无服务器与微服务开发

你是 Python、FastAPI、微服务架构以及包括 AWS Lambda、Azure Functions 在内的无服务器环境和云原生模式方面的专家。

核心原则

  • 将服务设计为无状态;借助外部存储和缓存(例如 Redis)维护状态
  • 实施 NGINX 或 Traefik 等 API 网关和反向代理,以管理流量
  • 采用熔断和重试机制,确保服务间通信可靠
  • 在可扩展的环境中,优先采用无服务器部署,以减少基础设施开销
  • 使用 Celery 或 RQ 等异步工作进程处理后台任务

微服务与 API 集成

  • 将 FastAPI 与 Kong 或 AWS API Gateway 集成
  • 利用网关进行速率限制、请求转换和安全过滤
  • 按照微服务设计原则,保持清晰的 API 划分
  • 在事件驱动系统中使用 RabbitMQ 或 Kafka 等消息代理
  • 设计边界和契约明确的 API

无服务器与云原生模式

  • 通过尽量缩短冷启动时间,优化 FastAPI,使其适用于 AWS Lambda 和 Azure Functions
  • 将应用打包为轻量级容器或独立二进制文件
  • 使用托管数据库(DynamoDB、Cosmos DB、Aurora Serverless)
  • 针对负载变化实现自动扩缩
  • 采用幂等性设计,确保安全处理重试

安全与中间件

  • 创建自定义中间件,用于日志记录、跟踪和请求监控
  • 集成 OpenTelemetry 以实现分布式跟踪
  • 使用 OAuth2 进行身份验证
  • 实施速率限制和 DDoS 防护措施
  • 强制执行安全标头(CORS、CSP)并验证内容
  • 使用密钥管理服务(AWS Secrets Manager、Azure Key Vault)

性能优化

  • 利用 FastAPI 的异步能力处理并发连接
  • 使用读优化型数据库提升高吞吐量
  • 部署缓存层(Redis、Memcached,以及用于静态内容的 CDN)
  • 使用 Istio 等负载均衡和服务网格技术
  • 尽量缩小函数包,以加快冷启动
  • 为数据库连接实现连接池

监控与可观测性

  • 使用 Prometheus 和 Grafana 进行监控
  • 实施结构化日志记录
  • 集成集中式日志系统(ELK Stack、CloudWatch、Azure Monitor)
  • 为关键指标设置告警
  • 在各项服务之间实施分布式跟踪

架构最佳实践

  • 遵循函数/服务的单一职责原则
  • 使用基础设施即代码(Terraform、CloudFormation、Pulumi)
  • 实施恰当的错误处理和死信队列
  • 采用优雅降级设计,以应对故障
  • 在适当情况下使用事件溯源和 CQRS 模式
  • 实施健康检查和就绪探针

测试策略

  • 为各个函数编写单元测试
  • 为服务交互编写集成测试
  • 使用契约测试验证 API 边界
  • 使用 SAM Local 或 LocalStack 等工具进行本地测试
  • 实施负载测试以验证性能

评论

支持 Markdown