SlideShare une entreprise Scribd logo
1  sur  38
BETFAIR + COUCHBASE


Martin Anderson
AGENDA



•   Who Betfair are
•   Why Couchbase was chosen at Betfair
•   What it is being used for
•   Some thoughts on adopting NoSQL in Enterprises
•   Q&A session later on today




2
BETFAIR




3
4
THE EXCHANGE




5
IN NUMBERS

      4.0m+                      30,000
      Funded        140        bets placed
     Accounts      locations   one minute

     120,000+       £288m
    requests per   funds on    £2.2bn
       second       deposit    Mobile FY12

6
DATA AT BETFAIR




7
DATA AT BETFAIR


•   >30,000 markets that can change every 100ms
•   Jurisdictionally sensitive navigation
•   Multiple web applications for multiple channels
•   Large volumes of data from other products
•   Transactional data
•   Operational monitoring too - large amount of logging data




8
TECHNOLOGY AT BETFAIR

Application Stack
• JVM heavy
• Linux on commodity hardware
• Heavy use of Virtualisation/Private Cloud

Data Storage Stack
• Oracle
• Some Informix & MySQL
• NoSQL



9
RELATIONAL DATABASES




 We love Oracle!
 The lifeblood of our transaction system
 Highly performant
 Well understood
 Resilient

 Other databases but they are effectively integrated products


10
BUT…


 Impedance mismatch with object orientated languages
 Object models possible in RDBMS but at what cost?
 Must have serious skills at this scale
 Scaling not easy
 Often very heavyweight solution
 Integration with Continuous Delivery?

 So what about NoSQL?



11
NOSQL AT BETFAIR




12
NOSQL


 Matches well to object orientated languages
 Inherently scalable
 Very fast look ups
 Integrates very well with Continuous Delivery
 Combines to give a lower time to delivery




13
NOSQL AT BETFAIR




14
WHY SO MANY?


 Different categories of NoSQL, therefore different usage: K/V, Document, Columnar

 Some are wrapped by other products
 • CouchDB & Chef
 • HBase & OpenTSDB

 But what about cases where we have direct usage?
 What was the selection criteria for these solutions?



15
THE PRESSURE OF DELIVERY



 Just finished a cycle of high product delivery focus
 Time to step back and reassess the selections



 But without negatively affecting current product delivery!




16
STRATEGIC REVIEW



 Good News
 We had a fair amount of experience with different NoSQL solutions

 Bad News
 Fairly certain that some of the uses were less than optimal




17
ADOPTION AND ASSESSMENT PROCESS



 • What were our use cases?

 • What would be the optimum solutions?




18
NOSQL ASSESSMENT PROCESS

 •   Background/Maturity of the technology
 •   Data Model Category
 •   Consistency Model Requirements
 •   Performance
 •   Replication strategy (inc. Concurrency Control)
 •   Caching Model
 •   Query Model
 •   Integration with Continuous Delivery




19
NOSQL ASSESSMENT PROCESS

 •   Operational Maintenance (inc. Backup)
 •   Operational Monitoring
 •   Support
 •   Scalability
 •   Reliability
 •   Security
 •   Cost




20
INITIAL USE CASES FOR NOSQL


 Web Tier Persistence
 • Session and Cross session storage – e.g. Betslip
 • Memcached
 • Strong consistency
 • Cookie abuse
 • Cassandra as current solution




21
INITIAL USE CASES FOR NOSQL


 User Preferences
 • Historically tied to customer account
 • Map of keys and values
 • Multiple channels with multiple applications
 • RDBMS as current solution




22
CURRENT ARCHITECTURE



                        Server side rendered content
                        SOA Data Services exposed
                        Supports >200,000 concurrent users




23
WEB APPLICATION CALL STRUCTURE




24
OUR SELECTION CRITERIA


 •   Performance - especially deterministic performance on VMs
 •   Strong consistency
 •   Scaling
 •   Schema flexibility
 •   Multi-tenancy when required
 •   Simplicity
 •   Enterprise support
 •   Consider the future uses



25
COUCHBASE




26
COUCHBASE PERFORMANCE


 •   Seriously fast
 •   Highly deterministic
 •   Cache ejection/eviction
 •   Avoids Cold Cache on offlined instances
 •   Ideal for our architecture – virtualisation/private cloud
 •   Far better option than our current solution




27
COUCHBASE SCALING


 •   Inherently scalable
 •   Impressive ability to add nodes under load
 •   Manual rebalance gives control for highly loaded applications
 •   Replica promotion avoids failure cascades under load




28
COUCHBASE SCHEMA FLEXIBILITY


 •   Giving the developers ownership of the data storage
 •   Decouples data migration from application deployment
 •   Important requirement for Feature Throttles
 •   Removes many of the requirements for having DB devs/DBAs
 •   Allows preferences to deal with A/B tests




29
OTHER COUCHBASE FEATURES


 •   Multi-tenancy when required
 •   Stable and Resilient
 •   Great ease of use for both Devs and Ops
 •   Enterprise support
 •   Elastic Search integration
 •   Secured with a Service Layer




30
COUCHBASE IN CONTINUOUS DELIVERY




31
COUCHBASE DEPLOYMENTS


 • Version 1.8 in production, some 2.0 in pre-prod
 • 3 instance clusters for individual web applications
 • Larger (4-6) instance clusters for service storage

 • We are about 6 months in with our production instances




32
COUCHBASE IN PRODUCTION




