38

Silo-Based Architectures for High Availability Applications @CodeCampCluj

Embed Size (px)

Citation preview

Page 1: Silo-Based Architectures for High Availability Applications @CodeCampCluj
Page 2: Silo-Based Architectures for High Availability Applications @CodeCampCluj

SILO-BASED ARCHITECTURES

Georgiana Gligor Tekkie Consulting

FOR HIGH AVAILABILITY APPLICATIONS

CodeCamp Cluj May 2016

Page 3: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Georgiana Gligor

✓Geek. Mother. Do-er.

✓Crafting enterprise-level apps

on LAMP stack since 2003

✓Architecture and DevOps consultant

✓ PHP Cluj Meetup Organizer

3

Page 4: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Agenda

✓who needs to address high availability?

✓describe high availability

✓silos: a possible approach

✓advantages and disadvantages

4

Page 5: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Software industry is

built around

anticipating change.

David Scott Bernstein, “Beyond Legacy Code”

5

Page 6: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 6

YOUR APPLICATION

Page 7: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Standard Application Components

7

Page 8: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 8

Page 9: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 9

Page 10: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

master

FrontendBusinessLogic

FrontendFrontend

Browser

internetLoad

balancer

slave

reads writes

How Do You Adjust?

10

Page 11: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

master

FrontendBusinessLogic

FrontendFrontend

Browser

internetLoad

balancer

slave

reads writes

How Do You Adjust?

11

redundancy

Page 12: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

master

FrontendBusinessLogic

FrontendFrontend

Browser

internetLoad

balancer

slave

reads writes

How Do You Adjust?

12

resilience

Page 13: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 13

Typical Application Layering

Page 14: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 14

Application Components

Page 15: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 15

HIGH AVAILABILITY

Page 16: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Ability to access the system:

✓ retrieve information

✓ alter information

✓ send new data

Availability

16

Page 17: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Downtime

▸ scheduled

▸ unscheduled

17

Page 18: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

The 9s Dance

18

Uptime Shortname Downtime (per year)

90.000 % one nine 36.5 days

99.000 % two nines 3.65 days

99.900 % three nines 8.76 hrs

99.990 % four nines 52.56 mins

99.999 % five nines 5.26 mins

Page 19: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

A man's got to know

his limitations.

Dirty Harry

19

Page 20: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

HA System Design Principles

1. eliminate single points of failure

2. reliable crossover

3. detect failures as they occur

20

Page 21: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 21

SILOS

Page 22: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Departments inside a company do not

work together.

Silo Mentality

22

Page 23: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

User Behaviour

23

booking .com

expedia .com

imobiliare .ro

Alexa Rank 111 429 22879

daily time on site

10:00 mins

7:20 mins

10:30 mins

daily pageviews per visitor 7.51 5.12 9.60

bounce rate 21.20 % 22.10 % 22.80 %

Page 24: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 24

Application Components (again)

Page 25: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 25

Happens to the Best

Page 26: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 26

Silo-Based Architecture

Page 27: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 27

Silos: Multiple Caches

Page 28: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 28

Silos: A/B Testing

Page 29: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 29

Silos: Live Upgrades

Page 30: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Advantages

✓ real A/B testing

✓ no BHUF requirements

✓ no disruption => brand loyalty

✓ lower TCO

✓ simplify scalability

✓ avoid unneeded complexity by reusing familiar

technologies30

Page 31: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Disadvantages

✓ needs razor-sharp DevOps team

✓ small increase in hardware costs on kick-off

✓ adds complexity to the monitoring layer

✓ reconsider traceability

✓ reproducing and hunting bugs is going to

change forever

31

Page 32: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 32

TAKEAWAYS

Page 33: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 33

Page 34: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Takeaways

✓ build situational awareness with clever

monitoring

✓ automate outage detection

✓ powerful A/B testing

✓ think long-term

34

Page 35: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016

Further Reading

✓ Wikipedia HA page

✓ OpenStack’s HA concepts

✓ Merge Hemo report from FDA

✓ USA Presidential Policy Directive 21

✓ “Beyond Legacy Code” book

✓ Varnish Plus

35

Page 36: Silo-Based Architectures for High Availability Applications @CodeCampCluj

Silo-Based Architectures For High Availability Applications - Georgiana Gligor - CodeCamp Cluj - May 2016 36

Q & A

Page 37: Silo-Based Architectures for High Availability Applications @CodeCampCluj

THANK YOU!

Discover. Design.

Develop. Deliver.

Georgiana Gligor

@gbtekkie

Page 38: Silo-Based Architectures for High Availability Applications @CodeCampCluj