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 |
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 |
-
Código fuente de airflow.models.xcom. Documentación de Apache Airflow 2 de agosto del 2021. ↩