1 of 37

Micro-frontends: Escalando Interfaces com Arquitetura Modular

////////////// 上原

​

MERGULHE EM TECNOLOGIA_

2 of 37

Kevin Uehara

Staff Engineer na @Arco Educação

Instrutor na Alura

Google Developer Expert

3x Microsoft MVP

Autor, Palestrante e Criador de Conteúdo

SOBRE MIM

3 of 37

Contact

Micro Frontends

Agenda

Module Federation

Show me the code

Q&A

alura

4 of 37

Introdução aos

Micro Frontends

////////////// 上原

​

5 of 37

O que são Micro Frontends?

Contact

alura

6 of 37

Contact

Aplicações web complexas, monolito, grande, com builds demorados e deployments acoplados

Problema

Base de código enorme e difícil de manter, com muitas equipes no mesmo repositório.

​

Rollbacks afetam toda a aplicação

alura

7 of 37

Um Microfrontend é uma abordagem de arquitetura que divide o frontend em fragmentos menores, funcionais e independentes, onde cada fragmento é desenvolvido e implementado por uma equipe separada.

Contact

alura

8 of 37

Contact

Build Time Sharing - o código é compartilhado durante o processo de build — tudo é empacotado (bundle) junto antes do deployment.

Build Time Sharing x Runtime Sharing

Runtime Time Sharing - Código é compartilhado após o deployment, diretamente no browser em runtime.

alura

9 of 37

Contact

alura

10 of 37

Contact

alura

11 of 37

Contact

Entrega independente

Principais ideias sobre Micro-Frontends

Ser Agnóstico a Tecnologia

Arquitetura Escalável

Codebases Isoladas

alura

12 of 37

Então, Eu devo sempre usar Micro-Frontends, certo?

Contact

alura

13 of 37

E como tudo na tecnologia... depende

Contact

alura

14 of 37

Contact

Alta Complexidade Arquitetural- build complexa, roteamento e setup de comunicação

Trade Offs

Altos Custos Iniciais - mais repos, mais pipelines, mais manutenção, infra

Risco de Over-engineering - Nem todo projeto precisa de MFEs e times pequenos ou apps podem sofrer mais do que se beneficiar

Performance Overhead - Vários pacotes aumentam o tamanho de carregamento da página e exigem cache inteligente e dependências compartilhadas.

alura

15 of 37

Module Federation

////////////// 上原

​

16 of 37

O Module Federation é um padrão arquitetural que permite que aplicações JavaScript construídas independentemente compartilhem código e dependências em tempo de execução. Isso possibilita uma abordagem de micro-frontend, onde grandes aplicações podem ser divididas em partes menores e implantáveis ​​independentemente.

​

Contact

alura

17 of 37

Contact

Grandes Aplicações: Para aplicações de grande porte, você pode dividir a aplicação em vários micro-frontends e usar o Module Federation para compartilhar código e recursos entre eles.

Casos de Uso

Arquitetura de Micro-frontend: Module Federation é uma ferramenta ideal para construir arquitetura de micro-frontends.

Multi-Times de Desenvolvimento: Module Federation pode auxiliar várias equipes no desenvolvimento colaborativo de grandes aplicações.

alura

18 of 37

Contact

História do Module Federation

2014

WebPack foi lançado

2018

Webpack 4.20 foi lançado, introduzindo o module hooks, que lançou as bases para o desenvolvimento do Module Federation

2019

Webpack 5 foi lançado, introduzindo oficialmente a funcionalidade do Module Federation.

2024

Module Federation v2.0 foi lançado com mais funcionalidades e incluindo o Rspack como uma opção de ferramenta de build

alura

19 of 37

Contact

https://module-federation.io/index.html

alura

20 of 37

Show me the code!

////////////// 上原

​

21 of 37

Contact

Nós vamos usar o Rspack para criar nosso projeto

O que vamos criar?

Vamos criar um Micro-frontend (remote e host)

Rodar ambas aplicações

Demo do Projeto

alura

22 of 37

Contact

alura

23 of 37

Contact

Estrutura do Projeto

alura

24 of 37

Contact

alura

25 of 37

Contact

alura

26 of 37

Contact

alura

27 of 37

Contact

alura

28 of 37

Contact

alura

29 of 37

Contact

alura

30 of 37

Contact

alura

31 of 37

Contact

alura

32 of 37

Contact

alura

33 of 37

Contact

alura

34 of 37

35 of 37

Muito obrigado!

E fiquem bem, sempre!

////////////// 上原

​

36 of 37

REDES SOCIAIS

Vamos nos conectar, me marquem e dêem feedback sobre a palestra!

APONTE A CÂMERA

37 of 37

Q&A

Tem alguma dúvida ou curiosidade? Vamos conversar sobre isso!

PERGUNTE O QUE QUISER