SUS03-BP01 Optimización del software y la arquitectura para los trabajos asíncronos y programados
Utilice patrones de software y arquitectura eficientes, como los basados en colas, para mantener una utilización elevada y coherente de los recursos implementados.
Patrones comunes de uso no recomendados:
-
Aprovisiona en exceso los recursos de su carga de trabajo en la nube para hacer frente a picos imprevistos de la demanda.
-
Usa una arquitectura que no desacopla los emisores y los receptores de mensajes asíncronos mediante un componente de mensajería.
Beneficios de establecer esta práctica recomendada:
-
Los patrones de software y arquitectura eficientes minimizan los recursos no utilizados en la carga de trabajo y mejoran la eficiencia global.
-
Posibilidad de escalar el procesamiento independientemente de la recepción de mensajes asíncronos.
-
Mediante un componente de mensajería, tendrá unos requisitos de disponibilidad más relajados que podrá cumplir con menos recursos.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio
Guía para la implementación
Utilice patrones de arquitectura eficientes, como una arquitectura basada en eventos
Comprenda los requisitos de los componentes de la carga de trabajo y adopte patrones de arquitectura que aumenten la utilización global de los recursos. Retire los componentes que ya no son necesarios.
Pasos para la implementación
-
Analice la demanda de su carga de trabajo para determinar cómo responder a ella.
-
En el caso de solicitudes o trabajos que no requieran respuestas síncronas, utilice arquitecturas basadas en colas y empleados de escalado automático para maximizar la utilización. A continuación, encontrará algunos ejemplos de cuándo podría plantearse una arquitectura basada en colas:
Mecanismo de colas Descripción Los trabajos de AWS Batch se envían a una cola de trabajos en la que permanecen hasta que pueden programarse para ejecutarse en un entorno de computación.
Amazon Simple Queue Service e instancias puntuales de Amazon EC2
Emparejamiento de instancias de Spot y Amazon SQS para crear una arquitectura eficiente y tolerante a errores.
-
En el caso de solicitudes o trabajos que puedan procesarse en cualquier momento, utilice mecanismos de programación para procesar los trabajos por lotes y obtener una mayor eficacia. A continuación, se presentan algunos ejemplos de mecanismos de programación en AWS:
Mecanismo de programación Descripción Funcionalidad de Amazon EventBridge
que permite crear, ejecutar y administrar tareas programadas a escala. Defina una programación basada en el tiempo para sus rastreadores y trabajos en AWS Glue.
Tareas programadas de Amazon Elastic Container Service (Amazon ECS)
Amazon ECS admite la creación de tareas programadas. Las tareas programadas utilizan las reglas de Amazon EventBridge para ejecutar tareas según una programación o en respuesta a un evento de EventBridge.
Configure los horarios de inicio y parada para sus instancias de Amazon EC2 y Amazon Relational Database Service.
-
Si utiliza mecanismos de sondeo y webhooks en su arquitectura, reemplácelos por eventos. Utilice arquitecturas basadas en eventos para crear cargas de trabajo altamente eficientes.
-
Aproveche la tecnología sin servidor en AWS
para eliminar la infraestructura con exceso de aprovisionamiento. -
Dimensione correctamente los componentes individuales de su arquitectura para evitar recursos inactivos mientras se espera la entrada.
-
Puede utilizar las recomendaciones de redimensionamiento de AWS Cost Explorer o AWS Compute Optimizer
para identificar oportunidades de redimensionamiento. -
Para obtener más información, consulte Ajuste del tamaño: aprovisionamiento de instancias para adaptarse a las cargas de trabajo.
-
Recursos
Documentos relacionados:
Videos relacionados:
-
AWS re:Invent 2023 - Navigating the journey to serverless event-driven architecture
-
AWS re:Invent 2023 - Using serverless for event-driven architecture & domain-driven design
-
AWS re:Invent 2023 - Advanced event-driven patterns with Amazon EventBridge
-
AWS re:Invent 2023 - Sustainable architecture: Past, present, and future
Ejemplos relacionados: