66
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

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

Embed Size (px)

DESCRIPTION

Apresentação no Rails Summit.

Citation preview

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

abordados em eventos como esse...

George Guimarã[email protected]

Rails Summit 2008

= web operations

George Guimarã[email protected]

Rails Summit 2008

fator econômico também é importante

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

De onde veio o

?• 200 equipes participantes

• 92 entregaram aplicativos rodando

?

George Guimarães. Pagestacker. Rails Summit LA 2008

desenvolvimento produção escalabilidade

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

George Guimarães. Pagestacker. Rails Summit LA 2008

como rodar em produção?

George Guimarães. Pagestacker. Rails Summit LA 2008

requisição web típicaGateway

porta 80

dinâmico?

HTTP Request

não

sim

gatewaysApachepoundnginx

George Guimarães. Pagestacker. Rails Summit LA 2008

caso 1

Apache + mod_rails+ ruby enterprise edition

Hongli Lai e Ninh Bui estão aqui!

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!

George Guimarães. Pagestacker. Rails Summit LA 2008

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

George Guimarães. Pagestacker. Rails Summit LA 2008

SVN / GIT

Servidor(es)

Capistrano

George Guimarães. Pagestacker. Rails Summit LA 2008

Servidor(es)

cap deploy

Capistrano

SVN / GIT

George Guimarães. Pagestacker. Rails Summit LA 2008

Servidor(es)

cap deploy

Capistrano

SVN / GIT

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

George Guimarães. Pagestacker. Rails Summit LA 2008

monitoramento

George Guimarães. Pagestacker. Rails Summit LA 2008

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

George Guimarães. Pagestacker. Rails Summit LA 2008

gangliaBerkeleydistribuídovisão agregada

George Guimarães. Pagestacker. Rails Summit LA 2008

munin

• foco em performance

• gráficos, muitos gráficos

George Guimarães. Pagestacker. Rails Summit LA 2008

George Guimarães. Pagestacker. Rails Summit LA 2008

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• $$$

George Guimarães. Pagestacker. Rails Summit LA 2008

George Guimarães. Pagestacker. Rails Summit LA 2008

capacity planning eescalabilidade

George Guimarães. Pagestacker. Rails Summit LA 2008

Rails escala?

George Guimarães. Pagestacker. Rails Summit LA 2008

que diabos é escalabilidade?!

George Guimarães. Pagestacker. Rails Summit LA 2008

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

aumentar e não entrar em colapso”

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?

George Guimarães. Pagestacker. Rails Summit LA 2008

o problema é do Rails ou da arquitetura?

George Guimarães. Pagestacker. Rails Summit LA 2008

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

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerilla Capacity Planninge Lei Universal de Escalabilidade!

George Guimarães. Pagestacker. Rails Summit LA 2008

capacity planning não é novidade…

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)

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

• Horizonte de planejamento: 3 meses

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

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

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

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

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

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

problema

George Guimarães. Pagestacker. Rails Summit LA 2008

Guerrilla manual

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

problema

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

George Guimarães. Pagestacker. Rails Summit LA 2008

Lei Universal de Escalabilidade

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

George Guimarães. Pagestacker. Rails Summit LA 2008

1º problema: serial vs paralelonúmero de

tarefas feitas/s

número de processadores

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...

George Guimarães. Pagestacker. Rails Summit LA 2008

1º problema: serial vs paralelonúmero de

tarefas feitas/s

número de processadores

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

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

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

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

George Guimarães. Pagestacker. Rails Summit LA 2008

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

George Guimarães. Pagestacker. Rails Summit LA 2008

…é ser mais como uma bússola

George Guimarães. Pagestacker. Rails Summit LA 2008

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

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

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!

www.pagestacker.com

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/

George Guimarãeshttp://georgeguimaraes.com

[email protected]: @georgeguimaraes

Muito obrigado! Dúvidas?

www.pagestacker.com

George Guimarãeshttp://georgeguimaraes.com

[email protected]: @georgeguimaraes