Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de...
Transcript of Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de...
Um dia na vida de um Web Developer na Spotify
QCon SP 2019
Henrique Truta | Yuri Teixeira
● Quem somos?● De onde viemos?● Para onde vamos?● E a WEB com isso?
Em números:
Usuários mensais: 217 miEm 79 países50 mi músicas + podcasts3 bi playlists
Tecnologia e impacto:
+10 mi requisições / s (pico)~1500 desenvolvedores+6000 mudanças por dia
A Web em 2014.
(Até meados de 2010) (A partir de 2012… até hoje)
("Solução caseira", entre 2010 e 2012)
8
9
Panorama da Web
● Foco máximo no produto e mínimo nos processos
● Soluções proprietárias para APIs
● Autonomia com pouco alinhamento
● Definitivamente, não era a prioridade
na primeira classe...enquanto isso,
● Guildas se alinhavam
● Microsserviços e modularização
● Padronização e documentação
● Suporte dos times de infra-estrutura
Backends e Desktop/Mobile amadureciam
E a web?
Desafios à frente:
Crescimento exponencial
Big players também se interessavampelo mercado
Experimentar é preciso, logo, acelerar também
(em todos os sentidos)
Tendências
Ubiquidade da web (browsers como containers, js servidores, BDs e até
wearables)
Novos produtos dependentes de web apps
com casos de uso mais sofisticados
Engajamento e expertise em JS cresciam, internamente e externamente
T-SHAPED DEVS ou no bom português, "devs perfil T"
TESPE
CIA
LIST
A
GENERALISTA
Web se consolidando como "cidadão de primeira classe"
WEB INFRA: construindo infra JUNTOS
Guildas web globais e regionais
Compartilhamento de componentes e bibliotecas
Participação ativa em mudanças no Tech Radar
Node.JS ao invés de PHP para SSR
A web HOJE
JS: ~4K repos / 400 devs PHP: ~170 repos / 25 devsApps web: +50 (só externos)
● Players em browsers desktop e mobile, desktop player (CEF), TVs e video-games (em breve em mais devices populares), Google Cast (dongle, google home e smart displays)
● Spotify para artistas● Ads self-service (propaganda)● ...
● Visualizações: Seu ano na música
Infra-estrutura para Web, versão 2019
28
Gerrit - Antes
29
Github Enterprise
30
31
32
Backstage
Tech docs
33
Onde encontrar informação? Confluence
GitHub Enterprise
Google Drive
Blog interno
spotify.facebook.com
search.spotify.net
Tech docs
34
Tech Docs
Escalando os
35
Provisionamento - antesFoi desde falar com 1 ou 2 pessoas que criavam instâncias no datacenter
Até a solução "moderna", que em vez de falar diretamente, criava um ticket no JIRA
Levava dias para provisionar
36
Provisionamento - hoje
37
Identificando testes instáveis
38
CI/CD - AntesCada time gerenciava seu
próprio Jenkins
Foi criado um conjunto de guidelines para criar e
como manter a instância
Autonomia pros times
39
...
DSL em groovy para configuração das
pipelines
Similar ao Jenkinsfile, que surgiu depois
40
CI/CD - Antes
x200
Ninguém na verdade fazia a devida manutenção
Muitos deixavam de ser descartáveis e viravam
pets
Jenkins 1 não recebe atualização de segurança
há 3 anos
41
CI/CD - HojeSolução interna, centralizada,
de CI/CD
Cuidar tanto da infraestrutura, como da definição das build
pipelines
Evitar lock-in
42
CI/CD - Hoje
43
CI/CD - Feedback
44
HeliosMilhares containers Docker precisam de alguma coordenação
Solução in-house, de código aberto
https://github.com/spotify/helios
45
Helios
Kubernetes
Kubernetes
46
TugboatSolução in-house, abstração de camada de deployment
Hoje controla deployments no Helios e/ou Kubernetes
47
Rollback
48
Ambiente de testes
49
Host
Backstage
pacotesNPM
Artifactory
Tingle
Código-fonte
GitHubEnterprise
build-info.yaml
Google Container Registry
imagem docker
Tugboat Agente helios/k8s
Serviço rodando
build e deploy de um web app
CDN
Google Cloud Storage
Demo
FuturoKubernetes para provisionamento por default
Registros de DNS mais fáceis e rápidos
+ Soluções "1-clique"
+ infra construída em comunidade
Muito Obrigado! <3Perguntas?