33
COUCHBASE IN PRODUCTION




34
COUCHBASE IN PRODUCTION




35
COUCHBASE AT BETFAIR


 Couchbase is now our strategic document NoSQL solution
 • Session state
 • Cross session state
 • Service Persistence for key-based Entities

 • Familiarity will likely see this extend out into other areas




36
INTRODUCING NOSQL IN ENTERPRISE
 AKA CULTURE HACKING WITH NOSQL

 • Remember it's an umbrella term - non-experts will ask why we need so many
   different types of NoSQL
 • Remember the business benefits
 • Present the business with both the use cases you want to adopt NoSQL for and
   the assessment of the candidates
 • When you can use it, get it out there ASAP in a low risk way
 • It’s not about choosing what’s cool, it’s about choosing what’s best for the
   business




37
THANK YOU!
     Martin Anderson @mdjanderson




     http://betfair.jobs
38

Contenu connexe

Tendances

How to power microservices with MariaDB
How to power microservices with MariaDBHow to power microservices with MariaDB
How to power microservices with MariaDBMariaDB plc
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB plc
 
Getting started in the cloud for developers
Getting started in the cloud for developersGetting started in the cloud for developers
Getting started in the cloud for developersMariaDB plc
 
Introducing the ultimate MariaDB cloud, SkySQL
Introducing the ultimate MariaDB cloud, SkySQLIntroducing the ultimate MariaDB cloud, SkySQL
Introducing the ultimate MariaDB cloud, SkySQLMariaDB plc
 
MySQL At University Of Nottingham - 2018 MySQL Days
MySQL At University Of Nottingham - 2018 MySQL DaysMySQL At University Of Nottingham - 2018 MySQL Days
MySQL At University Of Nottingham - 2018 MySQL DaysMark Swarbrick
 
Introducing the R2DBC async Java connector
Introducing the R2DBC async Java connectorIntroducing the R2DBC async Java connector
Introducing the R2DBC async Java connectorMariaDB plc
 
How we switched to columnar at SpendHQ
How we switched to columnar at SpendHQHow we switched to columnar at SpendHQ
How we switched to columnar at SpendHQMariaDB plc
 
TechTarget Event - Storage Architectures for the Modern Data Center - Howard ...
TechTarget Event - Storage Architectures for the Modern Data Center - Howard ...TechTarget Event - Storage Architectures for the Modern Data Center - Howard ...
TechTarget Event - Storage Architectures for the Modern Data Center - Howard ...NetApp
 
What to expect from MariaDB Platform X5, part 1
What to expect from MariaDB Platform X5, part 1What to expect from MariaDB Platform X5, part 1
What to expect from MariaDB Platform X5, part 1MariaDB plc
 
SkySQL MariaDB 云数据组件
SkySQL MariaDB 云数据组件SkySQL MariaDB 云数据组件
SkySQL MariaDB 云数据组件YUCHENG HU
 
Which services are available, and how to take advantage of the new OVH offeri...
Which services are available, and how to take advantage of the new OVH offeri...Which services are available, and how to take advantage of the new OVH offeri...
Which services are available, and how to take advantage of the new OVH offeri...OVHcloud
 
CCV: migrating our payment processing system to MariaDB
CCV: migrating our payment processing system to MariaDBCCV: migrating our payment processing system to MariaDB
CCV: migrating our payment processing system to MariaDBMariaDB plc
 
Market Trends in Microsoft Azure
Market Trends in Microsoft AzureMarket Trends in Microsoft Azure
Market Trends in Microsoft AzureGlobalLogic Ukraine
 
Introducing workload analysis
Introducing workload analysisIntroducing workload analysis
Introducing workload analysisMariaDB plc
 
High Performance Drupal with MariaDB
High Performance Drupal with MariaDBHigh Performance Drupal with MariaDB
High Performance Drupal with MariaDBMariaDB Corporation
 
What to expect from MariaDB Platform X5, part 2
What to expect from MariaDB Platform X5, part 2What to expect from MariaDB Platform X5, part 2
What to expect from MariaDB Platform X5, part 2MariaDB plc
 
RedisDay London 2018 - How Redis Powers BBC Online's Biggest Pages
RedisDay London 2018 - How Redis Powers BBC Online's Biggest PagesRedisDay London 2018 - How Redis Powers BBC Online's Biggest Pages
RedisDay London 2018 - How Redis Powers BBC Online's Biggest PagesRedis Labs
 
RedisDay London 2018 - How We Run Redis in Multiple Datacenters
RedisDay London 2018 - How We Run Redis in Multiple Datacenters RedisDay London 2018 - How We Run Redis in Multiple Datacenters
RedisDay London 2018 - How We Run Redis in Multiple Datacenters Redis Labs
 
RedisDay London 2018 - Layered Orchestration & Redis Enterprise for fun and p...
RedisDay London 2018 - Layered Orchestration & Redis Enterprise for fun and p...RedisDay London 2018 - Layered Orchestration & Redis Enterprise for fun and p...
RedisDay London 2018 - Layered Orchestration & Redis Enterprise for fun and p...Redis Labs
 
RedisConf18 - Video Experience Operational Insights in Real Time.
RedisConf18 - Video Experience Operational Insights in Real Time.RedisConf18 - Video Experience Operational Insights in Real Time.
RedisConf18 - Video Experience Operational Insights in Real Time.Redis Labs
 

Tendances (20)

