Como bff (backend for frontend) pode ser seu melhor amigo para lidar com diferentes frontends

CristianoAltmann 1,539 views 34 slides Jul 20, 2018
Slide 1
Slide 1 of 34
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34

About This Presentation

Apresentação sobre como funciona e as principais características do pattern de BFF usado numa arquitetura de micro serviços.


Slide Content

Como BFF (Backend for
Frontend) pode ser seu
melhor amigo para lidar
com diferentes frontends

Cristiano
Arquiteto Software
@crisaltmann
2

Deivid
Desenvolvedor Web
@deividhf
3

Micro serviços
Vamos falar um pouco sobre essa
buzzword...
1.

Micro serviços
5

6
Deploy independente
Baixo acoplamento
Escalabilidade
Horizontal
Escolha tecnologias
Tempo de negócio
Times independentes
Evolução
tecnológica
Resiliente

SERVIÇOS
Unidades interoperáveis que podem
facilmente ser reutilizados e
compartilhados entre aplicações e
empresas
7

Definindo serviços
com DDD
▪Orientado ao domínio
▪Contextos delimitados
8
Conta
Corrente
Pessoa

9

Dificuldades
Algumas dificuldades na adoção desta
arquitetura...
2.

Design
▪Dificuldade de manter a
coesão do domínio do
serviço
▪Necessidades UI
11

Rede
▪Comunicação sujeita a
falhas
▪Chatty
12

Dados
▪Contratos dos serviços
não levam em
consideração o Front
End
13

Multi UI
▪Infinidade de Front ends
consumindo os serviços
14

E o BFF….
3.

BFF
Um componente responsável por
conectar as necessidades específicas de
Front end com os serviços.
16

17

Características
Agregação
Agregar dados de
diferentes servicos.
Adaptação
Adaptar o contrato do
serviço à necessidade do
front end.
Sem regras de negócios
As regras de negócio
devem estar nos serviços.
18

Quantos
BFFs?
▪Adequar à distribuição
dos times
▪BFFs por experiência
19

Vantagens
Algumas vantagens do uso do BFF
4.

Autonomia
do front end
▪Mock dos dados no BFF
▪Não depender do back
end para testar
integração
21

Domínios
▪Coesos
▪Não precisam se adaptar
às necessidades de front
ends
22

Chamadas
▪Latência
▪Rede
23

Teste A/B
24

Controle
versão
▪Migração versões de
serviços
25

Diferentes
protocolos
▪Permite que a
comunicação com a UI
seja desacoplada do
backend
26

Desvantagens
Alguns problemas que a adoção do
pattern nos traz
5.

Mais um
componente...
28

Ponto único de
falha
29

Conclusão
Aprendizados sobre o uso do pattern
6.

Mantivemos
sistemas
coesos
▪Graças ao BFF
31

Tecnologias
▪Devem ser simples
▪Sem verbosidade
32

Habilidades
▪Complexidades do back
end levados ao front
33

Obrigado!
34