Elegir Workflows o Cloud Composer para la orquestación de servicios

Tanto Workflows como Cloud Composer se pueden usar para la orquestación de servicios, con el fin de combinar servicios para implementar funciones de aplicaciones o procesar datos. Aunque son similares desde el punto de vista conceptual, cada una de ellas se ha diseñado para un conjunto de casos prácticos diferente. Esta página te ayudará a elegir el producto adecuado para tu caso práctico.

Diferencias principales

La principal diferencia entre Workflows y Cloud Composer es el tipo de arquitectura que admite cada producto.

Workflows orquesta varios servicios basados en HTTP en un flujo de trabajo duradero y con estado. Tiene una latencia baja y puede gestionar un gran número de ejecuciones. También es completamente sin servidor.

Workflows es una herramienta ideal para encadenar microservicios, automatizar tareas de infraestructura (como iniciar o detener una máquina virtual) e integrarse con sistemas externos. Los conectores de Workflows también admiten secuencias sencillas de operaciones en Google Cloud servicios como Cloud Storage y BigQuery.

Cloud Composer se ha diseñado para orquestar flujos de trabajo basados en datos (especialmente ETL/ELT). Se basa en el proyecto Apache Airflow, pero Cloud Composer está totalmente gestionado. Cloud Composer admite tus pipelines estén donde estén, ya sea en entornos on-premise o en varias plataformas en la nube. Toda la lógica de Cloud Composer, incluidas las tareas y la programación, se expresa en Python como archivos de definición de grafos acíclicos dirigidos (DAGs).

Cloud Composer es la mejor opción para las cargas de trabajo por lotes que pueden gestionar unos segundos de latencia entre las ejecuciones de tareas. Puedes usar Cloud Composer para orquestar servicios en tus flujos de procesamiento de datos, como activar un trabajo en BigQuery o iniciar un flujo de procesamiento de Dataflow. Puedes usar operadores predefinidos para comunicarte con varios servicios. Hay más de 150 operadores solo para Google Cloud .

Comparativa detallada de funciones

Función Flujos de trabajo Cloud Composer
Sintaxis Sintaxis de Workflows en formato YAML o JSON Python
Modelo de estado Control de flujo imperativo Declarativo DAG con resolución automática de dependencias
Integraciones Solicitudes HTTP y conectores Operadores y sensores de Airflow
Transferir datos entre pasos 512 KB para variables 48 KB1 para XCom
Activadores de ejecución y programación CLI de gcloud, Google Cloud consola, API Workflows, bibliotecas de cliente de Workflows, Cloud Scheduler Programaciones de tipo cron en el archivo de definición de DAG, sensores de Airflow
Patrones asíncronos
  • Encuestas
  • Retrollamadas
  • Esperar operaciones de larga duración Google Cloud
Encuestas
Ejecución paralela Ejecuciones simultáneas del mismo flujo de trabajo o dentro de un flujo de trabajo con pasos paralelos Automático en función de las dependencias
Latencia de ejecución Milisegundos Segundos
Basado en código abierto No Sí (Apache Airflow)
Modelo de escalado Sin servidor (se adapta a la demanda y se reduce a cero) Aprovisionado
Modelo de facturación Basado en el uso (por paso ejecutado) Según la capacidad aprovisionada
Funciones de tratamiento de datos No Reposiciones, con la posibilidad de volver a ejecutar DAGs

  1. Código fuente de airflow.models.xcom. Documentación de Apache Airflow 2 de agosto del 2021.