How to power microservices with MariaDB
How to power microservices with MariaDBHow to power microservices with MariaDB
How to power microservices with MariaDB
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introduction
 
Getting started in the cloud for developers
Getting started in the cloud for developersGetting started in the cloud for developers
Getting started in the cloud for developers
 
Introducing the ultimate MariaDB cloud, SkySQL
Introducing the ultimate MariaDB cloud, SkySQLIntroducing the ultimate MariaDB cloud, SkySQL
Introducing the ultimate MariaDB cloud, SkySQL
 
MySQL At University Of Nottingham - 2018 MySQL Days
MySQL At University Of Nottingham - 2018 MySQL DaysMySQL At University Of Nottingham - 2018 MySQL Days
MySQL At University Of Nottingham - 2018 MySQL Days
 
Introducing the R2DBC async Java connector
Introducing the R2DBC async Java connectorIntroducing the R2DBC async Java connector
Introducing the R2DBC async Java connector
 
How we switched to columnar at SpendHQ
How we switched to columnar at SpendHQHow we switched to columnar at SpendHQ
How we switched to columnar at SpendHQ
 
TechTarget Event - Storage Architectures for the Modern Data Center - Howard ...
TechTarget Event - Storage Architectures for the Modern Data Center - Howard ...TechTarget Event - Storage Architectures for the Modern Data Center - Howard ...
TechTarget Event - Storage Architectures for the Modern Data Center - Howard ...
 
What to expect from MariaDB Platform X5, part 1
What to expect from MariaDB Platform X5, part 1What to expect from MariaDB Platform X5, part 1
What to expect from MariaDB Platform X5, part 1
 
SkySQL MariaDB 云数据组件
SkySQL MariaDB 云数据组件SkySQL MariaDB 云数据组件
SkySQL MariaDB 云数据组件
 
Which services are available, and how to take advantage of the new OVH offeri...
Which services are available, and how to take advantage of the new OVH offeri...Which services are available, and how to take advantage of the new OVH offeri...
Which services are available, and how to take advantage of the new OVH offeri...
 
CCV: migrating our payment processing system to MariaDB
CCV: migrating our payment processing system to MariaDBCCV: migrating our payment processing system to MariaDB
CCV: migrating our payment processing system to MariaDB
 
Market Trends in Microsoft Azure
Market Trends in Microsoft AzureMarket Trends in Microsoft Azure
Market Trends in Microsoft Azure
 
Introducing workload analysis
Introducing workload analysisIntroducing workload analysis
Introducing workload analysis
 
High Performance Drupal with MariaDB
High Performance Drupal with MariaDBHigh Performance Drupal with MariaDB
High Performance Drupal with MariaDB
 
What to expect from MariaDB Platform X5, part 2
What to expect from MariaDB Platform X5, part 2What to expect from MariaDB Platform X5, part 2
What to expect from MariaDB Platform X5, part 2
 
RedisDay London 2018 - How Redis Powers BBC Online's Biggest Pages
RedisDay London 2018 - How Redis Powers BBC Online's Biggest PagesRedisDay London 2018 - How Redis Powers BBC Online's Biggest Pages
RedisDay London 2018 - How Redis Powers BBC Online's Biggest Pages
 
RedisDay London 2018 - How We Run Redis in Multiple Datacenters
RedisDay London 2018 - How We Run Redis in Multiple Datacenters RedisDay London 2018 - How We Run Redis in Multiple Datacenters
RedisDay London 2018 - How We Run Redis in Multiple Datacenters
 
RedisDay London 2018 - Layered Orchestration & Redis Enterprise for fun and p...
RedisDay London 2018 - Layered Orchestration & Redis Enterprise for fun and p...RedisDay London 2018 - Layered Orchestration & Redis Enterprise for fun and p...
RedisDay London 2018 - Layered Orchestration & Redis Enterprise for fun and p...
 
RedisConf18 - Video Experience Operational Insights in Real Time.
RedisConf18 - Video Experience Operational Insights in Real Time.RedisConf18 - Video Experience Operational Insights in Real Time.
RedisConf18 - Video Experience Operational Insights in Real Time.
 

En vedette

Spy v Spy - Treachery in the Dev/Ops Trenches
Spy v Spy - Treachery in the Dev/Ops TrenchesSpy v Spy - Treachery in the Dev/Ops Trenches
Spy v Spy - Treachery in the Dev/Ops Trenchesbloodredsun
 
HOW TO LEVERAGE CLOUD FOR BIG DATA ANALYTICS - KEYUR MEHTA
HOW TO LEVERAGE CLOUD FOR BIG DATA ANALYTICS - KEYUR MEHTAHOW TO LEVERAGE CLOUD FOR BIG DATA ANALYTICS - KEYUR MEHTA
HOW TO LEVERAGE CLOUD FOR BIG DATA ANALYTICS - KEYUR MEHTABig Data Week
 
Advanced data modeling with apache cassandra
Advanced data modeling with apache cassandraAdvanced data modeling with apache cassandra
Advanced data modeling with apache cassandraPatrick McFadin
 
betfair-uesummit-may2012-chetana
betfair-uesummit-may2012-chetanabetfair-uesummit-may2012-chetana
betfair-uesummit-may2012-chetanaChetana Deorah
 
Time Series Data: OpenTSDB and TSP (Betfair)
Time Series Data: OpenTSDB and TSP (Betfair)Time Series Data: OpenTSDB and TSP (Betfair)
Time Series Data: OpenTSDB and TSP (Betfair)Rakh1
 
