Arquitetura distribuída: escalando times e projetos

Post on 15-Jul-2015

100 views 2 download

Transcript of Arquitetura distribuída: escalando times e projetos

ARQUITETURADISTRIBUÍDAESCALANDO TIMES E

PROJETOSGUILHERME GARNIER

@guilhermgarnier

blog.guilhermegarnier.com

ARQUITETURA ORIGINAL DOGLOBOTV (2011/2012)

NOVOSPROJETOS

Transmissões ao vivo

BBB

UFC

Campeonato Brasileiro e estaduais

Olimpíadas de inverno

Acervo Combate/UFC

DIVIDIR PARACONQUISTAR

Dividir os projetos

Dividir o time

NOVOSPROJETOS

eventos: transmissões ao vivo

acervo: acervo de vídeos

COMOINTEGRAR

PROJETOS?

COMPARTILHAMENTO DEBANCO

++ mais simples

-- maior acoplamento entre projetos

CRIAR APIS INTERNAS

++ reduz o escopo de cada domínio

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

COMO MANTERCONSISTÊNCIAVISUAL ENTREPROJETOS?

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

GLOBOTV-UIMAIS UM PROJETO!

componentes padronizados

documentação

facilita correção de bugs

VANTAGENS DAARQUITETURADISTRIBUÍDA

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

DEPLOYS MENORESMais rápidos

Menos riscos

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

PROBLEMASCOM A

ARQUITETURADISTRIBUÍDA

DIVERSOS PROJETOS, MASUM ÚNICO PRODUTO

Manter a consistência visual

Experiência única para o usuário

ATUALIZAÇÕESTRANSVERSAIS

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

Exigem deploys de todos os projetos

CONFIGURAÇÃO MAISCOMPLEXA

Setup do ambiente local mais complexo

Análise de erros mais difícil

DIVIDINDO OTIME

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

CADA TIME FOCANDO EMUM PROJETO

REUNIÕES MENORES E MAISOBJETIVAS

COMOINTEGRAR OS

TIMES?

COMUNICAÇÃO!

times fisicamente próximos

documentação das APIs e projetos

lista de emails única

reuniões de review em sequencia

REFERÊNCIASPOTIFY ENGINEERING

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

culture-part-1/

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

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

@guilhermgarnier

blog.guilhermegarnier.com