Não fique preso a apenas uma arquitetura

35
Globalcode – Open4education Não fique preso a apenas uma arquitetura

description

 

Transcript of Não fique preso a apenas uma arquitetura

Page 1: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Não fique preso a apenas uma arquitetura

Page 2: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Page 3: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Definição Arquitetura

Apresentação (UI)

Negócio (BL)

Dados (DL)

Page 4: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Início do caos

Page 5: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Aumentando o caos

Avaliação produtos Clientes Prata e Ouro com descontosLista de amigos para compartilhar produtos comprados

Page 6: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

O caos formado

Page 7: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

O sistema

Page 8: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Problemas

Page 9: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Problemas

Page 10: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Problemas

Page 11: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Problemas

Page 12: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Problemas

Page 13: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Problemas

Page 14: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Problemas

Page 15: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Os Problemas

Page 16: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

“To construct a product detail page for a customer, the Amazon software calls on between 200 and 300 services to present a highly personalized experience

for that customer.”

Jeff Bezos 

Page 17: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

DDD e SOA

Page 18: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Apresentação (UI)

Negócio (BL)

Dados (DL)

Page 19: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Apresentação (UI)

Negócio (BL)

Dados (DL)

Reviews Estoque Vendas AluguelSugestõ

es

Page 20: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

UI

BL

Reviews Estoque Vendas AluguelSugestõ

es

UI

BL

DL

UI

BL

DL

UI

BL

DL

UI

BL

DLDL

Page 21: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

ReviewsIdReviewIdAutor

EstoqueIdQtdeAtualQtdeMinima

VendasIdIdCompraQtdePreco

AluguelIdPreco

SugestõesIdIdDestinoRelevancia

Page 22: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

UI

BL

Reviews Estoque Vendas AluguelSugestõ

es

UI

BL

UI

BL

UI

BL

UI

BL CQRS

API

DL DL WSDL

NoSQL

Page 23: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Reviews

Aluguel

Sugestões

Vendas

Estoque

Page 24: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Reviews

Estoque

Aluguel

Sugestões

Vendas

Pub/Sub

Page 25: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

EstoqueSugestões

Vendas PubSub

Venda Fechada•Dia/Hora•[IdProduto, Quantidade, Preço]•IdCliente

Page 26: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

EstoqueSugestões

Vendas PubSub

Venda Fechada•Dia/Hora•[IdProduto, Quantidade, Preço]•IdCliente

Marketing

Page 27: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Compras

Estoque PubSub

Produto Estoque Baixo•Dia/Hora•IdProduto•Quantidade

Page 28: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Filas ou WS?

Page 29: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Evolução

Tempo

Rápido Fácil

Homogêneo Modular

Autonomia

Simplicidade

Page 30: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Atualmente

15 serviços windows20 aplicações web20 bases de dados

Page 31: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Benefícios

Simplicidade, sistema composto por serviços menores, desacoplados e independentes Novos serviços podem facilmente aproveitar novas tecnologiasAntigos serviços são mais facilmente reescritoServiços podem evoluir em velocidades diferentesDeploy independentes

Page 32: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Benefícios

Escalabilidade horizontal e independente entre os serviçosEscalabilidade não requer nenhuma mudança no softwareBase de dados também pode ser escalada horizontalmente

Page 33: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Desafios

Integrações e relatórios que exigem informações de vários serviços Medo da gerência pela inexistência do ‘framework padrão’Dificuldade na separação correta do domínio e custo na correçãoEvitar serviços enormes ou um grande número de mini serviçosIntegração FrontendAutomatização build e deploy

Page 34: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Adoção

Separe somente o domínioExecute em memória Inicie por serviços periféricosMantenha a mesma base de dadosFaça spikesFaça deploy como um sistema únicoVenda a idéia para a equipe

Page 35: Não fique preso a apenas uma arquitetura

Globalcode – Open4education

Obrigado!

Dúvidas?

@rmueller