Saltar al contenido principal
Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Guía de Ejecución Distribuida de Tareas

Las ilustraciones de esta guía fueron creadas por la miembro de Nx Nicole Oliver

¿Cómo funciona la ejecución distribuida de tareas en Nx Cloud?

¿Qué es una Tarea?

¿qué es una tarea? proyecto + objetivo (ej. shared-product-ui + test). cada ejecución contiene muchas tareas. affected incluye shared-product-ui, product-page, shared-e2e-util y shared-ui

Desde la perspectiva de Lerna, una tarea es un objetivo ejecutándose en un proyecto. Por ejemplo, el objetivo test ejecutándose en el proyecto shared-product-ui es una tarea. Para más información sobre tareas, consulta el artículo Ejecución de Tareas.

Nx Cloud Programa Automáticamente Tus Tareas de CI

al activar la ejecución distribuida (DTE), Nx programará las tareas de tus comandos en CI. por ejemplo, supongamos que quieres ejecutar estos 3 comandos para verificar tu código: nx affected --target=lint, nx affected --target=test y nx affected --target=build

Imaginemos que para cada PR en CI, quieres ejecutar lint, tests y builds en todos los proyectos afectados. Al configurar tu flujo de CI, no hay forma de predecir cuántos proyectos afectará cada PR ni cuánto durará cada tarea. Por más cuidadosamente que lo configures, siempre habrá tiempo desperdiciado si asignas manualmente un número fijo de máquinas agente para lint, tests y builds. Este enfoque se llama binning.

Afortunadamente, con la ejecución distribuida de tareas, Nx Cloud puede asignar tareas dinámicamente a los agentes según estén disponibles.

Nx Cloud Orquesta Eficientemente los Agentes

Nx programará automáticamente tareas con los agentes que asignes en CI.

Al configurar DTE, defines: (1) las tareas que quieres ejecutar y (2) el número de agentes disponibles para Nx Cloud. Luego, el orquestador de Nx Cloud distribuye las tareas a los agentes eficientemente, maximizando su utilización y minimizando el tiempo total de CI.

El Orden de Ejecución Importa

¿pero no hay tareas que dependen de otras? ¡Exacto! Nx conoce tu árbol de dependencias, así que ejecutará las tareas en el orden correcto y asegurará que los resultados estén disponibles donde se necesiten.

Algunas tareas deben ejecutarse antes que otras, y Nx Cloud considera estas dependencias al asignar tareas a agentes. Para detalles sobre cómo definir dependencias, consulta el artículo Ejecución de Tareas.

¿Por Qué Distribuir Tareas?

Resultado: ¡Builds Más Rápidas!

Paralelizar eficientemente tu proceso de CI entre múltiples agentes acelera drásticamente el CI, ayudando a los desarrolladores a identificar problemas más rápido y aumentar su productividad.

¿Cuánto Cuesta?

Nx Cloud es GRATIS para proyectos open source. Contacta a cloud-support@nrwl.io para configurarlo.

Para proyectos privados, las primeras 500 horas de cómputo mensuales son gratuitas. La mayoría de espacios de trabajo no superan este límite. No se requiere tarjeta de crédito. Pasadas 500 horas, el costo es $1 por hora de cómputo.

Para más detalles, visita la página de precios de Nx Cloud.

Seguridad

Tu código fuente no se almacena en la nube, pero sí los inputs hasheados y resultados cacheados de tus tareas. Puedes habilitar cifrado de extremo a extremo para que nadie acceda a esa información sin tu clave. Además, si prefieres alojar Nx Cloud en tus servidores, puedes registrarte en Nx Cloud Enterprise.

Ejemplo

Este es un repositorio de ejemplo que muestra lo fácil que es configurar la ejecución distribuida de tareas, demostrando las mejoras de rendimiento y comparándolo con particionamiento/binning.

Ilustración

Aquí está la página completa de explicación ilustrada que creó Nicole Oliver:

Explicación de cómo funciona DTE