Versionamento, implantação e orquestração
Implante módulos remotos de forma independente com versionamento semântico, gerencie conflitos entre bibliotecas compartilhadas e coordene lançamentos.
Versionamento, implantação e orquestração é uma aula grátis de React Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.
Implantação independente: o valor central
O principal valor do Module Federation é a implantação independente: uma equipe pode atualizar, testar e implantar sua aplicação remota sem coordenar com as equipes das aplicações hospedeiras nem acionar novas implantações delas. A aplicação hospedeira incorpora as alterações automaticamente na próxima vez que carregar o remoteEntry.js da URL da aplicação remota.
Versionando URLs de aplicações remotas
Em vez de disponibilizar o remoteEntry.js em uma URL fixa, que muda a cada implantação, inclua um resumo do conteúdo na URL: remoteEntry.[hash].js. Isso torna cada implantação imutável — as URLs antigas continuam funcionando, e a aplicação hospedeira referencia o novo resumo assim que é atualizada para a nova implantação. URLs imutáveis permitem um armazenamento agressivo em cache na CDN.
Sinalizadores de funcionalidades no nível da infraestrutura
Como a aplicação hospedeira descobre as aplicações remotas por meio da URL, você pode implementar testes A/B no nível da infraestrutura: disponibilize URLs diferentes de remoteEntry.js para usuários diferentes, apontando para versões remotas distintas. Isso permite implantações canário verdadeiras para microfrontends, sem qualquer lógica de sinalizador de funcionalidade no código da aplicação.
A abordagem de manifesto para descoberta flexível
Em vez de codificar as URLs das aplicações remotas na configuração do Webpack, a aplicação hospedeira busca um manifesto JSON na inicialização: GET /federation-manifest.json retorna { buttonApp: 'https://cdn.example.com/button/remoteEntry.abc123.js' }. Para atualizar qual versão a aplicação hospedeira utiliza, atualize o manifesto — não é necessário recompilar a aplicação hospedeira.
Reversão por meio da atualização do manifesto
Quando uma implantação remota introduz uma regressão, a reversão é imediata: atualize o federation-manifest.json para apontar para a URL anterior do remoteEntry.js. A aplicação hospedeira começará imediatamente a utilizar a versão antiga no próximo ciclo de requisição. Não é necessário recompilar nem reverter a aplicação hospedeira, nem coordenar as equipes.
Federação de Módulos 2.0
A Federação de Módulos 2.0 (o pacote @module-federation/enhanced) traz melhorias significativas: melhor suporte a TypeScript, com geração automática de tipos a partir de manifestos remotos; uma API de plug-ins em tempo de execução para lógica de carregamento personalizada; e gerenciamento aprimorado de escopos compartilhados para cenários complexos de negociação de versões.
vite-plugin-federation para Vite
O pacote vite-plugin-federation leva a Federação de Módulos a projetos baseados em Vite, usando uma API de configuração semelhante à do ModuleFederationPlugin do Webpack. Ele é compatível tanto com remotos Vite e aplicações hospedeiras Webpack quanto no sentido inverso, permitindo que as equipes migrem gradualmente para Vite sem abandonar a Federação de Módulos.
Remotos dinâmicos em tempo de execução
Para arquiteturas altamente dinâmicas, você pode configurar as URLs dos remotos inteiramente em tempo de execução: import(remoteRegistry[featureName]), em que remoteRegistry é preenchido por uma chamada de API. Isso permite arquiteturas semelhantes a plug-ins, nas quais novos microfrontends podem ser adicionados sem recompilar a aplicação contêiner.
A aplicação contêiner como orquestradora
A principal função da aplicação contêiner é a orquestração: ela lê o manifesto remoto, inicializa o ambiente de execução da Federação de Módulos, registra os módulos remotos em rotas nomeadas e renderiza o remoto apropriado com base na URL atual. A aplicação contêiner é intencionalmente enxuta — ela sabe o que carregar, não como renderizá-lo.
Monitorando a Federação de Módulos em produção
Adicione monitoramento de desempenho ao carregamento dos remotos: envolva as importações dos remotos em try/catch para lidar adequadamente com falhas de carregamento (renderize uma interface de reserva se o remoto não estiver disponível), meça o tempo para baixar remoteEntry.js e os blocos dos componentes e emita um alerta se o tempo de carregamento do remoto exceder um limite (indicando problemas no CDN).
O fluxo completo de CI/CD
Um fluxo maduro de CI/CD para a Federação de Módulos segue esta sequência: a equipe remota envia uma alteração → a integração contínua compila o remoto → envia remoteEntry.[hash].js imutável para o CDN → atualiza federation-manifest.json → a aplicação hospedeira obtém o novo remoto na próxima solicitação do usuário. Cada etapa é automatizada, e a equipe da aplicação hospedeira nunca participa das implantações dos remotos.
Estratégia de reversão da Federação de Módulos
Qual é a maneira mais rápida de reverter uma implantação remota problemática da Federação de Módulos?
Recapitulação da lição
A Federação de Módulos permite uma implantação realmente independente: os remotos são implantados sem recompilar a aplicação hospedeira, que descobre automaticamente as novas versões. Use URLs remotas com hash de conteúdo para obter cache imutável no CDN e um manifesto dinâmico para roteamento flexível de versões e reversões instantâneas. O vite-plugin-federation leva esses recursos ao Vite, e as importações dinâmicas de remotos permitem arquiteturas semelhantes a plug-ins. A aplicação contêiner orquestra o carregamento dos remotos, mantendo-se intencionalmente enxuta.
Aprenda React com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 88
- Aulas
- 324
Perguntas Frequentes
A aula “Versionamento, implantação e orquestração” é grátis?
Sim — o texto completo de “Versionamento, implantação e orquestração” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.
O que vou aprender em “Versionamento, implantação e orquestração”?
Implante módulos remotos de forma independente com versionamento semântico, gerencie conflitos entre bibliotecas compartilhadas e coordene lançamentos. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Academy?
Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Versionamento, implantação e orquestração”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Academy?
Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Federação de módulos: importações dinâmicas em tempo de execução
- Configurando aplicações React hospedeira e remotas
- Compartilhando estado e roteamento entre remotos
- Versionamento, implantação e orquestração