Netflix Exemplar
Netflix ExemplarNetflix Exemplar
Netflix Exemplarphatmcat
 
openstackreferencearchitecturewhitepaper
openstackreferencearchitecturewhitepaperopenstackreferencearchitecturewhitepaper
openstackreferencearchitecturewhitepaperRichard Haigh
 
An Introduction to Priam
An Introduction to PriamAn Introduction to Priam
An Introduction to PriamJason Brown
 
OpenTSDB 2.0
OpenTSDB 2.0OpenTSDB 2.0
OpenTSDB 2.0HBaseCon
 
Creating a Next-Generation Big Data Architecture
Creating a Next-Generation Big Data ArchitectureCreating a Next-Generation Big Data Architecture
Creating a Next-Generation Big Data ArchitecturePerficient, Inc.
 
Data Stream Processing with Apache Flink
Data Stream Processing with Apache FlinkData Stream Processing with Apache Flink
Data Stream Processing with Apache FlinkFabian Hueske
 
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source EffortsCassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source EffortsAcunu
 
AWS Re:Invent - High Availability Architecture at Netflix
AWS Re:Invent - High Availability Architecture at NetflixAWS Re:Invent - High Availability Architecture at Netflix
AWS Re:Invent - High Availability Architecture at NetflixAdrian Cockcroft
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Sourceaspyker
 
Overview of Apache Flink: Next-Gen Big Data Analytics Framework
Overview of Apache Flink: Next-Gen Big Data Analytics FrameworkOverview of Apache Flink: Next-Gen Big Data Analytics Framework
Overview of Apache Flink: Next-Gen Big Data Analytics FrameworkSlim Baltagi
 
Apache Flink: Real-World Use Cases for Streaming Analytics
Apache Flink: Real-World Use Cases for Streaming AnalyticsApache Flink: Real-World Use Cases for Streaming Analytics
Apache Flink: Real-World Use Cases for Streaming AnalyticsSlim Baltagi
 
Big Data Architecture
Big Data ArchitectureBig Data Architecture
Big Data ArchitectureGuido Schmutz
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfairdeimos
 

En vedette (20)

Spy v Spy - Treachery in the Dev/Ops Trenches
Spy v Spy - Treachery in the Dev/Ops TrenchesSpy v Spy - Treachery in the Dev/Ops Trenches
Spy v Spy - Treachery in the Dev/Ops Trenches
 
HOW TO LEVERAGE CLOUD FOR BIG DATA ANALYTICS - KEYUR MEHTA
HOW TO LEVERAGE CLOUD FOR BIG DATA ANALYTICS - KEYUR MEHTAHOW TO LEVERAGE CLOUD FOR BIG DATA ANALYTICS - KEYUR MEHTA
HOW TO LEVERAGE CLOUD FOR BIG DATA ANALYTICS - KEYUR MEHTA
 
Advanced data modeling with apache cassandra
Advanced data modeling with apache cassandraAdvanced data modeling with apache cassandra
Advanced data modeling with apache cassandra
 
Search engines, SEO and SEM
Search engines, SEO and SEMSearch engines, SEO and SEM
Search engines, SEO and SEM
 
betfair-uesummit-may2012-chetana
betfair-uesummit-may2012-chetanabetfair-uesummit-may2012-chetana
betfair-uesummit-may2012-chetana
 
Time Series Data: OpenTSDB and TSP (Betfair)
Time Series Data: OpenTSDB and TSP (Betfair)Time Series Data: OpenTSDB and TSP (Betfair)
Time Series Data: OpenTSDB and TSP (Betfair)
 
Netflix Exemplar
Netflix ExemplarNetflix Exemplar
Netflix Exemplar
 
Mis11e ch02
Mis11e ch02Mis11e ch02
Mis11e ch02
 
openstackreferencearchitecturewhitepaper
openstackreferencearchitecturewhitepaperopenstackreferencearchitecturewhitepaper
openstackreferencearchitecturewhitepaper
 
An Introduction to Priam
An Introduction to PriamAn Introduction to Priam
An Introduction to Priam
 
OpenTSDB 2.0
OpenTSDB 2.0OpenTSDB 2.0
OpenTSDB 2.0
 
Creating a Next-Generation Big Data Architecture
Creating a Next-Generation Big Data ArchitectureCreating a Next-Generation Big Data Architecture
Creating a Next-Generation Big Data Architecture
 
Data Stream Processing with Apache Flink
Data Stream Processing with Apache FlinkData Stream Processing with Apache Flink
Data Stream Processing with Apache Flink
 
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source EffortsCassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
 
AWS Re:Invent - High Availability Architecture at Netflix
AWS Re:Invent - High Availability Architecture at NetflixAWS Re:Invent - High Availability Architecture at Netflix
AWS Re:Invent - High Availability Architecture at Netflix
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
 
Overview of Apache Flink: Next-Gen Big Data Analytics Framework
Overview of Apache Flink: Next-Gen Big Data Analytics FrameworkOverview of Apache Flink: Next-Gen Big Data Analytics Framework
Overview of Apache Flink: Next-Gen Big Data Analytics Framework
 
Apache Flink: Real-World Use Cases for Streaming Analytics
Apache Flink: Real-World Use Cases for Streaming AnalyticsApache Flink: Real-World Use Cases for Streaming Analytics
Apache Flink: Real-World Use Cases for Streaming Analytics
 
