SUS03-BP01: Optimizar el software y la arquitectura para los trabajos asíncronos y programados - Pilar de sostenibilidad

SUS03-BP01: Optimizar el 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 desplegados.

Patrones comunes de uso no recomendados:

  • Realiza un aprovisionamiento excesivo de los recursos de su carga de trabajo en la nube para hacer frente a picos imprevistos de la demanda.

  • Su arquitectura 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.

  • Puede 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 la arquitectura basada en eventos, que dan como resultado una utilización uniforme de los componentes y minimizan el aprovisionamiento excesivo en la carga de trabajo. El uso de patrones de arquitectura eficientes minimiza los recursos inactivos por falta de uso debido a cambios en la demanda a lo largo del tiempo.

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 escalamiento automático para maximizar la utilización. A continuación, encontrará algunos ejemplos de cuándo podría plantearse una arquitectura basada en colas:

    Queuing mechanism Description

    Colas de trabajo de AWS Batch

    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.

    Instancias de spot de Amazon Simple Queue Service y Amazon EC2

    Emparejamiento de Amazon SQS e instancias de spot 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:

    Scheduling mechanism Description

    Programador de Amazon EventBridge

    Una capacidad de Amazon EventBridge que le permite crear, ejecutar y administrar tareas programadas a escala.

    Programación basada en tiempo de AWS Glue

    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 reglas de Amazon EventBridge para ejecutar tareas según una programación o en respuesta a un evento de EventBridge.

    Instance Scheduler

    Configure las programaciones de inicio y detención de 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 de elevada eficacia.

  • Aproveche la tecnología sin servidor en AWS para eliminar la infraestructura aprovisionada en exceso.

  • Dimensione correctamente los componentes individuales de su arquitectura para evitar recursos inactivos mientras se espera la entrada.

Recursos

Documentos relacionados:

Vídeos relacionados:

Ejemplos relacionados: