Transcript
Page 1: Do MONOLÍTICO à arquitetura distribuída

Do MONOLÍTICO à arquitetura distribuída

1ª edição 28/02/15

Page 2: Do MONOLÍTICO à arquitetura distribuída

Leandro Alvares da CostaCo-founder & Head of Product

Page 3: Do MONOLÍTICO à arquitetura distribuída

ALGUÉM gostaria de ter DINHEIRO?

Page 4: Do MONOLÍTICO à arquitetura distribuída

ALGUÉM gostaria de ter DINHEIRO?

emprestado… :)

Page 5: Do MONOLÍTICO à arquitetura distribuída
Page 6: Do MONOLÍTICO à arquitetura distribuída
Page 7: Do MONOLÍTICO à arquitetura distribuída

PRECISO DE DINHEIRO

Page 8: Do MONOLÍTICO à arquitetura distribuída

;(

Page 9: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C

;(

Page 10: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C

;(

Page 11: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C

;(

Page 12: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C

;(

Page 13: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C

;(

Page 14: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C

;(

Ter que ir de banco em banco

Page 15: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C

;(

Ter que ir de banco em banco

Informar seus dados em cada banco

Page 16: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C

;(

Ter que ir de banco em banco

Informar seus dados em cada banco

Serviço sujeito à tarifa

Page 17: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C

;(

Ter que ir de banco em banco

Informar seus dados em cada banco

Serviço sujeito à tarifa

Atendimento ou gerente (convencional)

Page 18: Do MONOLÍTICO à arquitetura distribuída
Page 19: Do MONOLÍTICO à arquitetura distribuída
Page 20: Do MONOLÍTICO à arquitetura distribuída
Page 21: Do MONOLÍTICO à arquitetura distribuída

AJUDAMOS você

Page 22: Do MONOLÍTICO à arquitetura distribuída

COMO?

Page 23: Do MONOLÍTICO à arquitetura distribuída

;(

Page 24: Do MONOLÍTICO à arquitetura distribuída

;(

Bancos parceiros

Page 25: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C Banco D Banco E Banco F

;(

Bancos parceiros

Page 26: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C Banco D Banco E Banco F

;(

BankFacil

Bancos parceiros

Page 27: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C Banco D Banco E Banco F

;(

BankFacil

Consultoria financeira

Bancos parceiros

Page 28: Do MONOLÍTICO à arquitetura distribuída

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

;(

BankFacil

Consultoria financeira

Bancos parceiros

Page 29: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

;(

BankFacil

Consultoria financeira

Bancos parceiros

Page 30: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

;(

BankFacil

Consultoria financeira

Bancos parceiros

Page 31: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

Dados cadastrais

;(

BankFacil

Consultoria financeira

Bancos parceiros

Page 32: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

Dados cadastrais

Documentação

;(

BankFacil

Consultoria financeira

Bancos parceiros

Page 33: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

Dados cadastrais

Documentação

Aprovação do crédito

;(

BankFacil

Consultoria financeira

Bancos parceiros

Page 34: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

Dados cadastrais

Documentação

Aprovação do crédito

;(

BankFacil

Consultoria financeira

Banco E Banco F

Bancos parceiros

Page 35: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

Dados cadastrais

Documentação

Aprovação do crédito

;(

BankFacil

Consultoria financeira

Banco E Banco F

Bancos parceiros

Page 36: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

Dados cadastrais

Documentação

Aprovação do crédito

;(

BankFacil

Consultoria financeira

Banco E Banco F

Bancos parceiros

Page 37: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

Empréstimo pessoal

Dados cadastrais

Documentação

Aprovação do crédito

;(

BankFacil

Consultoria financeira

Formalização Contratual

Banco E Banco F

Bancos parceiros

Page 38: Do MONOLÍTICO à arquitetura distribuída

Empréstimo com garantia

Banco A Banco B Banco C Banco D Banco E Banco F

$ \o/

Empréstimo pessoal

Dados cadastrais

Documentação

Aprovação do crédito

;(

BankFacil

Consultoria financeira

Formalização Contratual

Banco E Banco F

Bancos parceiros

Page 39: Do MONOLÍTICO à arquitetura distribuída
Page 40: Do MONOLÍTICO à arquitetura distribuída

1.Quero R$ 30.000,00 pra reformar meu ap.

Page 41: Do MONOLÍTICO à arquitetura distribuída

1.Quero R$ 30.000,00 pra reformar meu ap.2.Recebo consultoria financeira e escolho o banco.

Page 42: Do MONOLÍTICO à arquitetura distribuída

1.Quero R$ 30.000,00 pra reformar meu ap.2.Recebo consultoria financeira e escolho o banco.3.Solicito online e recebo o dinheiro emprestado.

Page 43: Do MONOLÍTICO à arquitetura distribuída

1.Quero R$ 30.000,00 pra reformar meu ap.2.Recebo consultoria financeira e escolho o banco.3.Solicito online e recebo o dinheiro emprestado.

você não PAGA NADA por usar o BankFacil

Page 44: Do MONOLÍTICO à arquitetura distribuída
Page 45: Do MONOLÍTICO à arquitetura distribuída

Uhul \o/

Page 46: Do MONOLÍTICO à arquitetura distribuída
Page 47: Do MONOLÍTICO à arquitetura distribuída
Page 48: Do MONOLÍTICO à arquitetura distribuída

Todos os bancos em um só lugar!

Page 49: Do MONOLÍTICO à arquitetura distribuída

Evolução da plataforma

Page 50: Do MONOLÍTICO à arquitetura distribuída

Evolução da plataforma

Educação e Comparação

2012

Todos produtos e serviços financeiros

Page 51: Do MONOLÍTICO à arquitetura distribuída

Evolução da plataforma

Educação e Comparação

2012

Todos produtos e serviços financeiros

Indicação de cliente aos bancos

2013

Cartões

Page 52: Do MONOLÍTICO à arquitetura distribuída

Evolução da plataforma

Educação e Comparação

2012

Todos produtos e serviços financeiros

Solicitação online Consultoria financeira

2014

Empréstimo e financiamento

Indicação de cliente aos bancos

2013

Cartões

Page 53: Do MONOLÍTICO à arquitetura distribuída

Evolução da plataforma

Educação e Comparação

2012

Todos produtos e serviços financeiros

Solicitação online Consultoria financeira

2014

Empréstimo e financiamento

Indicação de cliente aos bancos

2013

Cartões

Page 54: Do MONOLÍTICO à arquitetura distribuída

Evolução da plataforma

Educação e Comparação

2012

Todos produtos e serviços financeiros

Solicitação online Consultoria financeira

2014

Empréstimo e financiamento

Indicação de cliente aos bancos

2013

Cartões

Peça

P

Page 55: Do MONOLÍTICO à arquitetura distribuída

Evolução da plataforma

Educação e Comparação

2012

Todos produtos e serviços financeiros

Solicitação online Consultoria financeira

2014

Empréstimo e financiamento

Indicação de cliente aos bancos

2013

Cartões

Peça

P

Peça

Peça

Peça

Page 56: Do MONOLÍTICO à arquitetura distribuída

Evolução da plataforma

Educação e Comparação

2012

Todos produtos e serviços financeiros

Solicitação online Consultoria financeira

2014

Empréstimo e financiamento

Indicação de cliente aos bancos

2013

Cartões

Peça

P

Peça

Peça

Peça

Peça Peça

Peça Peça

Peça Peça

Page 57: Do MONOLÍTICO à arquitetura distribuída

Porque separamos as peças?

Page 58: Do MONOLÍTICO à arquitetura distribuída
Page 59: Do MONOLÍTICO à arquitetura distribuída

Está CERTO ou ERRADO?

Page 60: Do MONOLÍTICO à arquitetura distribuída

Está CERTO ou ERRADO?

Existe CERTO ou ERRADO?

Page 61: Do MONOLÍTICO à arquitetura distribuída

relembrando o

PASSADO…

Page 62: Do MONOLÍTICO à arquitetura distribuída

Produto 2012

Page 63: Do MONOLÍTICO à arquitetura distribuída

1.Validar as hipóteses de negócio

Produto 2012

Page 64: Do MONOLÍTICO à arquitetura distribuída

1.Validar as hipóteses de negócio2.Domínio de negócio mudava

Produto 2012

Page 65: Do MONOLÍTICO à arquitetura distribuída

1.Validar as hipóteses de negócio2.Domínio de negócio mudava3.Sobrevivência era o lema

Produto 2012

Page 66: Do MONOLÍTICO à arquitetura distribuída

1.Validar as hipóteses de negócio2.Domínio de negócio mudava3.Sobrevivência era o lema4.Agregar valor ao negócio era o lema

Produto 2012

Page 67: Do MONOLÍTICO à arquitetura distribuída

1.Validar as hipóteses de negócio2.Domínio de negócio mudava3.Sobrevivência era o lema4.Agregar valor ao negócio era o lema5.Com feedback rápido…

Produto 2012

Page 68: Do MONOLÍTICO à arquitetura distribuída

Tecnologia 2012

Page 69: Do MONOLÍTICO à arquitetura distribuída

Tecnologia 2012

1.Aplicação Rails única

Page 70: Do MONOLÍTICO à arquitetura distribuída

Tecnologia 2012

1.Aplicação Rails única2.Ganhamos velocidade nas entregas

Page 71: Do MONOLÍTICO à arquitetura distribuída

Tecnologia 2012

1.Aplicação Rails única2.Ganhamos velocidade nas entregas3.Cycle time reduzido

Page 72: Do MONOLÍTICO à arquitetura distribuída

Tecnologia 2012

1.Aplicação Rails única2.Ganhamos velocidade nas entregas3.Cycle time reduzido4.Iterações curtas e feedback rápido

Page 73: Do MONOLÍTICO à arquitetura distribuída

Desenvolvimento "GO LHAMA"

Page 74: Do MONOLÍTICO à arquitetura distribuída

Desenvolvimento "GO LHAMA"

Page 75: Do MONOLÍTICO à arquitetura distribuída

Tentando IMPOR qualidade

Page 76: Do MONOLÍTICO à arquitetura distribuída

Features

Mudanças menos frequentes

Mudanças mais frequentesMonolítico Rails

Page 77: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

Page 78: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil

Page 79: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente

Page 80: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente3.Consulta dados externos

Page 81: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente3.Consulta dados externos4.Checagens de crédito

Page 82: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente3.Consulta dados externos4.Checagens de crédito5.Tabela FIPE, Correios, PROCON

Page 83: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente3.Consulta dados externos4.Checagens de crédito5.Tabela FIPE, Correios, PROCON6.CRM interno

Page 84: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente3.Consulta dados externos4.Checagens de crédito5.Tabela FIPE, Correios, PROCON6.CRM interno7.Comunicação com cliente controlada

Page 85: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente3.Consulta dados externos4.Checagens de crédito5.Tabela FIPE, Correios, PROCON6.CRM interno7.Comunicação com cliente controlada8.Dados cadastrais e documentação dos produtos

Page 86: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente3.Consulta dados externos4.Checagens de crédito5.Tabela FIPE, Correios, PROCON6.CRM interno7.Comunicação com cliente controlada8.Dados cadastrais e documentação dos produtos9.Integração com bancos parceiros

Page 87: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente3.Consulta dados externos4.Checagens de crédito5.Tabela FIPE, Correios, PROCON6.CRM interno7.Comunicação com cliente controlada8.Dados cadastrais e documentação dos produtos9.Integração com bancos parceiros10.API BankFacil

Page 88: Do MONOLÍTICO à arquitetura distribuída

Produto evoluindo…

1.Novo portal BankFacil2.Preocupação principal com comportamento do cliente3.Consulta dados externos4.Checagens de crédito5.Tabela FIPE, Correios, PROCON6.CRM interno7.Comunicação com cliente controlada8.Dados cadastrais e documentação dos produtos9.Integração com bancos parceiros10.API BankFacil11.Relatórios internos, etc

Page 89: Do MONOLÍTICO à arquitetura distribuída

DOMÍNIO de negócio

CRESCENDO rápido

Page 90: Do MONOLÍTICO à arquitetura distribuída

Features Legadas

Features Novas

Mudanças menos frequentes

Mudanças mais frequentesMonolítico Rails

Page 91: Do MONOLÍTICO à arquitetura distribuída

como VOLTAMOS

a ter AGILIDADE?

Page 92: Do MONOLÍTICO à arquitetura distribuída

5 features, mesmo DEPLOYZÃO? Sim!

Page 93: Do MONOLÍTICO à arquitetura distribuída

5 features, mesmo DEPLOYZÃO? Sim!

Page 94: Do MONOLÍTICO à arquitetura distribuída
Page 95: Do MONOLÍTICO à arquitetura distribuída

CHEGOU A HORA de

separar ESSE TROÇO?

Page 96: Do MONOLÍTICO à arquitetura distribuída
Page 97: Do MONOLÍTICO à arquitetura distribuída

POR QUE?

Page 98: Do MONOLÍTICO à arquitetura distribuída

POR QUE?

1.Melhorar a velocidade de mudança

Page 99: Do MONOLÍTICO à arquitetura distribuída

POR QUE?

1.Melhorar a velocidade de mudança2.Melhores possibilidades de compor a arquitetura

Page 100: Do MONOLÍTICO à arquitetura distribuída

POR QUE?

1.Melhorar a velocidade de mudança2.Melhores possibilidades de compor a arquitetura3.Melhorar o entendimento do código pelos developers

Page 101: Do MONOLÍTICO à arquitetura distribuída

POR QUE?

1.Melhorar a velocidade de mudança2.Melhores possibilidades de compor a arquitetura3.Melhorar o entendimento do código pelos developers4.Escalar equipes no domínio de negócio

Page 102: Do MONOLÍTICO à arquitetura distribuída

POR QUE?

1.Melhorar a velocidade de mudança2.Melhores possibilidades de compor a arquitetura3.Melhorar o entendimento do código pelos developers4.Escalar equipes no domínio de negócio5.Autonomia e responsabilidade das equipes

Page 103: Do MONOLÍTICO à arquitetura distribuída

POR QUE?

1.Melhorar a velocidade de mudança2.Melhores possibilidades de compor a arquitetura3.Melhorar o entendimento do código pelos developers4.Escalar equipes no domínio de negócio5.Autonomia e responsabilidade das equipes6.Diversificação técnica

Page 104: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

Peça

Peça

Peça

+ MICRO + MACRO

Page 105: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

Peça

Peça

Peça

+ MICRO + MACRO

Page 106: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

Peça

Peça

Peça

+ MICRO + MACRO

Page 107: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

• Processo de deploy contínuo

Peça

Peça

Peça

+ MICRO + MACRO

Page 108: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

• Processo de deploy contínuo• Autonomia entre as equipes

Peça

Peça

Peça

+ MICRO + MACRO

Page 109: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

• Processo de deploy contínuo• Autonomia entre as equipes• Comunicação entre os serviços

Peça

Peça

Peça

+ MICRO + MACRO

Page 110: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

• Processo de deploy contínuo• Autonomia entre as equipes• Comunicação entre os serviços• Manter as API’s REST rodando sem quebrar

Peça

Peça

Peça

+ MICRO + MACRO

Page 111: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

• Processo de deploy contínuo• Autonomia entre as equipes• Comunicação entre os serviços• Manter as API’s REST rodando sem quebrar• Escalabilidade e performance

Peça

Peça

Peça

+ MICRO + MACRO

Page 112: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

• Processo de deploy contínuo• Autonomia entre as equipes• Comunicação entre os serviços• Manter as API’s REST rodando sem quebrar• Escalabilidade e performance• Banco descentralizado

Peça

Peça

Peça

+ MICRO + MACRO

Page 113: Do MONOLÍTICO à arquitetura distribuída

COMPLEXIDADES

• Processo de deploy contínuo• Autonomia entre as equipes• Comunicação entre os serviços• Manter as API’s REST rodando sem quebrar• Escalabilidade e performance• Banco descentralizado• Segurança e escolha da tecnologia certa

Peça

Peça

Peça

+ MICRO + MACRO

Page 114: Do MONOLÍTICO à arquitetura distribuída

O que FACILITOU separar?

Page 115: Do MONOLÍTICO à arquitetura distribuída

O que FACILITOU separar?

1.Entidades diferentes do domínio

Page 116: Do MONOLÍTICO à arquitetura distribuída

O que FACILITOU separar?

1.Entidades diferentes do domínio2.Partes que mudam bastante vs. menos

Page 117: Do MONOLÍTICO à arquitetura distribuída

O que FACILITOU separar?

1.Entidades diferentes do domínio2.Partes que mudam bastante vs. menos3.O que mais dói na engenharia

Page 118: Do MONOLÍTICO à arquitetura distribuída

Pontos que na evolução

CONSIDERAMOS

Page 119: Do MONOLÍTICO à arquitetura distribuída

Boas práticas de CÓDIGO na ARQUITETURA

Page 120: Do MONOLÍTICO à arquitetura distribuída

Boas práticas de CÓDIGO na ARQUITETURA

1.Única responsabilidade

Page 121: Do MONOLÍTICO à arquitetura distribuída

Boas práticas de CÓDIGO na ARQUITETURA

1.Única responsabilidade2.Baixo acoplamento

Page 122: Do MONOLÍTICO à arquitetura distribuída

Boas práticas de CÓDIGO na ARQUITETURA

1.Única responsabilidade2.Baixo acoplamento3.Alta coesão

Page 123: Do MONOLÍTICO à arquitetura distribuída

Divisão da EQUIPE

Page 124: Do MONOLÍTICO à arquitetura distribuída

Divisão da EQUIPE

1.Por unidade/capacidade/domínio de negócio

Page 125: Do MONOLÍTICO à arquitetura distribuída

Divisão da EQUIPE

1.Por unidade/capacidade/domínio de negócio2.Equipe contínua em um domínio

Page 126: Do MONOLÍTICO à arquitetura distribuída

Divisão da EQUIPE

1.Por unidade/capacidade/domínio de negócio2.Equipe contínua em um domínio3.Colaboração da equipe em outras peças

Page 127: Do MONOLÍTICO à arquitetura distribuída

Mobile App Empréstimo pessoal

Empréstimo garantia

Financiamento auto

Silos

Consultoria financeira CRM

Page 128: Do MONOLÍTICO à arquitetura distribuída

Aprendizado PEÇAS separadas

Page 129: Do MONOLÍTICO à arquitetura distribuída

Aprendizado PEÇAS separadas

1.Performance - Alguns serviços viraram Async

Page 130: Do MONOLÍTICO à arquitetura distribuída

Aprendizado PEÇAS separadas

1.Performance - Alguns serviços viraram Async2.API - Gem Client de quem provê API

Page 131: Do MONOLÍTICO à arquitetura distribuída

Aprendizado PEÇAS separadas

1.Performance - Alguns serviços viraram Async2.API - Gem Client de quem provê API3.Test - Teste de integração das peças

Page 132: Do MONOLÍTICO à arquitetura distribuída

Aprendizado PEÇAS separadas

1.Performance - Alguns serviços viraram Async2.API - Gem Client de quem provê API3.Test - Teste de integração das peças4.Infra - Provisionamento e Deployment

Page 133: Do MONOLÍTICO à arquitetura distribuída

Aprendizado PEÇAS separadas

1.Performance - Alguns serviços viraram Async2.API - Gem Client de quem provê API3.Test - Teste de integração das peças4.Infra - Provisionamento e Deployment5.Arquitetura - Começar monolítico e ir extraindo

Page 134: Do MONOLÍTICO à arquitetura distribuída
Page 135: Do MONOLÍTICO à arquitetura distribuída

Equipe:

Page 136: Do MONOLÍTICO à arquitetura distribuída

Equipe:• ~10-30 pessoas em ~3-7 times

Page 137: Do MONOLÍTICO à arquitetura distribuída

Equipe:• ~10-30 pessoas em ~3-7 times• ~18 repositórios GitHub

Page 138: Do MONOLÍTICO à arquitetura distribuída

Equipe:• ~10-30 pessoas em ~3-7 times• ~18 repositórios GitHub

Produção:

Page 139: Do MONOLÍTICO à arquitetura distribuída

Equipe:• ~10-30 pessoas em ~3-7 times• ~18 repositórios GitHub

Produção:• 11 projetos (peças)

Page 140: Do MONOLÍTICO à arquitetura distribuída

Equipe:• ~10-30 pessoas em ~3-7 times• ~18 repositórios GitHub

Produção:• 11 projetos (peças)• 5 APIs

Page 141: Do MONOLÍTICO à arquitetura distribuída

Equipe:• ~10-30 pessoas em ~3-7 times• ~18 repositórios GitHub

Produção:• 11 projetos (peças)• 5 APIs• 7 MySQL

Page 142: Do MONOLÍTICO à arquitetura distribuída

Equipe:• ~10-30 pessoas em ~3-7 times• ~18 repositórios GitHub

Produção:• 11 projetos (peças)• 5 APIs• 7 MySQL

Monitoramento:

Page 143: Do MONOLÍTICO à arquitetura distribuída

Equipe:• ~10-30 pessoas em ~3-7 times• ~18 repositórios GitHub

Produção:• 11 projetos (peças)• 5 APIs• 7 MySQL

Monitoramento:• Newrelic

Page 144: Do MONOLÍTICO à arquitetura distribuída

Equipe:• ~10-30 pessoas em ~3-7 times• ~18 repositórios GitHub

Produção:• 11 projetos (peças)• 5 APIs• 7 MySQL

Monitoramento:• Newrelic• Amazon CloudWatch

Page 145: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Page 146: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Page 147: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Page 148: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Page 149: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Framework Pub / Sub

Page 150: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Framework Pub / Sub

Page 151: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Framework Pub / Sub

Page 152: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Framework Pub / Sub

BI

Page 153: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Framework Pub / Sub

BI

Page 154: Do MONOLÍTICO à arquitetura distribuída

Mailer

Produto Integrações

Tracker

Admin Relatórios

Followup Banco

Utilitários

CRM Interno

Catalogo Cartões

JoomlaPortalGranaAqui

Arquitetura distribuída

Framework Pub / Sub

https://github.com/promiscuous-io/promiscuous

BI

Page 155: Do MONOLÍTICO à arquitetura distribuída

Códigoo… :)

Page 156: Do MONOLÍTICO à arquitetura distribuída

Promiscuous

https://github.com/promiscuous-io/promiscuous

Page 157: Do MONOLÍTICO à arquitetura distribuída

Antes de fatiar o app…

Page 158: Do MONOLÍTICO à arquitetura distribuída

Antes de fatiar o app…

1.Conheça seu problema e domínio muito bem

Page 159: Do MONOLÍTICO à arquitetura distribuída

Antes de fatiar o app…

1.Conheça seu problema e domínio muito bem2.Pondere as complexidades com cuidado

Page 160: Do MONOLÍTICO à arquitetura distribuída

Antes de fatiar o app…

1.Conheça seu problema e domínio muito bem2.Pondere as complexidades com cuidado3.Mudança cultural da equipe pra operar com autonomia

Page 161: Do MONOLÍTICO à arquitetura distribuída

Antes de fatiar o app…

1.Conheça seu problema e domínio muito bem2.Pondere as complexidades com cuidado3.Mudança cultural da equipe pra operar com autonomia4.Evolua do macro ao micro devagar

Page 162: Do MONOLÍTICO à arquitetura distribuída

Antes de fatiar o app…

1.Conheça seu problema e domínio muito bem2.Pondere as complexidades com cuidado3.Mudança cultural da equipe pra operar com autonomia4.Evolua do macro ao micro devagar5.Busque a maturidade para conseguir deploy contínuo

Page 163: Do MONOLÍTICO à arquitetura distribuída

Antes de fatiar o app…

1.Conheça seu problema e domínio muito bem2.Pondere as complexidades com cuidado3.Mudança cultural da equipe pra operar com autonomia4.Evolua do macro ao micro devagar5.Busque a maturidade para conseguir deploy contínuo6.Esteja certo que está maduro o suficiente

Page 164: Do MONOLÍTICO à arquitetura distribuída

By ThoughtWorks

Page 165: Do MONOLÍTICO à arquitetura distribuída

Mensagens finais…

Page 166: Do MONOLÍTICO à arquitetura distribuída

Esse ano de 2015 vai rolar :)

Page 167: Do MONOLÍTICO à arquitetura distribuída

Esse ano de 2015 vai rolar :)

Page 168: Do MONOLÍTICO à arquitetura distribuída

Esse ano de 2015 vai rolar :)@brunoadacosta

Page 169: Do MONOLÍTICO à arquitetura distribuída

micro lib em JSOPEN SOURCE

Page 170: Do MONOLÍTICO à arquitetura distribuída

http://bankfacil.github.io/vanilla-masker/

Page 171: Do MONOLÍTICO à arquitetura distribuída
Page 172: Do MONOLÍTICO à arquitetura distribuída

CONTRATANDO - bankfacil.com.br/devs

Page 173: Do MONOLÍTICO à arquitetura distribuída
Page 174: Do MONOLÍTICO à arquitetura distribuída
Page 175: Do MONOLÍTICO à arquitetura distribuída

Leandro Alvares da Costa http://leandroadacosta.com

@leandroadacosta

Obrigado!


Top Related