Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Performante Web-Apps [de]

Performante Web-Apps [de]

... mit Varnish & Co - getITtogether Feb. 2014 Berlin - 15min Talk; gekürzte Online Version.

Christoph Lühr

February 26, 2014
Tweet

More Decks by Christoph Lühr

Other Decks in Programming

Transcript

  1. Performante Web Apps
    mit Varnish & Co.
    Christoph Lühr / @chluehr
    getITtogether - Berlin 2014

    View Slide

  2. Christoph Lühr
    Head of Development

    View Slide

  3. basilicom
    SEIT
    2000

    View Slide

  4. Image source: http://www.flickr.com/photos/ethanlindsey/321225525/ CC BY 2.0

    View Slide

  5. DEV

    View Slide

  6. View Slide

  7. (#)
    Internet

    View Slide

  8. View Slide

  9. Unicode Character 'HAPPY PERSON RAISING ONE HAND' (U+1F64B)

    View Slide

  10. 1 2 3

    View Slide

  11. Performante
    Web-Apps

    View Slide

  12. statisch dynamisch

    View Slide

  13. Performance
    ➊ ➋ ➌

    View Slide


  14. View Slide

  15. Transfer-Rate

    View Slide

  16. Transfer-Rate

    View Slide


  17. View Slide

  18. Latenz

    View Slide

  19. RENDER
    C NETWORK
    D

    View Slide


  20. View Slide

  21. X

    View Slide

  22. X

    View Slide

  23. x Faktoren

    View Slide

  24. CPU
    RAM
    HDD
    NETZ

    View Slide

  25. CPU
    RAM
    HDD
    NETZ

    View Slide

  26. t

    View Slide

  27. t

    View Slide

  28. CPU
    RAM
    HDD
    NETZ

    View Slide

  29. R
    A
    M

    View Slide

  30. R
    A
    M

    View Slide

  31. CPU
    RAM
    HDD
    LAN
    = IO

    View Slide

  32. IO

    View Slide

  33. IO

    View Slide

  34. RAM
    SSD
    WAN
    HDD
    LAN
    0.05 μs
    5 μs x100 x100
    50 μs x1.000 x10
    5000 μs x100.000 x100
    500000 μs x10.000.000 x100

    View Slide

  35. IO

    View Slide

  36. CACHE

    View Slide

  37. View Slide

  38. IO Queue + Worker

    View Slide

  39. t

    View Slide

  40. statisch
    dynamisch

    View Slide

  41. statisch
    dynamisch

    View Slide

  42. View Slide

  43. Reverse-
    Proxy

    View Slide

  44. Varnish

    View Slide

  45. Varnish

    View Slide

  46. Varnish

    View Slide

  47. Varnish

    View Slide

  48. View Slide

  49. View Slide

  50. Multiple
    Backends

    View Slide

  51. Varnish

    View Slide

  52. Varnish

    View Slide

  53. Varnish

    View Slide

  54. Varnish

    View Slide

  55. Varnish

    View Slide

  56. Varnish

    View Slide

  57. Partielles Caching
    Edge Side Inc.

    View Slide

  58. Varnish

    View Slide

  59. Varnish

    View Slide

  60. FUBAR?
    Nachteile

    View Slide

  61. ● Content++ = RAM++
    Hardwareanforderungen
    ● !SSL
    Workaround: Pound Offloader
    ● Purge / Warm-Up
    Management
    ● Konfiguration
    VCL

    View Slide

  62. Ratiopharm?
    Alternativen

    View Slide

  63. View Slide

  64. CDN
    Content Delivery Network

    View Slide

  65. Fallstudie / Beispiel
    Adventskalender

    View Slide

  66. View Slide

  67. View Slide

  68. View Slide

  69. View Slide

  70. App Größe
    2.6 MB

    View Slide

  71. HTTP Requests
    16 Req/App

    View Slide

  72. View Slide

  73. View Slide

  74. js js
    js js
    js js js
    js
    js js
    js
    js

    View Slide

  75. Ladezeit bei >6 Mbit
    1-3 s

    View Slide

  76. View Slide

  77. Transferrate
    ~300 Mbit/s

    View Slide

  78. Peak Transfer (max.)
    ( ~4000 Mbit/s )

    View Slide

  79. Transfervolumen / Top-H
    ~500 GB

    View Slide

  80. HTTP Zugriffe
    260 Req/s

    View Slide

  81. System:
    Eine VM.
    (Varnish, Pound, Apache/PHP)

    View Slide

  82. View Slide

  83. View Slide

  84. View Slide

  85. CPU
    RAM
    HDD
    NETZ
    CPU
    RAM
    HDD
    NETZ
    CPU
    RAM
    HDD
    NETZ

    View Slide

  86. View Slide

  87. Christoph Lühr
    email: [email protected]
    twitter: @chluehr
    web: http://basilicom.de
    !
    ?
    basilicom

    View Slide