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
Who are we?
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 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 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 VidaXL DevOps Datastores
- MySQL
- MariaDB (Galera) clusters
- MySQL replication
- PostgreSQL
- SOLR
- Elasticsearch
- ELK
- MongoDB
- Couchbase
- (RabbitMQ)
- Prometheus
SLIDE 7 What is Polyglot Persistence?
Using multiple specialized persistent stores rather than one single general-purpose database
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 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 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
Monoglot programming
SLIDE 12 Monoglot programming
Carpenters actually use a broad variety of tools
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
Polyglot Programming
SLIDE 15
Monoglot Persistence
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 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 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
Even Hadoop has become a polyglot
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
Use the right tool for the right job
Document storage: MongoDB
SLIDE 22
Use the right tool for the right job
Columnar storage: Cassandra
SLIDE 23
Use the right tool for the right job
Graph storage: Neo4J
SLIDE 24
Polyglot Persistence
SLIDE 25 Polyglot Persistence at VidaXL
Yes we certainly are polyglots!
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 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
From monolith to microservice
SLIDE 29
From monolith to microservice
SLIDE 30
From monolith to microservice
SLIDE 31
From monolith to microservice
SLIDE 32
From monolith to microservice
SLIDE 33
From monolith to microservice
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 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 ClusterControl by Severalnines
<some subtitle here?>