Control de versiones, despliegue y orquestación
Despliegue las aplicaciones remotas de forma independiente con versionado semántico, gestione conflictos entre bibliotecas compartidas y coordine las versiones.
Control de versiones, despliegue y orquestación es una lección gratuita de React Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.
Despliegue independiente: el valor fundamental
El valor principal de Module Federation es el despliegue independiente: un equipo puede actualizar, probar y desplegar su remote sin coordinarse con los equipos de los hosts ni activar nuevos despliegues de estos. El host incorpora los cambios automáticamente la próxima vez que carga remoteEntry.js desde la URL del remote.
Versionar las URL de los remotes
En lugar de servir remoteEntry.js desde una URL fija (que cambia con cada despliegue), incluya un hash del contenido en la URL: remoteEntry.[hash].js. Esto hace que cada despliegue sea inmutable: las URL antiguas siguen funcionando y el host hace referencia al nuevo hash cuando se actualiza al nuevo despliegue. Las URL inmutables permiten una caché agresiva en la CDN.
Feature flags en la capa de infraestructura
Como el host descubre los remotes mediante una URL, puede implementar pruebas A/B en la capa de infraestructura: servir a distintos usuarios diferentes URL de remoteEntry.js (que apunten a distintas versiones del remote). Esto permite realizar verdaderos despliegues canary para microfrontends sin ninguna lógica de feature flags en el código de la aplicación.
El enfoque basado en manifiesto para un descubrimiento flexible
En lugar de codificar las URL de los remotes en la configuración de Webpack, el host obtiene un manifiesto JSON al iniciarse: GET /federation-manifest.json returns { buttonApp: 'https://cdn.example.com/button/remoteEntry.abc123.js' }. Para actualizar la versión que utiliza el host, actualice el manifiesto; no es necesario recompilar el host.
Rollback mediante la actualización del manifiesto
Cuando un despliegue del remote introduce una regresión, el rollback es inmediato: actualice federation-manifest.json para que apunte a la URL anterior de remoteEntry.js. El host empieza a utilizar inmediatamente la versión antigua en el siguiente ciclo de solicitudes. No es necesario recompilar ni revertir el host, ni coordinarse con otros equipos.
Webpack Module Federation 2.0
Module Federation 2.0 (el paquete @module-federation/enhanced) incorpora mejoras importantes: mejor compatibilidad con TypeScript mediante la generación automática de tipos a partir de manifiestos remotos, una API de plugins en tiempo de ejecución para implementar una lógica de carga personalizada y una gestión mejorada del ámbito compartido para escenarios complejos de negociación de versiones.
vite-plugin-federation para Vite
El paquete vite-plugin-federation incorpora Module Federation a los proyectos basados en Vite mediante una API de configuración similar a la de ModuleFederationPlugin de Webpack. Es compatible tanto con remotos de Vite y hosts de Webpack como en el sentido inverso, lo que permite a los equipos migrar gradualmente a Vite sin abandonar Module Federation.
Remotos dinámicos en tiempo de ejecución
Para arquitecturas muy dinámicas, puede configurar las URL de los remotos completamente en tiempo de ejecución: `import(remoteRegistry[featureName])`, donde remoteRegistry se rellena mediante una llamada a una API. Esto permite crear arquitecturas similares a plugins, en las que se pueden añadir nuevos micro frontends sin recompilar la aplicación shell.
La aplicación shell como orquestadora
La función principal de la aplicación shell es la orquestación: lee el manifiesto remoto, inicializa el entorno de ejecución de Module Federation, registra los módulos remotos en rutas con nombre y renderiza el remoto adecuado según la URL actual. La shell es deliberadamente ligera: sabe qué cargar, no cómo renderizarlo.
Supervisión de Module Federation en producción
Añada supervisión del rendimiento a la carga de remotos: envuelva las importaciones de remotos en try/catch para gestionar correctamente los fallos de carga (renderice una interfaz de reserva si el remoto no está disponible), mida el tiempo necesario para descargar remoteEntry.js y los fragmentos de los componentes, y genere una alerta si el tiempo de carga del remoto supera un umbral (lo que podría indicar problemas con el CDN).
El pipeline completo de CI/CD
Un pipeline maduro de CI/CD de Module Federation sigue este flujo: el equipo del remoto hace un commit → CI compila el remoto → sube remoteEntry.[hash].js inmutable al CDN → actualiza federation-manifest.json → el host obtiene el nuevo remoto en la siguiente solicitud del usuario. Cada paso está automatizado y el equipo del host nunca interviene en los despliegues del remoto.
Estrategia de reversión de Module Federation
¿Cuál es la forma más rápida de revertir un despliegue defectuoso de un remoto de Module Federation?
Resumen de la lección
Module Federation permite realizar despliegues realmente independientes: los remotos se despliegan sin recompilar el host, y el host descubre automáticamente las nuevas versiones. Use URL de remotos con hash de contenido para habilitar el almacenamiento en caché inmutable en el CDN y un manifiesto dinámico para disponer de un enrutamiento flexible de versiones y reversiones instantáneas. vite-plugin-federation incorpora estas capacidades a Vite, y las importaciones dinámicas de remotos permiten crear arquitecturas similares a plugins. La shell orquesta la carga de remotos y se mantiene deliberadamente ligera.
Aprende React con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 88
- Lecciones
- 324
Preguntas frecuentes
¿La lección «Control de versiones, despliegue y orquestación» es gratis?
Sí — el texto completo de «Control de versiones, despliegue y orquestación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Control de versiones, despliegue y orquestación»?
Despliegue las aplicaciones remotas de forma independiente con versionado semántico, gestione conflictos entre bibliotecas compartidas y coordine las versiones. Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar React Academy?
No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Control de versiones, despliegue y orquestación»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de React Academy?
Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Module Federation: importaciones dinámicas en tiempo de ejecución
- Configuración de aplicaciones React host y remotas
- Compartir estado y enrutamiento entre remotos
- Control de versiones, despliegue y orquestación