estratégias de escablabilidade para serviços online
DESCRIPTION
Estratégias de escablabilidade para serviços online - Fernanda Weiden (Google)TRANSCRIPT
![Page 1: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/1.jpg)
Porque o Google (quase) sempre responde as minhas
perguntas?
Fernanda G WeidenSite Reliability EngineerCluster Management
![Page 2: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/2.jpg)
Missão
"to organize the world's information and make it universally accessible and useful"
![Page 3: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/3.jpg)
O que o Google faz?
e muito mais...
![Page 4: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/4.jpg)
O que está por trás disso tudo?
![Page 5: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/5.jpg)
![Page 6: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/6.jpg)
Sysadmin na indústria...
• Black-box softwareo pouca instrumentação, se existente
• Dimensionamento de hardwareo baseado nas necessidades do softwareo impulsionado por fornecedores
• Monitoramentoo Reação a falhas e imprevistos
![Page 7: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/7.jpg)
Ooops...
![Page 8: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/8.jpg)
Site Reliability Engineering
• "hope is not a strategy"o se você pensa que pode quebrar, provavelmente vaio se você pensa que não vai quebrar, definitivamente vaio de uma maneira que você não pensouo espetacular e "bizarramente"
![Page 9: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/9.jpg)
Reliability by Wikipedia
"Ability of a person or system to perform and maintain its functions in routine circumstances, as well as hostile or
unexpected circumstances."
![Page 10: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/10.jpg)
Site Reliability Engineering
• 50% sysadmins, 50% engenheiros de software• Acesso completo ao código fonte
o participação em revisão de design • PRR• Instalação
o dimensionamento “job” - CPU, RAM, disk, network • Capacity Planning
o crescimento orgânico, mudanças de infraestrutura, lançamento de funcionalidades
• Monitores/alertas• Gerenciamento de clusters• Lançamento de software • Engenharia de software
![Page 11: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/11.jpg)
Site Reliability Engineering
• Código fonte é tudoo código controladoo builds e rollouts automatizados
• Sistema de revisão em par o estritos critérios de aceitação o guias de estilo, testes de pre-submito subject ownership/expertise
• Processo flexível: time, experts• Engineering driven (not management)
o Critérios técnicos prevalecem
![Page 12: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/12.jpg)
Números que todos engenheir@s de computação deveria saber...L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns Mutex lock/unlock 100 ns Main memory reference 100 ns Compress 1K bytes with Zippy 2,500 ns Send 2K bytes over 1 Gbps network 20,000 ns Read 1 MB sequentially from memory 250,000 ns Round trip within same datacenter 500,000 ns Disk seek 10,000,000 ns Read 1 MB sequentially from network 10,000,000 ns Read 1 MB sequentially from disk 30,000,000 ns Send packet CA->Netherlands->CA 150,000,000 ns
![Page 13: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/13.jpg)
Filosofia de hardware no Google
• Eficiência em consumo de energia• Datacenters com alta densidade de uso• Software deve sobreviver outages planejados ou não• Replique serviços inteiros, e não componentes de hardware
![Page 14: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/14.jpg)
Um ano na vida de um cluster...
~0.5 overheating (power down most machines in <5 mins, ~1-2 days to recover) ~1 PDU failure (~500-1000 machines suddenly disappear, ~6 hours to come back) ~1 rack-move (plenty of warning, ~500-1000 machines powered down, ~6 hours) ~1 network rewiring (rolling ~5% of machines down over 2-day span) ~20 rack failures (40-80 machines instantly disappear, 1-6 hours to get back) ~5 racks go “wonky” (40-80 machines see 50% packet loss) ~8 network maintenances (4 might cause ~30-minute random connectivity losses) ~12 router reloads (takes out DNS and external vips for a couple minutes) ~3 router failures (have to immediately pull traffic for an hour) ~dozens of minor 30-second blips for dns ~1000 individual machine failures ~thousands of hard drive failures
... slow disks, bad memory, misconfigured machines, flaky machines, etc.
![Page 15: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/15.jpg)
Google cluster
• 1000s máquinas, poucas configurações• Sistema de arquivos (GFS) + Cluster scheduling system• Geralmente 100s a 1000s de jobs ativos
o alguns com 1 task, outros com 1000s
![Page 16: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/16.jpg)
Redundância e failover
• Deployment: N+2 o com crescimento de N, overhead por redundância diminui
(%) o separação de dados de usuários e/ou aplicação
• Utilize balanceamento de carga como mecanismo de failovero desvia tráfego para outro cluster automaticamente
• Evita downtime de manutenção desviando tráfego
![Page 17: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/17.jpg)
Balanceamento de carga multi-layer
![Page 18: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/18.jpg)
Map reduce
• MapReduce o Lê um monte de dados o Mapeia: extrai somente a parte dos dados que são
interessante para determinado processo o Shuffle e Sort o Reduzir: agrega, resume, filtra ou transformao Escreve os resultados
![Page 19: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/19.jpg)
• Reliability faz parte do processo de design, desenvolvimento e deployment de um serviço.
• Assim como não existe queijo demais em pizza, não existe redundância demais em serviços. Quanto mais 9s, melhor!
E ainda assim, nós somente quase sempre respondemos suas perguntas...
![Page 20: Estratégias de escablabilidade para serviços online](https://reader036.vdocuments.site/reader036/viewer/2022081404/558b0c5bd8b42aae2d8b457a/html5/thumbnails/20.jpg)
Perguntas?
Não se acanhe! Muito provavelmente sua pergunta será respondida :-)
Fernanda G Weiden <[email protected]>