SlideShare una empresa de Scribd logo
1 de 45
escalando aplicações web
        @andrewsmedina
@andrewsmedina
@flaviamissi
escalabilidade
escalabilidade vertical
escalabilidade horizontal
distribua
varnish

                                               app



                                      mysql          memcached
globo
 .com   plataformas de conteúdo e vendas
distribua
        ‣   banco de dados
        ‣   proxy
        ‣   cache
        ‣   app



globo
 .com   plataformas de conteúdo e vendas
varnish


                  api rest                           dashboard



                     mysql                           memcached
globo
 .com   plataformas de conteúdo e vendas
varnish


                      api rest                            dashboard



        mysql                              memcached
globo
 .com   plataformas de conteúdo e vendas
varnish


                      api rest                         dashboard



        mysql                        mysql      memcached
globo
 .com   plataformas de conteúdo e vendas
padrões
muitos requests (get)




                                           app

globo
 .com   plataformas de conteúdo e vendas
static generator




        static generator
                                           disco
                           app
globo
 .com   plataformas de conteúdo e vendas
static generator

                webserver
                  admin
                                           webserver

                                            disco
                           app
globo
 .com   plataformas de conteúdo e vendas
static generator
        ‣   performático
        ‣   barato
        ‣   escalável
        ‣   caro para regerar o conteúdo



globo
 .com   plataformas de conteúdo e vendas
static generator
        ‣   django static generator




globo
 .com   plataformas de conteúdo e vendas
page cache



                                           page cache


                           app                          disco
globo
 .com   plataformas de conteúdo e vendas
page cache
        ‣   headers




globo
 .com   plataformas de conteúdo e vendas
page cache
        ‣   ?_t=330409503




globo
 .com   plataformas de conteúdo e vendas
page cache
        ‣   graceful




globo
 .com   plataformas de conteúdo e vendas
page cache
        ‣   varnish
        ‣   nginx




globo
 .com   plataformas de conteúdo e vendas
muitos requests (post)




                                           app

globo
 .com   plataformas de conteúdo e vendas
io não bloqueante
        ‣   twisted
        ‣   gevent
        ‣   tornado




globo
 .com   plataformas de conteúdo e vendas
twisted
        ‣   perfomático
        ‣   estável
        ‣   difícil de depurar




globo
 .com   plataformas de conteúdo e vendas
tornado
        ‣   perfomático
        ‣   estável
        ‣   fácil




globo
 .com   plataformas de conteúdo e vendas
gevent
        ‣   perfomático
        ‣   estável
        ‣   fácil




globo
 .com   plataformas de conteúdo e vendas
queue
                                           broker



                                            app
globo
 .com   plataformas de conteúdo e vendas
queue
        ‣   rabbitMQ
        ‣   zeroMQ
        ‣   activeMQ




globo
 .com   plataformas de conteúdo e vendas
queue
        ‣   varnish
        ‣   nginx




globo
 .com   plataformas de conteúdo e vendas
quando escalar?
profiling
        ‣   apache benchmarking
        ‣   jmeter
        ‣   siege




globo
 .com   plataformas de conteúdo e vendas
monitoração
        ‣   munin
        ‣   circus
        ‣   new relic




globo
 .com   plataformas de conteúdo e vendas
bônus
escalando de forma transparente
load balance


                                               app


globo
 .com   plataformas de conteúdo e vendas
load balance


                                           app          app


globo
 .com   plataformas de conteúdo e vendas
cloud computing
load balance


                                           vm          vm


globo
 .com   plataformas de conteúdo e vendas
tsuru.io
Obrigado!

Más contenido relacionado

Más de Andrews Medina

testando interfaces web
testando interfaces webtestando interfaces web
testando interfaces webAndrews Medina
 
desenvolvendo jogos para android
desenvolvendo jogos para androiddesenvolvendo jogos para android
desenvolvendo jogos para androidAndrews Medina
 
técnica de desenvolvimento de jogos para web
técnica de desenvolvimento de jogos para webtécnica de desenvolvimento de jogos para web
técnica de desenvolvimento de jogos para webAndrews Medina
 
realtime - passado, presente e futuro
realtime - passado, presente e futurorealtime - passado, presente e futuro
realtime - passado, presente e futuroAndrews Medina
 
Haskell para pythonistas
Haskell para pythonistasHaskell para pythonistas
Haskell para pythonistasAndrews Medina
 
animações e jogos além do canvas
animações e jogos além do canvasanimações e jogos além do canvas
animações e jogos além do canvasAndrews Medina
 
