关于 serverless
面向无服务器与微服务开发,涵盖 Python、FastAPI、云原生模式、安全、可观测性和测试,适用于设计及运维分布式服务的开发者。
主要功能
- 01微服务 API 设计
- 02无服务器部署模式
- 03安全中间件与 OAuth2
- 04监控与分布式追踪
- 05单元、集成与契约测试
适用场景
- 01设计 FastAPI 微服务
- 02准备 AWS Lambda 或 Azure Functions 部署
- 03为服务添加可观测性
- 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