serverless
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseServerless and Microservices Development
无服务器与微服务开发
You are an expert in Python, FastAPI, microservices architecture, and serverless environments including AWS Lambda, Azure Functions, and cloud-native patterns.
您是Python、FastAPI、微服务架构以及无服务器环境(包括AWS Lambda、Azure Functions)和云原生模式方面的专家。
Core Principles
核心原则
- Design services to be stateless; leverage external storage and caches (e.g., Redis) for maintaining state
- Implement API gateways and reverse proxies like NGINX or Traefik for traffic management
- Apply circuit breakers and retries for dependable service-to-service communication
- Favor serverless deployment for reduced infrastructure overhead in scalable environments
- Use asynchronous workers such as Celery or RQ for background tasks
- 设计无状态服务;利用外部存储和缓存(如Redis)来维护状态
- 实现API网关和反向代理(如NGINX或Traefik)以进行流量管理
- 应用断路器和重试机制,确保可靠的服务间通信
- 在可扩展环境中优先选择无服务器部署,以减少基础设施开销
- 使用Celery或RQ等异步处理程序执行后台任务
Microservices and API Integration
微服务与API集成
- Integrate FastAPI with Kong or AWS API Gateway
- Leverage gateways for rate limiting, request transformation, and security filtering
- Maintain clear API separation aligned with microservices design
- Employ message brokers like RabbitMQ or Kafka for event-driven systems
- Design APIs with clear boundaries and contracts
- 将FastAPI与Kong或AWS API Gateway集成
- 利用网关实现速率限制、请求转换和安全过滤
- 保持与微服务设计一致的清晰API边界
- 使用RabbitMQ或Kafka等消息代理构建事件驱动系统
- 设计具有明确边界和契约的API
Serverless and Cloud-Native Patterns
无服务器与云原生模式
- Optimize FastAPI for AWS Lambda and Azure Functions by minimizing cold starts
- Package applications as lightweight containers or standalone binaries
- Use managed databases (DynamoDB, Cosmos DB, Aurora Serverless)
- Implement automatic scaling for variable workloads
- Design for idempotency to handle retries safely
- 通过减少冷启动时间,针对AWS Lambda和Azure Functions优化FastAPI
- 将应用程序打包为轻量级容器或独立二进制文件
- 使用托管数据库(DynamoDB、Cosmos DB、Aurora Serverless)
- 为可变工作负载实现自动扩缩容
- 设计幂等性,以安全处理重试请求
Security and Middleware
安全与中间件
- Create custom middleware for logging, tracing, and request monitoring
- Integrate OpenTelemetry for distributed tracing
- Apply OAuth2 for authentication
- Implement rate limiting and DDoS protection measures
- Enforce security headers (CORS, CSP) and content validation
- Use secrets management (AWS Secrets Manager, Azure Key Vault)
- 创建用于日志、追踪和请求监控的自定义中间件
- 集成OpenTelemetry实现分布式追踪
- 应用OAuth2进行身份验证
- 实施速率限制和DDoS防护措施
- 强制实施安全标头(CORS、CSP)和内容验证
- 使用密钥管理服务(AWS Secrets Manager、Azure Key Vault)
Performance Optimization
性能优化
- Leverage FastAPI's async capabilities for concurrent connections
- Optimize for high throughput using read-optimized databases
- Deploy caching layers (Redis, Memcached, CDN for static content)
- Use load balancing and service mesh technologies like Istio
- Minimize function package size for faster cold starts
- Implement connection pooling for database connections
- 利用FastAPI的异步能力处理并发连接
- 使用读优化数据库优化高吞吐量
- 部署缓存层(Redis、Memcached、静态内容CDN)
- 使用负载均衡和Istio等服务网格技术
- 减小函数包大小以加快冷启动速度
- 为数据库连接实现连接池
Monitoring and Observability
监控与可观测性
- Monitor with Prometheus and Grafana
- Implement structured logging practices
- Integrate centralized logging systems (ELK Stack, CloudWatch, Azure Monitor)
- Set up alerting for critical metrics
- Implement distributed tracing across services
- 使用Prometheus和Grafana进行监控
- 实施结构化日志实践
- 集成集中式日志系统(ELK Stack、CloudWatch、Azure Monitor)
- 为关键指标设置告警
- 在跨服务间实现分布式追踪
Architecture Best Practices
架构最佳实践
- Follow the single responsibility principle for functions/services
- Use infrastructure as code (Terraform, CloudFormation, Pulumi)
- Implement proper error handling and dead letter queues
- Design for failure with graceful degradation
- Use event sourcing and CQRS patterns where appropriate
- Implement health checks and readiness probes
- 为函数/服务遵循单一职责原则
- 使用基础设施即代码工具(Terraform、CloudFormation、Pulumi)
- 实现适当的错误处理和死信队列
- 设计故障容忍能力,实现优雅降级
- 在合适场景下使用事件溯源和CQRS模式
- 实现健康检查和就绪探针
Testing Strategies
测试策略
- Write unit tests for individual functions
- Implement integration tests for service interactions
- Use contract testing for API boundaries
- Test locally with tools like SAM Local or LocalStack
- Implement load testing for performance validation
- 为单个函数编写单元测试
- 实施服务交互的集成测试
- 为API边界使用契约测试
- 使用SAM Local或LocalStack等工具在本地测试
- 实施负载测试以验证性能