escalando aplicações django
escalando aplicações djangoescalando aplicações django
escalando aplicações djangoAndrews Medina
 
Desenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonDesenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonAndrews Medina
 

Más de Andrews Medina (10)

Python 3 - tutorial
Python 3 - tutorialPython 3 - tutorial
Python 3 - tutorial
 
testando interfaces web
testando interfaces webtestando interfaces web
testando interfaces web
 
desenvolvendo jogos para android
desenvolvendo jogos para androiddesenvolvendo jogos para android
desenvolvendo jogos para android
 
técnica de desenvolvimento de jogos para web
técnica de desenvolvimento de jogos para webtécnica de desenvolvimento de jogos para web
técnica de desenvolvimento de jogos para web
 
realtime - passado, presente e futuro
realtime - passado, presente e futurorealtime - passado, presente e futuro
realtime - passado, presente e futuro
 
Haskell para pythonistas
Haskell para pythonistasHaskell para pythonistas
Haskell para pythonistas
 
animações e jogos além do canvas
animações e jogos além do canvasanimações e jogos além do canvas
animações e jogos além do canvas
 
escalando aplicações django
escalando aplicações djangoescalando aplicações django
escalando aplicações django
 
Desenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonDesenvolvimento de Jogos em Python
Desenvolvimento de Jogos em Python
 
Django Show
Django ShowDjango Show
Django Show
 

Escalando aplicações web

  • 1. escalando aplicações web @andrewsmedina
  • 5.
  • 7.
  • 9.
  • 11. varnish app mysql memcached globo .com plataformas de conteúdo e vendas
  • 12. distribua ‣ banco de dados ‣ proxy ‣ cache ‣ app globo .com plataformas de conteúdo e vendas
  • 13. varnish api rest dashboard mysql memcached globo .com plataformas de conteúdo e vendas
  • 14. varnish api rest dashboard mysql memcached globo .com plataformas de conteúdo e vendas
  • 15. varnish api rest dashboard mysql mysql memcached globo .com plataformas de conteúdo e vendas
  • 17. muitos requests (get) app globo .com plataformas de conteúdo e vendas
  • 18. static generator static generator disco app globo .com plataformas de conteúdo e vendas
  • 19. static generator webserver admin webserver disco app globo .com plataformas de conteúdo e vendas
  • 20. static generator ‣ performático ‣ barato ‣ escalável ‣ caro para regerar o conteúdo globo .com plataformas de conteúdo e vendas
  • 21. static generator ‣ django static generator globo .com plataformas de conteúdo e vendas
  • 22. page cache page cache app disco globo .com plataformas de conteúdo e vendas
  • 23. page cache ‣ headers globo .com plataformas de conteúdo e vendas
  • 24. page cache ‣ ?_t=330409503 globo .com plataformas de conteúdo e vendas
  • 25. page cache ‣ graceful globo .com plataformas de conteúdo e vendas
  • 26. page cache ‣ varnish ‣ nginx globo .com plataformas de conteúdo e vendas
  • 27. muitos requests (post) app globo .com plataformas de conteúdo e vendas
  • 28. io não bloqueante ‣ twisted ‣ gevent ‣ tornado globo .com plataformas de conteúdo e vendas
  • 29. twisted ‣ perfomático ‣ estável ‣ difícil de depurar globo .com plataformas de conteúdo e vendas
  • 30. tornado ‣ perfomático ‣ estável ‣ fácil globo .com plataformas de conteúdo e vendas
  • 31. gevent ‣ perfomático ‣ estável ‣ fácil globo .com plataformas de conteúdo e vendas
  • 32. queue broker app globo .com plataformas de conteúdo e vendas
  • 33. queue ‣ rabbitMQ ‣ zeroMQ ‣ activeMQ globo .com plataformas de conteúdo e vendas
  • 34. queue ‣ varnish ‣ nginx globo .com plataformas de conteúdo e vendas
  • 36. profiling ‣ apache benchmarking ‣ jmeter ‣ siege globo .com plataformas de conteúdo e vendas
  • 37. monitoração ‣ munin ‣ circus ‣ new relic globo .com plataformas de conteúdo e vendas
  • 39. escalando de forma transparente
  • 40. load balance app globo .com plataformas de conteúdo e vendas
  • 41. load balance app app globo .com plataformas de conteúdo e vendas
  • 43. load balance vm vm globo .com plataformas de conteúdo e vendas

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n