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

Post on 21-Jul-2020

6 views 0 download

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?