SlideShare uma empresa Scribd logo
1 de 26
a arte do deployment (ou uma pequena parte dela...) George Guimarães [email_address] WebDevCamp dez/2007
desenvolvimento deployment escalabilidade
Quem? ,[object Object],[object Object],[object Object]
dimensionando   seu web farm
requisição web típica Gateway porta 80 dinâmico? HTTP Request não sim gateways Apache pound nginx
nginx ,[object Object],[object Object],[object Object],[object Object],[object Object]
mongrel (“vira-lata”) escrito em ruby/c por Zed Shaw rápido apenas 1 requisição por vez (mutex lock) 60~100 MB/instância servidor
e agora ?
quantos mongréis ?
comece com  nenhum  mongrel    páginas  estáticas  pequenas (~7kb)  direto pelo gateway server ( nginx )
httperf  1998 (!) muito  utilizado muito  flexível Obs.: quanto mais  perto  o httperf do seu servidor, melhor
httperf -- hog  -- server  exemplo.com -- port  80 -- uri  /files/arquivo.html -- num-conns  xxxxx dará um limite  máximo  de hits/segundo throughput de  melhor  caso
httperf -- hog  -- server  exemplo.com -- port  80 -- uri  /files/arquivo.html -- num-conns  xxxxx  -- rate  yyyy rodar por  alguns  (~20) segundos checar se rate do  output  é o mesmo adicione mongréis 1 a 1...
 
monitorando   seu web farm
Nagios chato  de configurar mas funciona bem mas é  chato sério...
ganglia Berkeley distribuído visão  agregada
monit ,[object Object],[object Object],[object Object],[object Object]
check process mongrel_8000  with pidfile mongrel.8000.pid  start program = “mongrel_rails cluster::start -C pagestackr.yml --clean --only 8000”  stop program = “mongrel_rails cluster::stop -C pagestackr.yml --clean --only 8000” if  totalmem > 40 MB  for  4 cycles  then  restart  if  cpu > 60%  for  4 cycles  then  restart  if  3 restarts within 5 cycles  then  timeout  group mongrel
check system localhost  if  loadavg  ( 1min )  > 3  then  alert  if  loadavg  ( 5min )  > 2  then  alert  if  memory usage > 60%  then  alert  if  cpu usage  ( user )  > 70%  then  alert  if  cpu usage  ( system )  > 30%  then  alert  if  cpu usage  (wait)  > 20%  then  alert
 
munin ,[object Object],[object Object]
 
 
mais por vir... Ezra Zygmuntowicz (EngineYard) Bruce Tate (From Java to Ruby)
?! George Guimarães http://pagestacker.com http://blog.georgeguimaraes.com [email_address]

Mais conteúdo relacionado

Mais procurados

Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3
Dirceu Pereira Tiegs
 
Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVM
Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVMFuncionamento e otimização da Garbage Collection na Oracle Hotspot JVM
Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVM
Adriano Bonat
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
elliando dias
 

Mais procurados (20)

Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3
 
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
 
Como lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLComo lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQL
 
Criando um Website Cacheavel
Criando um Website CacheavelCriando um Website Cacheavel
Criando um Website Cacheavel
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)
 
Servidor Proxy Squid
Servidor Proxy SquidServidor Proxy Squid
Servidor Proxy Squid
 
Postgres Big data
Postgres Big dataPostgres Big data
Postgres Big data
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
Alta Concorrência com Postgres
Alta Concorrência com PostgresAlta Concorrência com Postgres
Alta Concorrência com Postgres
 
PgDay Campinas 2016 - PgBouncer
PgDay Campinas 2016 - PgBouncerPgDay Campinas 2016 - PgBouncer
PgDay Campinas 2016 - PgBouncer
 
Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVM
Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVMFuncionamento e otimização da Garbage Collection na Oracle Hotspot JVM
Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVM
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
 
Oficina de Squid: Filtros Inteligentes
 Oficina de Squid: Filtros Inteligentes Oficina de Squid: Filtros Inteligentes
Oficina de Squid: Filtros Inteligentes
 
Sistema de Banco de Dados Distribuídos
Sistema de Banco de Dados DistribuídosSistema de Banco de Dados Distribuídos
Sistema de Banco de Dados Distribuídos
 
Apt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queirozApt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queiroz
 
TDC2018SP | Trilha Ruby - Sequel+ para ActiveRecord Heavy Users
TDC2018SP | Trilha Ruby - Sequel+ para ActiveRecord Heavy UsersTDC2018SP | Trilha Ruby - Sequel+ para ActiveRecord Heavy Users
TDC2018SP | Trilha Ruby - Sequel+ para ActiveRecord Heavy Users
 
Replicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManagerReplicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManager
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper Usb
 

Destaque (8)

