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

Silo-Based Architectures for High Availability Applications @PhpUk2017

Silo-Based Architectures for High Availability Applications @PhpUk2017

High availability is becoming a de-facto requirement of today's applications. Customer-facing IT failures mean directly losing customer revenue and trust, as users have grown accustomed to easily switching service providers for more reliable ones. Lack of internal systems availability block employee productivity and add to the financial burden. Thus, it is critical to have a healthy, performant, resilient IT structure serving as a backbone of conducting your business. But there are no textbook solutions to achieving five 9s availability. 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. 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.

Georgiana Gligor

February 17, 2017
Tweet

More Decks by Georgiana Gligor

Other Decks in Technology

Transcript

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

    View Slide

  2. 2
    Georgiana Gligor
    ✤ Geek. Mother. Do-er.
    ✤ Crafting enterprise apps
    ✤ Large-Scale Application
    Architect
    ✤ PHP Cluj Meetup Organiser
    ✤ Systems Engineering PhD
    Student
    @gbtekkie
    [email protected]

    View Slide

  3. View Slide

  4. 4
    https://youtu.be/MQm5BnhTBEQ

    View Slide

  5. 5
    advantages and disadvantages
    AGENDA
    silos: a possible approach
    the need for high availability
    what is high availability (HA)?

    View Slide

  6. Software industry
    is built around
    anticipating change.
    6

    View Slide

  7. TYPICAL
    APPLICATION

    View Slide

  8. 8
    SIMPLE ARCHITECTURE

    View Slide

  9. View Slide

  10. View Slide

  11. master
    Frontend
    Business
    Logic
    Frontend
    Frontend
    Browser
    internet
    Load
    balancer
    slave
    reads writes
    11
    ADJUSTING

    View Slide

  12. master
    Frontend
    Business
    Logic
    Frontend
    Frontend
    Browser
    internet
    Load
    balancer
    slave
    reads writes
    12
    ADJUSTING
    redundancy

    View Slide

  13. master
    Frontend
    Business
    Logic
    Frontend
    Frontend
    Browser
    internet
    Load
    balancer
    slave
    reads writes
    13
    ADJUSTING
    resilience

    View Slide

  14. 14
    TYPICAL LAYERING

    View Slide

  15. 15
    APPLICATION ARCHITECTURE

    View Slide

  16. HIGH
    AVAILABILITY

    View Slide

  17. 17
    AVAILABILITY
    Ability to access the system:
    ✤ retrieve information
    ✤ alter information
    ✤ send new data

    View Slide

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

    View Slide

  19. 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. 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. 21
    IMPACT
    $ 144,000
    / hour
    3600
    $ 40
    / sec
    * =

    View Slide

  22. 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. 23
    HIGH AVAILABILITY TRIANGLE
    cost
    complexity
    risk

    View Slide

  24. 24
    DOWNTIME
    ✤ scheduled
    ➡ you
    ✤ unscheduled
    ➡ you
    ➡ others

    View Slide

  25. 25
    HAPPENS TO THE BEST

    View Slide

  26. 26
    MICHAEL JACKSON

    View Slide

  27. HA SYSTEM
    CHARACTERISTICS

    View Slide

  28. https://flic.kr/p/quMmFw
    NO SINGLE POINT OF FAILURE

    View Slide

  29. https://en.wikipedia.org/wiki/Point_of_sale#/media/File:Cash_Registers.JPG
    RELIABLE CROSSOVER

    View Slide

  30. https://flic.kr/p/4S4uDz
    DETECT FAILURES AS THEY OCCUR

    View Slide

  31. 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. 34
    Departments inside
    a company don’t
    work together.
    - Silo Mentality
    https://flic.kr/p/7Sp6Wg

    View Slide

  35. 35
    TRY UPGRADE TO PHP7

    View Slide

  36. 36
    WHAT IS A SILO?
    ✤ frontend (e.g. Javascript SPAs)
    ✤ backend (e.g. PHP services)
    ✤ cache
    1 silo = full setup of servers that deliver
    the end-to-end functionality

    View Slide

  37. 37
    WHAT IS A SILO?

    View Slide

  38. 38
    SILO-BASED ARCHITECTURE

    View Slide

  39. 39
    MULTIPLE CACHES

    View Slide

  40. 40
    A/B TESTING

    View Slide

  41. 41
    GEOGRAPHICAL DISTRIBUTION

    View Slide

  42. 42
    LIVE UPGRADES

    View Slide

  43. 43
    ADVANTAGES
    ✤ reuse familiar technology
    ✤ real A/B testing
    ✤ no BHUF requirements
    ✤ no disruption => brand loyalty
    ✤ lower Total Cost of Ownership
    ✤ simplify scalability

    View Slide

  44. 44
    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

  45. TAKEAWAYS

    View Slide

  46. 46

    View Slide

  47. 47
    ✤ build situational awareness with clever
    monitoring
    ✤ automate outage detection
    ✤ powerful A/B testing
    TAKEAWAYS

    View Slide

  48. 48
    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

  49. ‹#›
    THANK YOU
    GEORGIANA GLIGOR
    @gbtekkie
    }
    Affordable quality system architecture.
    In-house PHP trainings.

    View Slide