Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de...

53
Um dia na vida de um Web Developer na Spotify QCon SP 2019 Henrique Truta | Yuri Teixeira

Transcript of Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de...

Page 1: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

Um dia na vida de um Web Developer na Spotify

QCon SP 2019

Henrique Truta | Yuri Teixeira

Page 2: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

● Quem somos?● De onde viemos?● Para onde vamos?● E a WEB com isso?

Page 3: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco
Page 4: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

Em números:

Usuários mensais: 217 miEm 79 países50 mi músicas + podcasts3 bi playlists

Page 5: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

Tecnologia e impacto:

+10 mi requisições / s (pico)~1500 desenvolvedores+6000 mudanças por dia

Page 6: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

A Web em 2014.

Page 7: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

(Até meados de 2010) (A partir de 2012… até hoje)

("Solução caseira", entre 2010 e 2012)

Page 8: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

8

Page 9: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

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

Page 10: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco
Page 11: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

na primeira classe...enquanto isso,

Page 12: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

● Guildas se alinhavam

● Microsserviços e modularização

● Padronização e documentação

● Suporte dos times de infra-estrutura

Backends e Desktop/Mobile amadureciam

Page 13: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco
Page 14: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco
Page 15: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco
Page 16: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco
Page 17: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco
Page 18: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

E a web?

Page 19: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco
Page 20: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

Desafios à frente:

Crescimento exponencial

Big players também se interessavampelo mercado

Experimentar é preciso, logo, acelerar também

(em todos os sentidos)

Page 21: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

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

Page 22: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco
Page 23: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

T-SHAPED DEVS ou no bom português, "devs perfil T"

Page 24: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

TESPE

CIA

LIST

A

GENERALISTA

Page 25: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

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

Page 26: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

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

Page 27: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

Infra-estrutura para Web, versão 2019

Page 28: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

28

Gerrit - Antes

Page 29: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

29

Github Enterprise

Page 30: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

30

Page 31: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

31

Page 32: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

32

Backstage

Page 33: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

Tech docs

33

Onde encontrar informação? Confluence

GitHub Enterprise

Google Drive

Blog interno

spotify.facebook.com

search.spotify.net

Page 34: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

Tech docs

34

Tech Docs

Page 35: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

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

Page 36: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

36

Provisionamento - hoje

Page 37: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

37

Identificando testes instáveis

Page 38: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

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

Page 39: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

39

...

DSL em groovy para configuração das

pipelines

Similar ao Jenkinsfile, que surgiu depois

Page 40: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

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

Page 41: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

41

CI/CD - HojeSolução interna, centralizada,

de CI/CD

Cuidar tanto da infraestrutura, como da definição das build

pipelines

Evitar lock-in

Page 42: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

42

CI/CD - Hoje

Page 43: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

43

CI/CD - Feedback

Page 44: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

44

HeliosMilhares containers Docker precisam de alguma coordenação

Solução in-house, de código aberto

https://github.com/spotify/helios

Page 45: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

45

Helios

Kubernetes

Kubernetes

Page 46: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

46

TugboatSolução in-house, abstração de camada de deployment

Hoje controla deployments no Helios e/ou Kubernetes

Page 47: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

47

Rollback

Page 48: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

48

Ambiente de testes

Page 49: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

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

Page 50: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

Demo

Page 52: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

FuturoKubernetes para provisionamento por default

Registros de DNS mais fáceis e rápidos

+ Soluções "1-clique"

+ infra construída em comunidade

Page 53: Web Developer na Spotify Um dia na vida de um - QConSP · (Até meados de 2010) (A partir de 2012… até hoje) ("Solução caseira", entre 2010 e 2012) 8. 9 Panorama da Web Foco

Muito Obrigado! <3Perguntas?