Big Data Architecture
Big Data ArchitectureBig Data Architecture
Big Data Architecture
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfair
 

Similaire à Betfair + Couchbase

Improve IT Efficiency and Reduce Complexity with* Sun Blade Systems
Improve IT Efficiency and Reduce Complexity with* Sun Blade SystemsImprove IT Efficiency and Reduce Complexity with* Sun Blade Systems
Improve IT Efficiency and Reduce Complexity with* Sun Blade SystemsAshwin V.
 
DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?DataStax
 
Key Database Criteria for Cloud Applications
Key Database Criteria for Cloud ApplicationsKey Database Criteria for Cloud Applications
Key Database Criteria for Cloud ApplicationsNuoDB
 
Neotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys_Partner
 
Is "Free" Good Enough for Your MySQL Environment?
Is "Free" Good Enough for Your MySQL Environment?Is "Free" Good Enough for Your MySQL Environment?
Is "Free" Good Enough for Your MySQL Environment?Datavail
 
The Crown Jewels: Is Enterprise Data Ready for the Cloud?
The Crown Jewels: Is Enterprise Data Ready for the Cloud?The Crown Jewels: Is Enterprise Data Ready for the Cloud?
The Crown Jewels: Is Enterprise Data Ready for the Cloud?Inside Analysis
 
Big data talk barcelona - jsr - jc
Big data talk   barcelona - jsr - jcBig data talk   barcelona - jsr - jc
Big data talk barcelona - jsr - jcJames Saint-Rossy
 
OpenStack Management at Hyperscale
OpenStack Management at HyperscaleOpenStack Management at Hyperscale
OpenStack Management at HyperscaleTesora
 
Moving to the cloud; PaaS, IaaS or Managed Instance
Moving to the cloud; PaaS, IaaS or Managed InstanceMoving to the cloud; PaaS, IaaS or Managed Instance
Moving to the cloud; PaaS, IaaS or Managed InstanceThomas Sykes
 
Live Introduction to the Cloud Native Microservices Platform – open, manageab...
Live Introduction to the Cloud Native Microservices Platform – open, manageab...Live Introduction to the Cloud Native Microservices Platform – open, manageab...
Live Introduction to the Cloud Native Microservices Platform – open, manageab...Lucas Jellema
 
Scaling Your Database in the Cloud
Scaling Your Database in the CloudScaling Your Database in the Cloud
Scaling Your Database in the CloudRightScale
 
Sql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureSql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureMarco Obinu
 
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...VMworld
 
Webinar - Macy’s: Why Your Database Decision Directly Impacts Customer Experi...
Webinar - Macy’s: Why Your Database Decision Directly Impacts Customer Experi...Webinar - Macy’s: Why Your Database Decision Directly Impacts Customer Experi...
Webinar - Macy’s: Why Your Database Decision Directly Impacts Customer Experi...DataStax
 
KubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeAcademy
 
Using Apache Cassandra and Apache Kafka to Scale Next Gen Applications
Using Apache Cassandra and Apache Kafka to Scale Next Gen ApplicationsUsing Apache Cassandra and Apache Kafka to Scale Next Gen Applications
Using Apache Cassandra and Apache Kafka to Scale Next Gen ApplicationsData Con LA
 
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...Vietnam Open Infrastructure User Group
 

Similaire à Betfair + Couchbase (20)

Improve IT Efficiency and Reduce Complexity with* Sun Blade Systems
Improve IT Efficiency and Reduce Complexity with* Sun Blade SystemsImprove IT Efficiency and Reduce Complexity with* Sun Blade Systems
Improve IT Efficiency and Reduce Complexity with* Sun Blade Systems
 
FatDB Intro
FatDB IntroFatDB Intro
FatDB Intro
 
DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?
 
Key Database Criteria for Cloud Applications
Key Database Criteria for Cloud ApplicationsKey Database Criteria for Cloud Applications
Key Database Criteria for Cloud Applications
 
MySQL overview
MySQL overviewMySQL overview
MySQL overview
 
Neotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys PAC - Ian Molyneaux
Neotys PAC - Ian Molyneaux
 
Is "Free" Good Enough for Your MySQL Environment?
Is "Free" Good Enough for Your MySQL Environment?Is "Free" Good Enough for Your MySQL Environment?
Is "Free" Good Enough for Your MySQL Environment?
 
The Crown Jewels: Is Enterprise Data Ready for the Cloud?
The Crown Jewels: Is Enterprise Data Ready for the Cloud?The Crown Jewels: Is Enterprise Data Ready for the Cloud?
The Crown Jewels: Is Enterprise Data Ready for the Cloud?
 
Big data talk barcelona - jsr - jc
Big data talk   barcelona - jsr - jcBig data talk   barcelona - jsr - jc
Big data talk barcelona - jsr - jc
 
OpenStack Management at Hyperscale
OpenStack Management at HyperscaleOpenStack Management at Hyperscale
OpenStack Management at Hyperscale
 
Moving to the cloud; PaaS, IaaS or Managed Instance
Moving to the cloud; PaaS, IaaS or Managed InstanceMoving to the cloud; PaaS, IaaS or Managed Instance
Moving to the cloud; PaaS, IaaS or Managed Instance
 
Live Introduction to the Cloud Native Microservices Platform – open, manageab...
Live Introduction to the Cloud Native Microservices Platform – open, manageab...Live Introduction to the Cloud Native Microservices Platform – open, manageab...
Live Introduction to the Cloud Native Microservices Platform – open, manageab...
 
