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 3Dirceu Pereira Tiegs
 
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...Marlon Willrich
 
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 - PostgreSQLDiego Santos
 
Criando um Website Cacheavel
Criando um Website CacheavelCriando um Website Cacheavel
Criando um Website CacheavelLucas Brasilino
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)Eduardo Bohrer
 
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 - PostgreSQLJohnes Castro
 
PgDay Campinas 2016 - PgBouncer
PgDay Campinas 2016 - PgBouncerPgDay Campinas 2016 - PgBouncer
PgDay Campinas 2016 - PgBouncerFelipe Santos
 
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 JVMAdriano Bonat
 
Oficina de Squid: Filtros Inteligentes
 Oficina de Squid: Filtros Inteligentes Oficina de Squid: Filtros Inteligentes
Oficina de Squid: Filtros InteligentesThiago Finardi
 
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ídosDeroci Nonato Júnior
 
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 Userstdc-globalcode
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)elliando dias
 
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 leopardoFabio Telles Rodriguez
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbThiago Santos
 

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

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 BatistaJoao Galdino Mello de Souza
 
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 - PagestackerGeorge Guimarães
 
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 OttoJoao Galdino Mello de Souza
 
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...Joao Galdino Mello de Souza
 
Workforce planning
Workforce planningWorkforce planning
Workforce planningJim Ketaily
 
Webinar: Operational Best Practices
Webinar: Operational Best PracticesWebinar: Operational Best Practices
Webinar: Operational Best PracticesMongoDB
 
Capacity Planning
Capacity PlanningCapacity Planning
Capacity PlanningMongoDB
 

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

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)Fabiano Weimar
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalRodrigo Campos
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Danilo Filitto
 
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 disciplinadaHenrique 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 DominguesJoao Galdino Mello de Souza
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresDouglas V. Pasqua
 
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 leopardoelliando dias
 
Project HA
Project HAProject HA
Project HAKarpv
 
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 Linuxelliando dias
 
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)Intel Software Brasil
 
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?Marcelo Dieder
 
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 SampleValdir Adorni
 
Manual Kikrotik Completo
Manual Kikrotik CompletoManual Kikrotik Completo
Manual Kikrotik CompletoPortal GSTI
 
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 ScriptsAndrei Carniel
 
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áticaMarcel Nicolay
 

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
 

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]