Polyglot persistence: utilizing open source databases as a Swiss - - PowerPoint PPT Presentation

polyglot persistence utilizing open source databases as a
SMART_READER_LITE
LIVE PREVIEW

Polyglot persistence: utilizing open source databases as a Swiss - - PowerPoint PPT Presentation

Polyglot persistence: utilizing open source databases as a Swiss pocket knife Art van Scheppingen - Senior (No)SQL DBA @ VidaXL Bart Ole - Senior Support Engineer @ Severalnines Who are we? VidaXL Company Stats Online retailer in


slide-1
SLIDE 1

Art van Scheppingen - Senior (No)SQL DBA @ VidaXL Bart Oleś - Senior Support Engineer @ Severalnines

Polyglot persistence: utilizing

  • pen source databases as a

Swiss pocket knife

slide-2
SLIDE 2

Who are we?

slide-3
SLIDE 3

VidaXL Company Stats

  • Online retailer in (mostly) slow moving goods
  • Founded 2008
  • 350M turnover, 40% growth yearly
  • 1500 employees (US, CN, AU, IN, RO, UA)
  • HQ in the Netherlands
  • 4 warehouses worldwide (NL, US and AU)
slide-4
SLIDE 4

How does VidaXL sell its goods?

  • Own webshop platform in EU, US and AU
  • Warehouses in NL, US and AU
  • Selling on other platforms, e.g. Amazon, eBay
  • Allow selling on our own platform using Mirakl
  • B2B drop-shipments
slide-5
SLIDE 5

VidaXL Technical Foundations

  • SAP as ERP system
  • Genesys as CS system
  • Webshop
  • Open source web-based development strategy
  • PHP / NodeJS
  • Docker
  • Cloudflare workers
slide-6
SLIDE 6

VidaXL DevOps Datastores

  • MySQL
  • MariaDB (Galera) clusters
  • MySQL replication
  • PostgreSQL
  • SOLR
  • Elasticsearch
  • ELK
  • MongoDB
  • Couchbase
  • (RabbitMQ)
  • Prometheus
slide-7
SLIDE 7

What is Polyglot Persistence?

Using multiple specialized persistent stores rather than one single general-purpose database

slide-8
SLIDE 8

Where does the term come from?

  • The way we work is changing
  • Enterprise applications are becoming more complex
  • Separate (devops/agile) teams
  • Ownership of applications
  • (Micro)services
  • Everyone has their preference
  • Various programming languages
  • Various storage systems
slide-9
SLIDE 9

Where does the term come from?

  • Monoglot Programming
  • Only one programming language allowed
  • Readability
  • All code is in the same language
  • Support
  • One platform to support
  • Knowledge
  • Everybody is an expert
  • Is there a jack-of-all-trades language?
slide-10
SLIDE 10

Where does the term come from?

  • Monoglot Programming
  • Only one programming language allowed
  • Readability
  • All code is in the same language
  • Support
  • One platform to support
  • Knowledge
  • Everybody is an expert
  • Is there a jack-of-all-trades language?
slide-11
SLIDE 11

Monoglot programming

slide-12
SLIDE 12

Monoglot programming

Carpenters actually use a broad variety of tools

slide-13
SLIDE 13

Polyglot Programming

  • Polyglot Programming
  • Use programming languages for what they are good at
  • Flexibility
  • Use Java for a secure API
  • Use Scala for real time stream processing
  • Use Python for text analysis
  • Tie everything together using AngularJS
  • Knowledge
  • Everybody is expert at one or more languages
slide-14
SLIDE 14

Polyglot Programming

slide-15
SLIDE 15

Monoglot Persistence

slide-16
SLIDE 16

Data storage landscape changes

  • Relational data stores (RDBMS)
  • Key-Value data stores (“NoSQL”)
  • Columnar data stores (OLAP)
  • Document data stores (NoSQL)
  • Graph data stores (GDB)
  • Big Data
slide-17
SLIDE 17

Data storage landscape changes

Software RDBMS Oracle, MySQL, PostgreSQL Key-Value Redis, Riak Columnar InfiniDB, Clickhouse Document MongoDB, Couchbase Graph Neo4J, Janusgraph Big Data Hadoop

slide-18
SLIDE 18

Data storage landscape changes

Software AWS Google RDBMS Oracle, MySQL, PostgreSQL RDS, Aurora CloudSQL, Spanner Key-Value Redis, Riak DynamoDB Datastore Columnar InfiniDB, Clickhouse Redshift BigQuery Document MongoDB, Couchbase SimpleDB Bigtable Graph Neo4J, Janusgraph Neptune Big Data Hadoop EMR Cloud Dataproc

slide-19
SLIDE 19

Even Hadoop has become a polyglot

slide-20
SLIDE 20

Polyglot Persistence

  • Complex problems require different storage systems
  • Use the right tool for the job, for example
  • Use PostgreSQL for financial data
  • Use MySQL for website contents
  • Use MongoDB for user profiles
  • Use Cassandra for real time streams
  • Use Neo4J for recommendation analysis
slide-21
SLIDE 21

Use the right tool for the right job

Document storage: MongoDB

slide-22
SLIDE 22

Use the right tool for the right job

Columnar storage: Cassandra

slide-23
SLIDE 23

Use the right tool for the right job

Graph storage: Neo4J

slide-24
SLIDE 24

Polyglot Persistence

slide-25
SLIDE 25

Polyglot Persistence at VidaXL

Yes we certainly are polyglots!

slide-26
SLIDE 26

Quick recap on our data stores

  • MySQL
  • MariaDB (Galera) clusters
  • MySQL replication
  • ProxySQL
  • PostgreSQL
  • SOLR
  • Elasticsearch
  • ELK
  • MongoDB
  • Couchbase
  • (RabbitMQ)
  • Prometheus
slide-27
SLIDE 27

How did this happen?

  • Continuous growth
  • Hardly any time to overhaul existing systems
  • Transition from monolith to microservice architecture
  • For each microservice the most optimal solution has been chosen
  • Early adopters of new technology
  • Gaining advantage over competition
slide-28
SLIDE 28

From monolith to microservice

slide-29
SLIDE 29

From monolith to microservice

slide-30
SLIDE 30

From monolith to microservice

slide-31
SLIDE 31

From monolith to microservice

slide-32
SLIDE 32

From monolith to microservice

slide-33
SLIDE 33

From monolith to microservice

slide-34
SLIDE 34

What were the challenges?

  • Automation
  • Increased complexity
  • Systems monitoring
  • Multiple integrations
  • Maintenance becomes more difficult
  • Backups
  • Scaling
  • Software updates
  • DevOps are not a DBA
slide-35
SLIDE 35

What were the solutions?

  • Invest in automation
  • Never perform any (large) task thrice
  • Increase tooling
  • Build it ourselves costs time
  • Buying/licensing tools costs money
  • Keeping the headcount low saves money
  • Focus on systems that matter most
  • Get (exteneral) help
  • Hire DBAs! ;)
slide-36
SLIDE 36

ClusterControl by Severalnines

<some subtitle here?>

slide-37
SLIDE 37

Thank you