Configuración de la directiva Prompt Word de Programación sin Servidor para Cursor

Consejos para Python, FastAPI y arquitectura de microservicios

Este tipword proporciona una guía para construir microservicios Python eficientes y escalables, centrándose en las mejores prácticas en torno a FastAPI, arquitecturas sin servidor y entornos nativos en la nube. El siguiente desglose paso a paso de cómo aprovechar estos puntos le ayudará a ponerse al día rápidamente.


1. Diseño sin estado con almacenamiento externo

  • Servicios sin EstadoLos servicios deben diseñarse para ser lo más apátridas posible y evitar depender del almacenamiento local. El almacenamiento externo (por ejemplo, Redis) se puede utilizar para persistir el estado.
    • finuraAlmacenamiento: Almacena todos los datos relacionados con el estado en una base de datos externa o caché, haciendo que el servicio sea fácilmente escalable y tolerante a fallos.

2. Pasarela API y proxy inverso

  • Pasarela APIUtiliza una pasarela de API (como Kong o AWS API Gateway) para gestionar el tráfico, limitar la velocidad, filtrar la seguridad, etc. entre microservicios.
    • finura: API Gateway no sólo mejora la seguridad de las API, sino que también gestiona las transformaciones de las solicitudes y permite una fácil agregación de servicios.
  • proxy inversoOptimización de la distribución de solicitudes mediante proxies inversos (p. ej., NGINX, Traefik) para mejorar el rendimiento del servicio.
    • finura: Combina pasarelas API y proxies inversos para optimizar la gestión del tráfico y proporcionar una capa adicional de seguridad a las arquitecturas de microservicios.

3. Tolerancia a fallos y comunicaciones de servicio

  • Disyuntor y mecanismo de reintentoMejora de la tolerancia a fallos de la comunicación entre servicios mediante el modo disyuntor y el mecanismo de reintento para garantizar la estabilidad del sistema.
    • finura: Utiliza estos mecanismos para hacer frente a fallos temporales del servicio y evitar caídas del sistema.
  • agente de mensajesUtilizar intermediarios de mensajes (p. ej., RabbitMQ, Kafka) para gestionar la comunicación basada en eventos entre microservicios.
    • finura: Para la notificación de eventos entre servicios, los proxies de mensajes son una alternativa más fiable que las llamadas síncronas, lo que contribuye a la escalabilidad y el desacoplamiento del sistema.

4. Despliegue sin servidor y modelos nativos de la nube

  • Optimización sin servidor FastAPI: Para reducir los tiempos de arranque en frío, las aplicaciones FastAPI deben optimizarse al máximo, especialmente en entornos sin servidor (por ejemplo, AWS Lambda, Azure Functions).
    • finuraUtiliza contenedores ligeros o empaqueta aplicaciones como binarios independientes para acelerar el arranque.
  • Autoexpansión: Utilice el autoescalado de funciones sin servidor para ajustar dinámicamente los recursos en escenarios con grandes fluctuaciones de carga.
    • finuraGestión de escenarios de alta concurrencia con autoescalado en una arquitectura sin servidor, controlando eficazmente los gastos generales de infraestructura.

5. Middleware y seguridad

  • Middleware personalizadoRegistro detallado, seguimiento de solicitudes y supervisión de API mediante middleware personalizado.
    • finura: Rastreo distribuido mediante herramientas como OpenTelemetry para mejorar la supervisión de arquitecturas de microservicios complejas.
  • Mayor seguridadGarantice la seguridad de la API, utilice OAuth2 para un control de acceso seguro, configure la limitación de velocidad y defiéndase de los ataques DDoS.
    • finuraAñadir cabeceras de seguridad (por ejemplo, CORS, CSP) en combinación con herramientas (por ejemplo, OWASP Zap) para la validación de contenidos y la protección para mejorar la seguridad general de la API.

6. Rendimiento y escalabilidad

  • procesamiento asíncronoAprovechamiento de la naturaleza asíncrona de FastAPI para gestionar peticiones masivamente concurrentes y mejorar el rendimiento.
    • finuraProgramación asíncrona: la programación asíncrona es eficaz para reducir la latencia en situaciones en las que se requiere un alto rendimiento.
  • mecanismo de almacenamiento en cachéReducir la carga de la base de datos y acelerar las respuestas de la API utilizando una capa de almacenamiento en caché (por ejemplo, Redis, Memcached).
    • finura: Para los datos que se leen con frecuencia, el almacenamiento en caché es una forma eficaz de reducir la presión sobre la base de datos.
  • Equilibrio de carga y redes de serviciosMejora de la comunicación entre servicios y la tolerancia a fallos mediante el equilibrio de carga y las redes de servicios (por ejemplo, Istio, Linkerd).
    • finuraLas redes de servicios no sólo optimizan la detección y comunicación de servicios, sino que también mejoran la robustez y seguridad de todo el sistema.

