Top Banner
deployment, capacity planning, escalabilidade e outros tópicos que deveriam ser mais abordados em eventos como esse... George Guimarães [email protected] Rails Summit 2008
66

Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

Jul 05, 2015

Download

Technology

Apresentação no Rails Summit.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

deployment, capacity planning, escalabilidade e outros tópicos que deveriam ser mais

abordados em eventos como esse...

George Guimarã[email protected]

Rails Summit 2008

Page 2: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

= web operations

George Guimarã[email protected]

Rails Summit 2008

Page 3: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

fator econômico também é importante

Page 4: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Person.find_by_name(“George Guimarães”)

• engenheiro pela Escola Politécnica

• 23 anos

• apaixonado por infra-estrutura

• co-fundador do Pagestacker

Page 5: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Page 6: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Page 7: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Page 8: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Page 9: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Page 10: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

De onde veio o

?• 200 equipes participantes

• 92 entregaram aplicativos rodando

Page 11: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Page 12: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

?

Page 13: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

desenvolvimento produção escalabilidade

Page 14: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

• Hospedagem compartilhada

• VPS (virtual private server)– mini-clouds da Locaweb

• Servidores dedicados– uau! muita performance!

Opções de máquinas

Page 15: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

como rodar em produção?

Page 16: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

requisição web típicaGateway

porta 80

dinâmico?

HTTP Request

não

sim

gatewaysApachepoundnginx

Page 17: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

caso 1

Apache + mod_rails+ ruby enterprise edition

Hongli Lai e Ninh Bui estão aqui!

Page 18: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

caso 2

nginx + thin+ ruby enterprise edition (?)

Igor Sysoev e Marc-André NÃO estão aqui!

Page 19: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

como enviar meu código para produção?

Page 20: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

SVN / GIT

Servidor(es)

Capistrano

Page 21: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Servidor(es)

cap deploy

Capistrano

SVN / GIT

Page 22: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Servidor(es)

cap deploy

Capistrano

SVN / GIT

Page 23: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Capistrano para a Locaweb

gem sources -a http://gems.github.com sudo gem install akitaonrails-locarails

cd seu_projeto locarails .

[... responder as questoes ...] cap deploy:setup

cap deploy

Page 24: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

monitoramento

Page 25: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Nagioschato de configurarmas funciona muito bemmas é chatosério...

Page 26: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

gangliaBerkeleydistribuídovisão agregada

Page 27: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

munin

• foco em performance

• gráficos, muitos gráficos

Page 28: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Page 29: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Page 30: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Monitorar é importante?

• Achar limites da sua arquitetura• Permite descobrir gargalos• Anormalidades e picos de uso

• Previsão de falta de recursos• $$$

Page 31: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Page 32: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

capacity planning eescalabilidade

Page 33: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Rails escala?

Page 34: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

que diabos é escalabilidade?!

Page 35: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

que diabos é escalabilidade?!“propriedade de um sistema de

aumentar e não entrar em colapso”

Page 36: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

• Rede• Load balancer• Banco de dados• Sistema operacional• APIs externas• Discos rígidos• CPU• Mercado financeiro• LHC

eles escalam junto?

Page 37: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

o problema é do Rails ou da arquitetura?

Page 38: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

como quantificar ‘escalabilidade’será que é possível?

Page 39: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerilla Capacity Planninge Lei Universal de Escalabilidade!

Page 40: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

capacity planning não é novidade…

Page 41: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Neil Gunther

• PARC, na área de multiprocessadores

• Desenvolveu PDQ (Pretty Damn Quick)

• Consultoria através da Performance Dynamics

• Autor do Guerrilla Capacity Planning (GCaP)

Page 42: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

• Horizonte de planejamento: 3 meses

Page 43: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

• Capacity planning não é apenas sobre o futuro– Queremos mais dos nossos recursos atuais

Page 44: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

• A falácia do “hardware é barato”– seu software tira proveito de mais hardware?

Page 45: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

• Gargalos (bottlenecks) – Você nunca remove um gargalo, apenas adia o

problema

Page 46: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

• Gargalos (bottlenecks) – Você nunca remove um gargalo, apenas adia o

problema

Page 47: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

• Capacity planning não é trivial– Nós pensamos linearmente– Hardware e software são não-lineares

Page 48: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Lei Universal de Escalabilidade

Page 49: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Mundo ideal

número de usuários ou requests/s

número de requests

(bem) atendidos/s

Page 50: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

1º problema: serial vs paralelonúmero de

tarefas feitas/s

número de processadores

Page 51: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

documento web

crawler

mecanismo de busca

banco de dados

thumbnail

identificação de idioma! yay!

paralelo

serial

no Pagestacker...

Page 52: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

1º problema: serial vs paralelonúmero de

tarefas feitas/s

número de processadores

Page 53: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

1º problema: serial vs paralelonúmero de

tarefas feitas/s

número de processadores

também conhecido

como a lei de Amhdal

Page 54: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

2º problema: gargalos

número de usuários ou requests/s

número de requests

(bem) atendidos/s

Page 55: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

0

50

100

150

200

250

300

350

400

450

500

1 2 3 4 5 6

Page 56: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Page 57: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Lei Universal de Escalabilidade

• arrays de disco, SAN• processadores multicore• certos tipos de I/O de rede

• para modelar carga de usuários

Page 58: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

a idéia do GCaP não é ser um GPS…

Page 59: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

…é ser mais como uma bússola

Page 60: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

pense em métodos ágeis… mas é para infra!

Page 61: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

John Allspaw

• Engenheiro de operações do Flickr

• Apresentou na Velocity 2008

• Autor do The Art of Capacity Planning– Método low math

Page 62: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Recapitulando...

• Faça código, mas deployment também é importante.• Gere métricas. Você só consegue gerenciar aquilo

que você mede.• Capacity Planning não é só teoria.

• Escalabilidade está no software. Lembre-se disso!

Page 63: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

www.pagestacker.com

Page 64: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarães. Pagestacker. Rails Summit LA 2008

Tks flickr users!

• http://www.flickr.com/photos/cote/54408562/• http://flickr.com/photos/mocambique/441710601• http://www.flickr.com/photos/minipixel/1499346710/• http://www.flickr.com/photos/jimfrazier/321826176/• http://flickr.com/photos/madmask/541758909/in/pool-35034364797@N01• http://www.flickr.com/photos/ianbroyles/238938407/• http://www.flickr.com/photos/retrocactus/874144543/• http://www.flickr.com/photos/ortiz/100910821/

Page 65: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

George Guimarãeshttp://georgeguimaraes.com

[email protected]: @georgeguimaraes

Muito obrigado! Dúvidas?

Page 66: Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker

www.pagestacker.com

George Guimarãeshttp://georgeguimaraes.com

[email protected]: @georgeguimaraes