arquitetura distribuída: escalando times e projetos
TRANSCRIPT
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