Conceptos básicos de AWS Flow Framework: aplicaciones escalables - AWS Flow Framework para Java

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conceptos básicos de AWS Flow Framework: aplicaciones escalables

Amazon SWF cuenta con dos características clave que permiten escalar fácilmente una aplicación de flujo de trabajo para controlar la carga actual:

  • Un historial de ejecución de flujo de trabajo completo que le permite implementar una aplicación sin estado.

  • Programación de tareas que se acopla de manera flexible a la ejecución de tareas, lo que facilita escalar su aplicación para responder a las demandas actuales.

Para programar las tareas, Amazon SWF las publica en listas de tareas asignadas dinámicamente en lugar de comunicarse directamente con los procesos de trabajo de flujo de trabajo y de actividad. En su lugar, los procesos de trabajo utilizan solicitudes HTTP para sondear sus listas respectivas para obtener tareas. Este enfoque acopla de manera flexible la programación de tareas a la ejecución de tareas y permite la ejecución de los procesos de trabajo en cualquier sistema apropiado, entre los que se incluyen instancias de Amazon EC2, centros de datos corporativos, equipos cliente, etc. Dado que las solicitudes de HTTP tienen su origen en los procesos de trabajo, no se necesitan puertos visibles externamente, lo que permite la ejecución de procesos de trabajo incluso detrás de un firewall.

El mecanismo de sondeo largo que los procesos de trabajo utilizan para sondear para obtener tareas garantizan que los procesos de trabajo no se sobrecarguen. Incluso si se produce un pico en tareas programadas, los procesos de trabajo extraen tareas siguiendo su propio ritmo. No obstante, debido a que los procesos de trabajo no tienen estado, es posible escalar dinámicamente una aplicación para satisfacer el aumento de carga iniciando instancias de proceso de trabajo adicionales. Incluso si se están ejecutando en sistemas diferentes, cada instancia sondea la misma lista de tareas y la primera instancia de proceso de trabajo disponible ejecuta cada tarea, independientemente de dónde esté ubicado el proceso de trabajo o cuándo comenzó. Cuando la carga disminuye, es posible reducir el número de procesos de trabajo en consecuencia.