Scaling Your Database in the Cloud
Scaling Your Database in the CloudScaling Your Database in the Cloud
Scaling Your Database in the Cloud
 
Sql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureSql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su Azure
 
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
 
Webinar - Macy’s: Why Your Database Decision Directly Impacts Customer Experi...
Webinar - Macy’s: Why Your Database Decision Directly Impacts Customer Experi...Webinar - Macy’s: Why Your Database Decision Directly Impacts Customer Experi...
Webinar - Macy’s: Why Your Database Decision Directly Impacts Customer Experi...
 
Arkena from heroku_to_k8s
Arkena from heroku_to_k8sArkena from heroku_to_k8s
Arkena from heroku_to_k8s
 
KubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to Kubernetes
 
Using Apache Cassandra and Apache Kafka to Scale Next Gen Applications
Using Apache Cassandra and Apache Kafka to Scale Next Gen ApplicationsUsing Apache Cassandra and Apache Kafka to Scale Next Gen Applications
Using Apache Cassandra and Apache Kafka to Scale Next Gen Applications
 
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
 

Dernier

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Betfair + Couchbase

  • 2. AGENDA • Who Betfair are • Why Couchbase was chosen at Betfair • What it is being used for • Some thoughts on adopting NoSQL in Enterprises • Q&A session later on today 2
  • 4. 4
  • 6. IN NUMBERS 4.0m+ 30,000 Funded 140 bets placed Accounts locations one minute 120,000+ £288m requests per funds on £2.2bn second deposit Mobile FY12 6
  • 8. DATA AT BETFAIR • >30,000 markets that can change every 100ms • Jurisdictionally sensitive navigation • Multiple web applications for multiple channels • Large volumes of data from other products • Transactional data • Operational monitoring too - large amount of logging data 8
  • 9. TECHNOLOGY AT BETFAIR Application Stack • JVM heavy • Linux on commodity hardware • Heavy use of Virtualisation/Private Cloud Data Storage Stack • Oracle • Some Informix & MySQL • NoSQL 9
  • 10. RELATIONAL DATABASES We love Oracle! The lifeblood of our transaction system Highly performant Well understood Resilient Other databases but they are effectively integrated products 10
  • 11. BUT… Impedance mismatch with object orientated languages Object models possible in RDBMS but at what cost? Must have serious skills at this scale Scaling not easy Often very heavyweight solution Integration with Continuous Delivery? So what about NoSQL? 11
  • 13. NOSQL Matches well to object orientated languages Inherently scalable Very fast look ups Integrates very well with Continuous Delivery Combines to give a lower time to delivery 13
  • 15. WHY SO MANY? Different categories of NoSQL, therefore different usage: K/V, Document, Columnar Some are wrapped by other products • CouchDB & Chef • HBase & OpenTSDB But what about cases where we have direct usage? What was the selection criteria for these solutions? 15
  • 16. THE PRESSURE OF DELIVERY Just finished a cycle of high product delivery focus Time to step back and reassess the selections But without negatively affecting current product delivery! 16
  • 17. STRATEGIC REVIEW Good News We had a fair amount of experience with different NoSQL solutions Bad News Fairly certain that some of the uses were less than optimal 17
  • 18. ADOPTION AND ASSESSMENT PROCESS • What were our use cases? • What would be the optimum solutions? 18
  • 19. NOSQL ASSESSMENT PROCESS • Background/Maturity of the technology • Data Model Category • Consistency Model Requirements • Performance • Replication strategy (inc. Concurrency Control) • Caching Model • Query Model • Integration with Continuous Delivery 19
  • 20. NOSQL ASSESSMENT PROCESS • Operational Maintenance (inc. Backup) • Operational Monitoring • Support • Scalability • Reliability • Security • Cost 20
  • 21. INITIAL USE CASES FOR NOSQL Web Tier Persistence • Session and Cross session storage – e.g. Betslip • Memcached • Strong consistency • Cookie abuse • Cassandra as current solution 21
  • 22. INITIAL USE CASES FOR NOSQL User Preferences • Historically tied to customer account • Map of keys and values • Multiple channels with multiple applications • RDBMS as current solution 22
  • 23. CURRENT ARCHITECTURE Server side rendered content SOA Data Services exposed Supports >200,000 concurrent users 23
  • 24. WEB APPLICATION CALL STRUCTURE 24
  • 25. OUR SELECTION CRITERIA • Performance - especially deterministic performance on VMs • Strong consistency • Scaling • Schema flexibility • Multi-tenancy when required • Simplicity • Enterprise support • Consider the future uses 25
  • 27. COUCHBASE PERFORMANCE • Seriously fast • Highly deterministic • Cache ejection/eviction • Avoids Cold Cache on offlined instances • Ideal for our architecture – virtualisation/private cloud • Far better option than our current solution 27
  • 28. COUCHBASE SCALING • Inherently scalable • Impressive ability to add nodes under load • Manual rebalance gives control for highly loaded applications • Replica promotion avoids failure cascades under load 28
  • 29. COUCHBASE SCHEMA FLEXIBILITY • Giving the developers ownership of the data storage • Decouples data migration from application deployment • Important requirement for Feature Throttles • Removes many of the requirements for having DB devs/DBAs • Allows preferences to deal with A/B tests 29
  • 30. OTHER COUCHBASE FEATURES • Multi-tenancy when required • Stable and Resilient • Great ease of use for both Devs and Ops • Enterprise support • Elastic Search integration • Secured with a Service Layer 30
  • 31. COUCHBASE IN CONTINUOUS DELIVERY 31
  • 32. COUCHBASE DEPLOYMENTS • Version 1.8 in production, some 2.0 in pre-prod • 3 instance clusters for individual web applications • Larger (4-6) instance clusters for service storage • We are about 6 months in with our production instances 32
  • 36. COUCHBASE AT BETFAIR Couchbase is now our strategic document NoSQL solution • Session state • Cross session state • Service Persistence for key-based Entities • Familiarity will likely see this extend out into other areas 36
  • 37. INTRODUCING NOSQL IN ENTERPRISE AKA CULTURE HACKING WITH NOSQL • Remember it's an umbrella term - non-experts will ask why we need so many different types of NoSQL • Remember the business benefits • Present the business with both the use cases you want to adopt NoSQL for and the assessment of the candidates • When you can use it, get it out there ASAP in a low risk way • It’s not about choosing what’s cool, it’s about choosing what’s best for the business 37
  • 38. THANK YOU! Martin Anderson @mdjanderson http://betfair.jobs 38

