A Arte do Deployment - WebDevCamp

1,704 views
1,661 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,704
On SlideShare
0
From Embeds
0
Number of Embeds
89
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A Arte do Deployment - WebDevCamp

  1. 1. a arte do deployment (ou uma pequena parte dela...) George Guimarães [email_address] WebDevCamp dez/2007
  2. 2. desenvolvimento deployment escalabilidade
  3. 3. Quem? <ul><li>George Guimarães </li></ul><ul><li>Pagestacker </li></ul><ul><li>não-programador (ooops...) </li></ul>
  4. 4. dimensionando seu web farm
  5. 5. requisição web típica Gateway porta 80 dinâmico? HTTP Request não sim gateways Apache pound nginx
  6. 6. nginx <ul><li>leve </li></ul><ul><li>footprint pequeno (10MB para 10k conexões) </li></ul><ul><li>performance </li></ul><ul><li>“ tente não acessar o disco” </li></ul><ul><li>no-drop policy </li></ul>
  7. 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
  8. 8. e agora ?
  9. 9. quantos mongréis ?
  10. 10. comece com nenhum mongrel páginas estáticas pequenas (~7kb) direto pelo gateway server ( nginx )
  11. 11. httperf 1998 (!) muito utilizado muito flexível Obs.: quanto mais perto o httperf do seu servidor, melhor
  12. 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. 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
  15. 16. Nagios chato de configurar mas funciona bem mas é chato sério...
  16. 17. ganglia Berkeley distribuído visão agregada
  17. 18. monit <ul><li>configuração legível </li></ul><ul><li>monitora -> regra -> atua </li></ul><ul><li>controle de malha fechada </li></ul><ul><li>operador de datacenter robótico </li></ul>
  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
  19. 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
  20. 22. munin <ul><li>foco em performance </li></ul><ul><li>gráficos, muitos gráficos </li></ul>
  21. 25. mais por vir... Ezra Zygmuntowicz (EngineYard) Bruce Tate (From Java to Ruby)
  22. 26. ?! George Guimarães http://pagestacker.com http://blog.georgeguimaraes.com [email_address]

×