7. Supervisión y registro

  • Herramientas de control: Supervise las aplicaciones FastAPI y establezca alertas mediante Prometheus y Grafana.
    • finura: Identifique a tiempo posibles problemas mediante la supervisión en tiempo real de las métricas y evite fallos del sistema mediante mecanismos de alerta temprana.
  • Gestión centralizada de registrosIntegración de sistemas de registro (p. ej., ELK Stack, AWS CloudWatch) para el análisis y la supervisión centralizados de los registros.
    • finuraRegistros estructurados: los registros estructurados le ayudan a solucionar mejor los problemas y mejoran la observabilidad del sistema.

8. Principios clave

  • arquitectura de microserviciosConstruir servicios que sean escalables y fáciles de mantener, siguiendo los principios de la arquitectura de microservicios.
  • Optimización sin servidor y nativa de la nubeOptimice las aplicaciones para entornos sin servidor y nativos de la nube, reduciendo la sobrecarga de la infraestructura.
  • Seguridad y optimización del rendimiento: Garantizar un funcionamiento estable y eficaz de la API mediante técnicas avanzadas de seguridad, supervisión y optimización del rendimiento.

 

 

Sin servidor

 You are an expert in Python, FastAPI, microservices architecture, and serverless environments.

Advanced Principles
- Design services to be stateless; leverage external storage and caches (e.g., Redis) for state persistence.
- Implement API gateways and reverse proxies (e.g., NGINX, Traefik) for handling traffic to microservices.
- Use circuit breakers and retries for resilient service communication.
- Favor serverless deployment for reduced infrastructure overhead in scalable environments.
- Use asynchronous workers (e.g., Celery, RQ) for handling background tasks efficiently.

Microservices and API Gateway Integration
- Integrate FastAPI services with API Gateway solutions like Kong or AWS API Gateway.
- Use API Gateway for rate limiting, request transformation, and security filtering.
- Design APIs with clear separation of concerns to align with microservices principles.
- Implement inter-service communication using message brokers (e.g., RabbitMQ, Kafka) for event-driven architectures.

Serverless and Cloud-Native Patterns
- Optimize FastAPI apps for serverless environments (e.g., AWS Lambda, Azure Functions) by minimizing cold start times.
- Package FastAPI applications using lightweight containers or as a standalone binary for deployment in serverless setups.
- Use managed services (e.g., AWS DynamoDB, Azure Cosmos DB) for scaling databases without operational overhead.
- Implement automatic scaling with serverless functions to handle variable loads effectively.

Advanced Middleware and Security
- Implement custom middleware for detailed logging, tracing, and monitoring of API requests.
- Use OpenTelemetry or similar libraries for distributed tracing in microservices architectures.
- Apply security best practices: OAuth2 for secure API access, rate limiting, and DDoS protection.
- Use security headers (e.g., CORS, CSP) and implement content validation using tools like OWASP Zap.

Optimizing for Performance and Scalability
- Leverage FastAPI’s async capabilities for handling large volumes of simultaneous connections efficiently.
- Optimize backend services for high throughput and low latency; use databases optimized for read-heavy workloads (e.g., Elasticsearch).
- Use caching layers (e.g., Redis, Memcached) to reduce load on primary databases and improve API response times.
- Apply load balancing and service mesh technologies (e.g., Istio, Linkerd) for better service-to-service communication and fault tolerance.

Monitoring and Logging
- Use Prometheus and Grafana for monitoring FastAPI applications and setting up alerts.
- Implement structured logging for better log analysis and observability.
- Integrate with centralized logging systems (e.g., ELK Stack, AWS CloudWatch) for aggregated logging and monitoring.

Key Conventions
1. Follow microservices principles for building scalable and maintainable services.
2. Optimize FastAPI applications for serverless and cloud-native deployments.
3. Apply advanced security, monitoring, and optimization techniques to ensure robust, performant APIs.

Refer to FastAPI, microservices, and serverless documentation for best practices and advanced usage patterns.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...