Notes de l'éditeur

  1. Hello there everyone. Those who registered early - Tim and Abe – gazumped by businessMy name is Martin Anderson. I’m currently a Technical Consultant working for Betfair Australia out of Sydney but previous to that I was the Chief Site Architect at Betfair for 2 years and I’ve been with the business for almost 4 years. My main responsibilities have been heading up the complete replacement of our web tier for Betfair.com. That was a brand new platform for all our web channels, both desktop and mobile, including the introduction of Continuous Delivery and NoSQL.
  2. So this is what I hope to cover in this talkSome background on BetfairWhy Couchbase was chosen at BetfairSome thoughts on adopting NoSQL in EnterprisesIt’s worth mentioning that there is a Q&A session at 5pm so you can catch me there or feel free to grab me during the conference
  3. Before we go into why Betfair selected Couchbase and who we use it, we need to know a bit more about who Betfair are, what they do and what technologies they use to do thisSo who are Betfair?Betfair was created in 1999 as a startup between a developer and a city trader around the concept of a Betting exchange. Exactly like a stock exchange but with bets rather than shares. Since then the company has grown to be one of the largest online gambling companies in the world offering not just the exchange but also sportsbook betting, casino, arcade, bingo and poker. It is very much a dom.com success and very much a British one with the headquarters being in Hammersmith although there are development offices in Romania, Portugal and Australia.
  4. We have a lot of products but the main one that we are known for is the betting exchange. Unlike a normal book maker, where you can only back an outcome like I want , you are able to lay it too. Laying is just effectively taking a back bet from another person.Size wise, we do a fair bit of business and that means that there is a fair amount of data flying around.Here are some numbers for you
  5. This all comes from a volume of bets that exceeds the combined volumes from all the stock exchanges in Europe combined.My favourite is that 20% of customers admitted that they have used their mobile to bet at a weddingWe are practically a bank - we deal with massive volumes of money so people are very interested in our site staying up, being secure and being fastThe company has development centers in the UK, US, Portugal, Romania and Aus. We have a whole host of products, not just the exchange and of course our products have very strict rules from regulatorsThere is a massive amount of complexity. The complexity is not just around data volumes and the speed that we have to process them but also that we offer multiple products across multiple channels in multiple jurisdictions with overview from multiple regulators.But we are going to focus on data
  6. So what sort of data are we looking atPretty much the full gamutMarket data – new markets are created all the time and they need to be surfaced on the site when they doMarkets pricing data – this is the one that changes every The navigational hierarchy data is actually a Directed Acyclic Graph that needs to be correct for each userAs an example, Italian users will have a specific markets for only them while Danish users cannot be offered events like horse racing since an animal is involved.Transactional data – of course since people are placing betsOperational monitoring – we are big exponents of DevOps and making sure that we know what’s happening in the business. Because the system is not simple, this is the only way we can know what is going on.Over 500Gb of data per month just from logging – not including the rest of operational monitoring
  7. Java is not cool butGood knowledge already at Betfair •  Real concurrency – great for heavy server workload •  Large Community •  Great Toolset •  Operations Teams understand Java – stats, GC logs, deployment process Oracle
  8. WE LOVE ORACLE!The lifeblood of our transaction system – in fact our core exchange business is based around OracleHighly performant – this might be surprising but just because something is an RDBMS it is not essentially slowWell understood – we have a lot of experience with this. We are comfortable using it and know what to do when this don’t go the way we plannedResilient – Given that we are a bank in many ways – how happy would you be if your bank went down? We are in the business of staying up
  9. Impedance mismatch with object orientated languages – the rise (and fall?) of technology like Hibernate and other ORMs highlights this. When you are developing there is a clear break between your application logic and the persistence technology wth RDBMS.Object models possible in RDBMS but at what cost? – you can solve this issue but what are the costs both in the development cost and then the on going maintenance as you fit a square peg into a round holeMust have serious skills at this scale – we are one of the top 5 hottest Oracle databases in the worldScaling not easy – clustering and sharding – easy to say, not so easy to doIntegration with Continuous Delivery? – We deploy at least once a week.I don’t want to go on too much about Continuous Delivery but I firmly believe that it is no longer an optional requirement for software development. One of the fundamental tenets of CD is that your process is automated. For this to happen it needs to be deterministic and one of the easiest ways to guarantee this is to make the process simple. Unfortunately things like database migrations and green/blue deployments are inhenrently complex even with tooling like DBDeploy
  10. So why should we use NoSQL?Well the reasons are these…The time from concept to cash
  11. CoherenceMemcachedCouchDBCassandraMongoDBHbaseRedis
  12. So why so many?From one perspective, since NoSQL is an umbrella term, you would naturally expect to have multiple typesSome of these technologies are dependencies of other technologies: for example the deployment tool Chef uses CouchDB and OpenTSDB which we use extensively for monitoring uses Hbase under the hoodSo what about direct usage, where our applications are directly using these technologies?Coherence – distributed caching in various tiersMemcached – distributed caching in web tierCassandra – storage in web and service tierMongoDB – storage in prototypes and caching in AustraliaRedis – high speed sorted set delivery in US ExchangeDo we understand why we chose that solution?
  13. It’s fairly common for large organizations to cycle between product delivery and then delivering efficiencies/optimisations on those products especially in an Agile world.We were just coming of the back of not just the delivery of a new web platform but actually a raft of new deliveries across multiple products and channel and even countries. This mean that sometimes our technology is chosen based from what is currently supported rather than
  14. Good NewsWe’ve had experience with K/V, Document and Columnar stores and seen how these things breakBad NewsCassandra is a great piece of tech. Very good for high writes but not optimal for read heavy or even equal read/writes especially when you want strong consistency. Since the client is unaware of the server topology you need to have quorum (explain) read/writes to achieve this. You get intermittent high p95 unless you go to SSDs or front it with Memcached.http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.htmlhttp://techblog.netflix.com/2012/07/benchmarking-high-performance-io-with.html
  15. Pretty simple really since there are only two questionsThe trick is to remember that your use cases need to include your future use cases not just the ones you have nowAnd that your optimum solution needs to answer a whole raft of questions, not just the obvious ones
  16. Web Tier PersistenceSession storage – easy to do with Memcached or Coherence but we want cross session as well so we need persistenceStrong consistency at scale with high performanceknown issues of cold cache and deployment complexityToo many people try to use and abuse cookies for this not secure size constraints so pipe separated magic values that quickly become just magic numbersMobile usage avoids issues with things like low powered devices
  17. User PreferencesSimple settings for how you want your experience to beThis is effectively a map of key values but can be mutimapDates back to when there was a single product on a single channelNow multi-product on multiple channels so an obvious need to be separateWhy? They move at different speeds with different deployments frequencyAlso, feature throttles for rollout and A/B testing – Lazy load the data and let the application be in control
  18. Server side rendered contentSOA Data Services exposedSupports >200,000 concurrent users
  19. 22 MINUTE CHECKThe importance of the blocking calls at the top being fastRemember to loop back and talk about task dedupllication
  20. Mention the performance work done by AltorosClient being aware of the server topology means that you have more deterministic behaviourEjection onto disk allows great overflow from RAMMemcached replacementRe Cassandra - Mention the two Netflix articles on their website – I will tweet them afterwards
  21. Very important for developersEmpowers them to own the entire stack from top to bottom
  22. We tend to have dedicated stacks for various reasons: including independence, compliance and regulation but we also have multi-tenancyWe’ve found it very stable - for example we have had no examples of data loss with Couchbase – not something I can say for other solutions (both Hbasenamenode SPOF and Cassandra Read only VM with no hinted handoff blew the stack)We’ve had no trouble spinning the devs up to speed or the ops guys who support it. For example it’s been great that we had some work in Aus where the full env was not yet ready so the guys spun up some local instances so they could just get to workFor a large organisation like ourselves, having experts we can call on is a great help
  23. We tend to have dedicated stacks for various reasons: includingWe’ve found it very stable - for example we have had no examples of data loss with Couchbase – not something I can say for other solutions (both Hbasenamenode SPOF and Cassandra Read only VM with no hinted handoff blew the stack)We’ve had no trouble spinning the devs up to speed or the ops guys who support it. For example it’s been great that we had some work in Aus where the full env was not yet ready so the guys spun up some local instances so they could just get to workFor a large organisation like ourselves, having experts we can call on is a great help
  24. Here are some examples of couchbase in useThis is for our sportsbookYou can see the spiky nature of the demand as it is skewed towards events that happen from midday to early evening and especially on the weekendTotal Doc data size is around 2.5 Gb
  25. Here’ another bucket for the same applicationThis one is slightly higher Ops per second and has a data set of 3 Gb
  26. Smaller data set here – it’s under 1 GbThese are just a sample of our couchbase usage but it’s fairly representativeIf you have any specific questions on our couchbase instances, please come and find me later.
  27. Session and cross session storageYou can do funky things like share session data across channels, e.g. add a bet to your betslip on your desktop and then access it on your mobile deviceStorage – like user preferences
  28. K/V, Document, Structured Data, Columnar, Graph – each has their own use case, the sweet spot where they work the bestFor us it was delivering faster with less resources – e.g.DBDev, DBAThis should just be putting down on paper your thoughts on the topic so it’s not a wasted exerciseIdeally find something with ephemeral data where going bang does not being down your siteFor use, Couchbase has shown itself to be the best document NoSQL store for our business
  29. Any questions that have interesting answers I will either tweet the answer or tweet a link.Same goes for links that relate to what I’ve covered todayThank you very much