Arquitetura distribuída: escalando times e projetos

31
ARQUITETURA DISTRIBUÍDA ESCALANDO TIMES E PROJETOS GUILHERME GARNIER

Transcript of Arquitetura distribuída: escalando times e projetos

Page 1: Arquitetura distribuída: escalando times e projetos

ARQUITETURADISTRIBUÍDAESCALANDO TIMES E

PROJETOSGUILHERME GARNIER

Page 2: Arquitetura distribuída: escalando times e projetos

@guilhermgarnier

blog.guilhermegarnier.com

Page 3: Arquitetura distribuída: escalando times e projetos
Page 4: Arquitetura distribuída: escalando times e projetos
Page 5: Arquitetura distribuída: escalando times e projetos

ARQUITETURA ORIGINAL DOGLOBOTV (2011/2012)

Page 6: Arquitetura distribuída: escalando times e projetos

NOVOSPROJETOS

Transmissões ao vivo

BBB

UFC

Campeonato Brasileiro e estaduais

Olimpíadas de inverno

Acervo Combate/UFC

Page 7: Arquitetura distribuída: escalando times e projetos

DIVIDIR PARACONQUISTAR

Dividir os projetos

Dividir o time

Page 8: Arquitetura distribuída: escalando times e projetos

NOVOSPROJETOS

eventos: transmissões ao vivo

acervo: acervo de vídeos

Page 9: Arquitetura distribuída: escalando times e projetos

COMOINTEGRAR

PROJETOS?

Page 10: Arquitetura distribuída: escalando times e projetos

COMPARTILHAMENTO DEBANCO

++ mais simples

-- maior acoplamento entre projetos

Page 11: Arquitetura distribuída: escalando times e projetos

CRIAR APIS INTERNAS

++ reduz o escopo de cada domínio

++ facilita atualizações (versionamento de APIs)

Page 12: Arquitetura distribuída: escalando times e projetos

COMO MANTERCONSISTÊNCIAVISUAL ENTREPROJETOS?

Page 13: Arquitetura distribuída: escalando times e projetos
Page 14: Arquitetura distribuída: escalando times e projetos

CRIAÇÃO DECOMPONENTES(HTML, CSS, JS)

Page 15: Arquitetura distribuída: escalando times e projetos

GLOBOTV-UIMAIS UM PROJETO!

componentes padronizados

documentação

facilita correção de bugs

Page 16: Arquitetura distribuída: escalando times e projetos
Page 17: Arquitetura distribuída: escalando times e projetos

VANTAGENS DAARQUITETURADISTRIBUÍDA

Page 18: Arquitetura distribuída: escalando times e projetos

PROJETOS MENORES SÃOMAIS FÁCEIS DE GERENCIAR

Menos código

Menos testes

Menos dependências

build mais rápido

Facilita ao corrigir bugs ou atualizar dependências

Page 19: Arquitetura distribuída: escalando times e projetos

DEPLOYS MENORESMais rápidos

Menos riscos

Page 20: Arquitetura distribuída: escalando times e projetos

INFRA MAIS FLEXÍVELNúmero de servidores pode variar por projeto

Page 21: Arquitetura distribuída: escalando times e projetos

PROBLEMASCOM A

ARQUITETURADISTRIBUÍDA

Page 22: Arquitetura distribuída: escalando times e projetos

DIVERSOS PROJETOS, MASUM ÚNICO PRODUTO

Manter a consistência visual

Experiência única para o usuário

Page 23: Arquitetura distribuída: escalando times e projetos

ATUALIZAÇÕESTRANSVERSAIS

Ex: atualização de header, correção de bugs

Exigem deploys de todos os projetos

Page 24: Arquitetura distribuída: escalando times e projetos

CONFIGURAÇÃO MAISCOMPLEXA

Setup do ambiente local mais complexo

Análise de erros mais difícil

Page 25: Arquitetura distribuída: escalando times e projetos

DIVIDINDO OTIME

2012: 4 DEVS, 1 TIME2013: 7 DEVS, 2 TIMES2014: 8 DEVS, 3 TIMES

Page 26: Arquitetura distribuída: escalando times e projetos

CADA TIME FOCANDO EMUM PROJETO

REUNIÕES MENORES E MAISOBJETIVAS

Page 27: Arquitetura distribuída: escalando times e projetos

COMOINTEGRAR OS

TIMES?

Page 28: Arquitetura distribuída: escalando times e projetos

COMUNICAÇÃO!

times fisicamente próximos

documentação das APIs e projetos

lista de emails única

reuniões de review em sequencia

Page 29: Arquitetura distribuída: escalando times e projetos

REFERÊNCIASPOTIFY ENGINEERING

CULTUREhttp://labs.spotify.com/2014/03/27/spotify-engineering-

culture-part-1/

Page 30: Arquitetura distribuída: escalando times e projetos

ESTAMOSCONTRATANDOhttps://github.com/globocom/IWantToWorkAtGloboCom/

Page 31: Arquitetura distribuída: escalando times e projetos

OBRIGADO!slides: https://ggarnier.github.io/arquitetura-distribuida/

@guilhermgarnier

blog.guilhermegarnier.com