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

[DevOpsDays Zurich] Silo-Based Architectures for High Availability Applications

[DevOpsDays Zurich] Silo-Based Architectures for High Availability Applications

Data redundancy, computing clusters, load balancing, fail-over mechanisms, each of these individually addresses one potential issue, but none treats systems in your organisation holistically for maximising business revenue. You'll learn how to stop hating your existing infrastructure, prepare it for the leap to high availability using simple and intuitive changes that your DevOps team will love. Silos are a clever method of grouping servers in such a way that they can be scaled both horizontally and vertically, depending on the actual application needs. Most importantly, it frees you from over-optimizing the architecture upfront, by allowing fine adjustments easy to integrate in your Agile workflow. And they offer real A/B testing for your infrastructure and backend code. Then we'll look together at the awesome new things that you can do with your new silo superpowers. You'll be able to impress not only your fellow tekkies, but also marketing with helpful new tricks.

Georgiana Gligor

May 03, 2018
Tweet

More Decks by Georgiana Gligor

Other Decks in Technology

Transcript

  1. FOR HIGH AVAILABILITY APPLICATIONS
    SILO-BASED ARCHITECTURES
    Georgiana Gligor / Tekkie Consulting / @gbtekkie

    View Slide

  2. @gbtekkie
    DevOpsDays
    Zürich
    2
    ✤ Geek. Mother. Do-er.
    ✤ on LAMP/LEMP stack since 2003
    ✤ Architecture / DevOps consultant
    ✤ RomaniaPHP Organizer
    ✤ PhD Student
    @gbtekkie

    View Slide

  3. @gbtekkie
    DevOpsDays
    Zürich
    3
    advantages and disadvantages
    silos: a possible approach
    the need for high availability
    what is high availability (HA)?
    AGENDA

    View Slide

  4. View Slide

  5. @gbtekkie
    DevOpsDays
    Zürich
    5
    https://youtu.be/MQm5BnhTBEQ

    View Slide

  6. 6
    Software industry
    is built around
    anticipating
    change.

    View Slide

  7. 7
    anticipate
    accommodate
    vs

    View Slide

  8. TYPICAL
    APPLICATION

    View Slide

  9. @gbtekkie
    DevOpsDays
    Zürich
    9

    View Slide

  10. View Slide

  11. @gbtekkie
    DevOpsDays
    Zürich
    master
    Frontend
    Business
    Logic
    Frontend
    Frontend
    Browser
    internet
    Load
    balancer
    slave
    reads writes
    11
    ADJUSTING

    View Slide

  12. @gbtekkie
    DevOpsDays
    Zürich
    master
    Frontend
    Business
    Logic
    Frontend
    Frontend
    Browser
    internet
    Load
    balancer
    slave
    reads writes
    12
    ADJUSTING
    redundancy

    View Slide

  13. @gbtekkie
    DevOpsDays
    Zürich
    master
    Frontend
    Business
    Logic
    Frontend
    Frontend
    Browser
    internet
    Load
    balancer
    slave
    reads writes
    13
    ADJUSTING
    resilience

    View Slide

  14. @gbtekkie
    DevOpsDays
    Zürich
    14
    TYPICAL LAYERING

    View Slide

  15. @gbtekkie
    DevOpsDays
    Zürich
    15
    APPLICATION ARCHITECTURE

    View Slide

  16. HIGH
    AVAILABILITY

    View Slide

  17. @gbtekkie
    DevOpsDays
    Zürich
    17
    Ability to access the system:
    ✤ retrieve information
    ✤ alter information
    ✤ send new data
    AVAILABILITY

    View Slide

  18. https:/
    /flic.kr/p/dkasBz

    View Slide

  19. @gbtekkie
    DevOpsDays
    Zürich
    19
    THE 9s DANCE
    Uptime Downtime
    (per year)
    90.000 % 36.50 days one nine
    99.000 % 3.65 days two nines
    99.900 % 8.76 hrs three nines
    99.950 % 4 hrs 23 mins
    99.990 % 52.56 mins four nines
    99.999 % 5.26 mins five nines

    View Slide

  20. @gbtekkie
    DevOpsDays
    Zürich
    20
    THE 9s DANCE
    Uptime Downtime
    (per year)
    90.000 % 36.50 days
    99.000 % 3.65 days
    99.900 % 8.76 hrs
    99.950 % 4 hrs 23 mins Amazon SLA
    99.990 % 52.56 mins four nines
    99.999 % 5.26 mins five nines

    View Slide

  21. @gbtekkie
    DevOpsDays
    Zürich
    21
    IMPACT
    $ 144,000
    / hour
    3600
    $ 40
    / sec
    * =

    View Slide

  22. @gbtekkie
    DevOpsDays
    Zürich
    22
    USER BEHAVIOUR
    amazon facebook youtube
    Alexa Rank 6 3 2
    daily time on site
    12:07
    mins
    19:27
    mins
    23:44
    mins
    daily pageviews /
    visitor
    11.83 9.38 12.84
    bounce rate 21 % 29 % 33 %

    View Slide

  23. @gbtekkie
    DevOpsDays
    Zürich
    23
    HIGH AVAILABILITY TRIANGLE
    cost
    complexity
    risk

    View Slide

  24. @gbtekkie
    DevOpsDays
    Zürich
    24
    DOWNTIME
    scheduled
    ‣ you
    unscheduled
    ‣ you
    ‣ others

    View Slide

  25. @gbtekkie
    DevOpsDays
    Zürich
    25
    HAPPENS TO THE BEST

    View Slide

  26. @gbtekkie
    DevOpsDays
    Zürich
    26
    MICHAEL JACKSON

    View Slide

  27. H.A. SYSTEM
    CHARACTERISTICS

    View Slide

  28. @gbtekkie
    DevOpsDays
    Zürich
    https://flic.kr/p/quMmFw
    NO SINGLE POINT OF FAILURE

    View Slide

  29. @gbtekkie
    DevOpsDays
    Zürich
    https://flic.kr/p/RLKw8z
    RELIABLE CROSSOVER

    View Slide

  30. @gbtekkie
    DevOpsDays
    Zürich
    DETECT FAILURES AS THEY OCCUR

    View Slide

  31. @gbtekkie
    DevOpsDays
    Zürich
    31
    HA BEST PRACTICES
    1. no single points of failure
    2. stateless application design
    3. automate infrastructure for consistency &
    reliability
    4. clever monitoring and alerting
    5. geographically distribute your machines
    6. keep spare capacity to meet increasing
    demand

    View Slide

  32. 32
    A man’s got to
    know his
    limitations.
    - Dirty Harry

    View Slide

  33. SILOS

    View Slide

  34. @gbtekkie
    DevOpsDays
    Zürich
    34
    TRY UPGRADE TO PHP7

    View Slide

  35. @gbtekkie
    DevOpsDays
    Zürich
    35
    WHAT IS A SILO?
    ✤ frontend (SPAs, PWAs, etc)
    ✤ backend (e.g. PHP services)
    ✤ data (including cache)
    1 silo = full setup of servers that deliver
    the end-to-end functionality

    View Slide

  36. @gbtekkie
    DevOpsDays
    Zürich
    36
    WHAT IS A SILO?

    View Slide

  37. @gbtekkie
    DevOpsDays
    Zürich
    37
    SILO-BASED ARCHITECTURE

    View Slide

  38. @gbtekkie
    DevOpsDays
    Zürich
    38
    MULTIPLE CACHES

    View Slide

  39. @gbtekkie
    DevOpsDays
    Zürich
    39
    A/B TESTING

    View Slide

  40. @gbtekkie
    DevOpsDays
    Zürich
    40
    GEOGRAPHICAL DISTRIBUTION

    View Slide

  41. @gbtekkie
    DevOpsDays
    Zürich
    41
    LIVE UPGRADES

    View Slide

  42. @gbtekkie
    DevOpsDays
    Zürich
    42
    ADVANTAGES
    ✤ reuse familiar technology
    ✤ real A/B testing
    ✤ no BHUF requirements
    ✤ no disruption => brand loyalty
    ✤ lower Total Cost of Ownership
    ✤ simplify scalability

    View Slide

  43. @gbtekkie
    DevOpsDays
    Zürich
    43
    DISADVANTAGES
    ✤ needs razor-sharp DevOps team
    ✤ small increase in hardware costs on kick-off
    ✤ adds complexity to the monitoring layer
    ✤ reconsider traceability
    ✤ different bug reproducing and hunting

    View Slide

  44. @gbtekkie
    DevOpsDays
    Zürich
    44
    TAKEAWAYS

    View Slide

  45. @gbtekkie
    DevOpsDays
    Zürich
    45
    ✤ build situational awareness
    with clever monitoring
    ✤ automate outage detection
    ✤ powerful A/B testing
    TAKEAWAYS

    View Slide

  46. @gbtekkie
    DevOpsDays
    Zürich
    46
    FURTHER READING
    ✤ Wikipedia HA page
    ✤ OpenStack’s HA concepts
    ✤ Merge Hemo report from FDA
    ✤ USA Presidential Policy Directive 21
    ✤ “Beyond Legacy Code” book
    ✤ TechCrunch’s summary of sites affected by Michael Jackson’s death
    ✤ Netflix lessons learned after AWS outage
    ✤ Netflix Chaos Monkey source code
    ✤ Brian Adler’s talk on “Architecting for High Availability and Multi-Cloud”

    View Slide

  47. ‹#›
    Questions?
    }
    Efficient architecture.
    Performance oriented.
    Enhanced with AI. [email protected]

    View Slide