Capacity Management e o CDB no ITIL-3 por Alex Batista
Capacity Management e o CDB no ITIL-3 por Alex BatistaCapacity Management e o CDB no ITIL-3 por Alex Batista
Capacity Management e o CDB no ITIL-3 por Alex Batista
 
Planejamento de Capacidade
Planejamento de CapacidadePlanejamento de Capacidade
Planejamento de Capacidade
 
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerRails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
 
Capacity planning para ambiente distribuído, por Marcelo Otto
Capacity planning para ambiente distribuído, por Marcelo OttoCapacity planning para ambiente distribuído, por Marcelo Otto
Capacity planning para ambiente distribuído, por Marcelo Otto
 
Capacity Management e Capacity Planning. A prática e a teoria. por João Natal...
Capacity Management e Capacity Planning. A prática e a teoria. por João Natal...Capacity Management e Capacity Planning. A prática e a teoria. por João Natal...
Capacity Management e Capacity Planning. A prática e a teoria. por João Natal...
 
Workforce planning
Workforce planningWorkforce planning
Workforce planning
 
Webinar: Operational Best Practices
Webinar: Operational Best PracticesWebinar: Operational Best Practices
Webinar: Operational Best Practices
 
Capacity Planning
Capacity PlanningCapacity Planning
Capacity Planning
 

Semelhante a A Arte do Deployment - WebDevCamp

Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
Henrique Lima
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno Domingues
Joao Galdino Mello de Souza
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
elliando dias
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
elliando dias
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni
 

Semelhante a A Arte do Deployment - WebDevCamp (20)

Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacional
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno Domingues
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Criando Aplicações Resilientes
Criando Aplicações ResilientesCriando Aplicações Resilientes
Criando Aplicações Resilientes
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Project HA
Project HAProject HA
Project HA
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Vagrant + Puppet
Vagrant + PuppetVagrant + Puppet
Vagrant + Puppet
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
 
Mrtg
MrtgMrtg
Mrtg
 
Manual Kikrotik Completo
Manual Kikrotik CompletoManual Kikrotik Completo
Manual Kikrotik Completo
 
Aula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e ScriptsAula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e Scripts
 
Cartola Fc 2010 - Uma Arquitetura escalável e performática
Cartola Fc 2010 - Uma Arquitetura escalável e performáticaCartola Fc 2010 - Uma Arquitetura escalável e performática
Cartola Fc 2010 - Uma Arquitetura escalável e performática
 
dnad12
dnad12dnad12
dnad12
 

Último

Último (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

A Arte do Deployment - WebDevCamp

  • 1. a arte do deployment (ou uma pequena parte dela...) George Guimarães [email_address] WebDevCamp dez/2007
  • 3.
  • 4. dimensionando seu web farm
  • 5. requisição web típica Gateway porta 80 dinâmico? HTTP Request não sim gateways Apache pound nginx
  • 6.
  • 7. mongrel (“vira-lata”) escrito em ruby/c por Zed Shaw rápido apenas 1 requisição por vez (mutex lock) 60~100 MB/instância servidor
  • 10. comece com nenhum mongrel páginas estáticas pequenas (~7kb) direto pelo gateway server ( nginx )
  • 11. httperf 1998 (!) muito utilizado muito flexível Obs.: quanto mais perto o httperf do seu servidor, melhor
  • 12. httperf -- hog -- server exemplo.com -- port 80 -- uri /files/arquivo.html -- num-conns xxxxx dará um limite máximo de hits/segundo throughput de melhor caso
  • 13. httperf -- hog -- server exemplo.com -- port 80 -- uri /files/arquivo.html -- num-conns xxxxx -- rate yyyy rodar por alguns (~20) segundos checar se rate do output é o mesmo adicione mongréis 1 a 1...
  • 14.  
  • 15. monitorando seu web farm
  • 16. Nagios chato de configurar mas funciona bem mas é chato sério...
  • 17. ganglia Berkeley distribuído visão agregada
  • 18.
  • 19. check process mongrel_8000 with pidfile mongrel.8000.pid start program = “mongrel_rails cluster::start -C pagestackr.yml --clean --only 8000” stop program = “mongrel_rails cluster::stop -C pagestackr.yml --clean --only 8000” if totalmem > 40 MB for 4 cycles then restart if cpu > 60% for 4 cycles then restart if 3 restarts within 5 cycles then timeout group mongrel
  • 20. check system localhost if loadavg ( 1min ) > 3 then alert if loadavg ( 5min ) > 2 then alert if memory usage > 60% then alert if cpu usage ( user ) > 70% then alert if cpu usage ( system ) > 30% then alert if cpu usage (wait) > 20% then alert
  • 21.  
  • 22.
  • 23.  
  • 24.  
  • 25. mais por vir... Ezra Zygmuntowicz (EngineYard) Bruce Tate (From Java to Ruby)
  • 26. ?! George Guimarães http://pagestacker.com http://blog.georgeguimaraes.com [email_address]