Slide 1

Slide 1 text

Red Nose Data MongoDB London 2013

Slide 2

Slide 2 text

Red Nose Data MongoDB London 2013

Slide 3

Slide 3 text

About Comic Relief o Comic Relief is a major charity based in the UK which strives to create a just world free from poverty o Raises millions of pounds for the needy to tackle the root causes of poverty and social injustice o Two big fundraising campaigns - Red Nose Day and Sport Relief

Slide 4

Slide 4 text

o Every two years thousands of people do something funny for money o A year of planning o 6 week media campaign o 7 hours of TV on the 15th of March

Slide 5

Slide 5 text

New platform in 2013 o Maximise the donations received o Remove reliance on any single third party supplier o Cost-effective o Ability to make changes and understand the risks involved

Slide 6

Slide 6 text

New platform in 2013 600,000 transactions in 7 hours

Slide 7

Slide 7 text

New platform in 2013 > 10,000call centre operators

Slide 8

Slide 8 text

New platform in 2013 500donation journeys every second

Slide 9

Slide 9 text

New platform in 2013 One night per year no second chance

Slide 10

Slide 10 text

Donations Per Minute

Slide 11

Slide 11 text

Donations Per Second

Slide 12

Slide 12 text

Historical challenges Single points of failure

Slide 13

Slide 13 text

Historical challenges Deployment

Slide 14

Slide 14 text

Historical challenges Provider relationships

Slide 15

Slide 15 text

Historical challenges One year feedback cycle

Slide 16

Slide 16 text

Historical challenges Timely donation totals

Slide 17

Slide 17 text

Solution patterns Accept that failures happen

Slide 18

Slide 18 text

Solution patterns Multiple IaaS Providers

Slide 19

Slide 19 text

Solution patterns Eventual Consistency

Slide 20

Slide 20 text

Solution patterns Minimise time to Recover

Slide 21

Slide 21 text

Solution patterns Commoditise dependencies

Slide 22

Slide 22 text

Solution patterns Continuous Delivery

Slide 23

Slide 23 text

Why MongoDB?

Slide 24

Slide 24 text

Why MongoDB? Document-orientated

Slide 25

Slide 25 text

Why MongoDB? Ease of schema evolution

Slide 26

Slide 26 text

Why MongoDB? Rich query language

Slide 27

Slide 27 text

Mongoid scope :pending, not_in(:delta_state_labels => %w{payment_taken payment_failed})

Slide 28

Slide 28 text

Insight Layer What does the platform look like? Internet DNS PaaS 1 - AWS US Cloud Foundry (BOSH) PaaS 1 - AWS EU Cloud Foundry (BOSH) Service Layer Workers View API Insight Presentation Layer Service Layer Workers MGMT PaaS 1 - Cz Cloud Foundry (BOSH) Presentation Layer Service Layer Workers Shared Services Logging Metrics Alerting = + PLUS Presentation Layer

Slide 29

Slide 29 text

$$$ Continuous Delivery

Slide 30

Slide 30 text

Continuous Delivery Integrated application and infrastructure pipeline

Slide 31

Slide 31 text

Cucumber Shared understanding with our customer

Slide 32

Slide 32 text

mongoid-rspec RSpec Matchers for Mongoid

Slide 33

Slide 33 text

ZA Proxy Web-app pen testing

Slide 34

Slide 34 text

The Grinder Capture functional tests and replay at scale

Slide 35

Slide 35 text

The Grinder 60,000 concurrent users

Slide 36

Slide 36 text

0 100 200 300 400 500 Redis Config Added DEAs Added DEAs Increased load test threads Moved load test platform to EU Added HA proxy & 3 Nginx nodes Increased load test threads 8 Nginx nodes 501 Monday 10/9 Tuesday 11/9 Transactions per second Load Testing

Slide 37

Slide 37 text

Conclusions Eventual consistency and statelessness keys for scaling.

Slide 38

Slide 38 text

Conclusions MongoDB ensured donations totals were available when it mattered.

Slide 39

Slide 39 text

Conclusions £75,107,851

Slide 40

Slide 40 text

Conclusions Red Nose Day makes people’s lives better. You can help!

Slide 41

Slide 41 text

http://www.armakuni.com/ Thank You