Microservices at the Heart of BBC iPlayer Cem Staveley Software - - PowerPoint PPT Presentation

microservices at the heart of bbc iplayer
SMART_READER_LITE
LIVE PREVIEW

Microservices at the Heart of BBC iPlayer Cem Staveley Software - - PowerPoint PPT Presentation

Microservices at the Heart of BBC iPlayer Cem Staveley Software Engineer, BBC October 2nd 2014 [17:23] RobinM Our live boxes seem to be struggling to work through requests [17:23] RobinM Restarts not helping [17:24] RobinM Were


slide-1
SLIDE 1

Microservices at the Heart of BBC iPlayer

Cem Staveley

Software Engineer, BBC

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4

October 2nd

2014

slide-5
SLIDE 5
slide-6
SLIDE 6

[17:23] RobinM Our live boxes seem to be struggling to work through requests [17:23] RobinM Restarts not helping [17:24] RobinM We’re scaling up the number of instances now in case it’s a load issue

slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9

5 hours

slide-10
SLIDE 10
slide-11
SLIDE 11

iBL Metadata API Web TV Mobile

slide-12
SLIDE 12

Fast Resilient Scalable

slide-13
SLIDE 13

Fast Resilient Scalable

slide-14
SLIDE 14
slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17

Unbalanced Capacities

1-5 second response times Dependency on HTTP caching

slide-18
SLIDE 18

Re-Architect

slide-19
SLIDE 19

6,500 episodes 1,200 programmes 30 days of availability

slide-20
SLIDE 20
slide-21
SLIDE 21
slide-22
SLIDE 22
slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28

What went right

slide-29
SLIDE 29

5 seconds ~10 milliseconds

Before After

slide-30
SLIDE 30

Independently Deployable Independently Scalable Independently Failable

slide-31
SLIDE 31

Team Workflow

slide-32
SLIDE 32

TDD Pairing

slide-33
SLIDE 33
slide-34
SLIDE 34
slide-35
SLIDE 35
slide-36
SLIDE 36

What went wrong

slide-37
SLIDE 37

Unnecessary services

slide-38
SLIDE 38
slide-39
SLIDE 39
slide-40
SLIDE 40
slide-41
SLIDE 41

Distributed Monolith

slide-42
SLIDE 42
slide-43
SLIDE 43
slide-44
SLIDE 44
slide-45
SLIDE 45
slide-46
SLIDE 46
slide-47
SLIDE 47
slide-48
SLIDE 48
slide-49
SLIDE 49

What went right

slide-50
SLIDE 50

No more single point of failure

slide-51
SLIDE 51

Formalised Data Model

slide-52
SLIDE 52

Independently Deployable Independently Scalable Independently Failable

slide-53
SLIDE 53

Consumer Contracts

bbc/consumer-contracts

slide-54
SLIDE 54
slide-55
SLIDE 55

Yeoman

slide-56
SLIDE 56

Shared HTTP Cache

slide-57
SLIDE 57

bbc/flashheart

Caching Logging Stats Circuit Breaking Rate Limiting

slide-58
SLIDE 58

StatsD Graphite Grafana

slide-59
SLIDE 59

Seyren

slide-60
SLIDE 60

What went wrong

slide-61
SLIDE 61

HTTPS and Keep-Alive

slide-62
SLIDE 62

Deleted the database too early Whoops!

slide-63
SLIDE 63

Where we are now

slide-64
SLIDE 64
slide-65
SLIDE 65
slide-66
SLIDE 66

Varnish StatsD CollectD

slide-67
SLIDE 67

Thank You

Cem.Staveley@bbc.co.uk