SlideShare a Scribd company logo
1 of 43
Confidential
Polyglot Persistence
December 22nd, 2015
Art van Scheppingen
Severalnines
art@severalnines.com
Confidential
Logistics
 Webinar is recorded
 Replay available soon
 Feel free to ask questions at any time
 Use your control panel to contact us
 Or email us as well: info@severalnines.com
Copyright Severalnines AB
2
Confidential
Agenda
 What is Polyglot Persistence?
 Example project
 Is Polyglot Persistence good or bad?
 Leverage ClusterControl for Polyglot Persistence (demo)
 Q&A
3
Copyright Severalnines AB
Confidential
What is Polyglot Persistence?
Copyright Severalnines AB
4
Confidential
Polyglot Persistence
Using multiple specialized persistent stores rather than
one single general-purpose database
5
Copyright 2013 Severalnines AB
Confidential
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
Copyright Severalnines AB
6
Confidential
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?
Copyright Severalnines AB
7
Confidential
Monoglot Programming
 Does a carpenter only use just one tool?
Copyright Severalnines AB
8
Confidential
Monoglot Programming
 Carpenters use a broad variety of tools
Copyright Severalnines AB
9
Confidential
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
Copyright Severalnines AB
10
Confidential
Polyglot Programming
Copyright Severalnines AB
11
User
Website using
micro services
Profile API Billing API Recommendations API
login
microservice
Java
profile details
microservice
Python
billing
microservice
Go
recommendations
microservice
Scala
Confidential
Monoglot Persistence
Copyright Severalnines AB
12
User
Website using
micro services
Profile API Billing API Recommendations API
login
microservice
Java
profile details
microservice
Python
billing
microservice
Go
recommendations
microservice
Scala
MySQL
Confidential
Data storage landscape changes
 Relational data stores (RDBMS)
 Key-Value data stores
 Columnar data stores
 Document data stores
 Graph data stores
Copyright Severalnines AB
13
Confidential
Data stores overview
Software
RDMBS MySQL,
PostgreSQL,
Oracle
Key-Value Redis, Riak
Columnar Cassandra,
Hbase, InfiniDB
Document MongoDB,
Couchbase
Graph Neo4J, Titan
Copyright Severalnines AB
14
Confidential
Data stores overview
Software AWS Google
RDMBS MySQL,
PostgreSQL,
Oracle
RDS, Aurora CloudSQL
Key-Value Redis, Riak DynamoDB Datastore
Columnar Cassandra,
Hbase, InfiniDB
Redshift Big Query
Document MongoDB,
Couchbase
SimpleDB Bigtable
Graph Neo4J, Titan Titan + DynamoDB -
Copyright Severalnines AB
15
Confidential
Even Hadoop becomes a polyglot
Copyright Severalnines AB
16
Confidential
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
Copyright Severalnines AB
17
Confidential
Use the right tool for the right job
 Document storage: MongoDB
Copyright Severalnines AB
18
application
+ mongos
MongoDB
replica set
shard1
objectsshard
1
{
_id: <objectid1>,
username: myuser,
phone: 023 443 2234,
email: johndoe@gmail.com
}
{
_id: <objectid2>,
username: anotheruser,
email: anotheruser@gmail.com,
age: 23,
}
MongoDB
replica set
shard2
replication
objectsshard2
Confidential
Use the right tool for the right job
 Columnar storage: Cassandra
Copyright Severalnines AB
19
Confidential
Use the right tool for the right job
 Graph storage: Neo4J
Copyright Severalnines AB
20
Confidential
Polyglot Persistence
Copyright Severalnines AB
21
User
Website using
micro services
Profile API Billing API Recommendations API
login
microservice
Java
profile details
microservice
Python
billing
microservice
Go
recommendations
microservice
Scala
PostgreSQL Hadoop RedisMongoDBMySQL
Confidential
Example project
Copyright Severalnines AB
22
Confidential
Project management lifecycle
Copyright Severalnines AB
23
Initiating phase Planning phase Executing phase Closing phase
Requirements
Analysis
Design Develop Test Implement
Handover to
Ops
Systems
decomission
Confidential
Project management lifecycle
Copyright Severalnines AB
24
Initiating phase Planning phase Executing phase Closing phase
Requirements
Analysis
Design Develop Test Implement
Handover to
Ops
Systems
decomission
Confidential
Project management lifecycle
Copyright Severalnines AB
25
Initiating phase Planning phase Executing phase Closing phase
Requirements
Analysis
Design Develop Test Implement
Handover to
Ops
Systems
decomission
Confidential
Development
 Requirements are gathered
 Create a recommendation system
 Storage must be (blazingly) fast
 Document must contain user details
 Data must be kept until the next visit
 Choose the right tool for the right job
 Store data as a document
 Use MongoDB
 Development
Copyright Severalnines AB
26
Confidential
But what happens after development?
 Delivery
 Ops sets up the application on the infrastructure
 Monitoring is added to see if the application works
 If everything is fine the product will be handed over
 What’s next?
 Systems monitoring
 Backups
 Scaling
 Software updates
 BI
Copyright Severalnines AB
27
Confidential
The ops perspective
Copyright Severalnines AB
28
Initiating
phase
Planning
phase
Executing
phase Closing phase
Development
Handover to
Ops
Involvement
Maintenance: keep systems
healthy
Systems
decomission
Confidential
Systems monitoring
 Supported data stores so far:
 MySQL
 Memcached
 How do we monitor MongoDB?
 Integration with Nagios / Zabbix / Shinken
 Integration with Graphite / OpenTSDB / InfluxDB
 What should we monitor?
 Key performance metrics
 SQL vs Mongo queries
Copyright Severalnines AB
29
Confidential
Backups
 Supported backups so far
 Xtrabackup streams
 How do we backup MongoDB?
 What should we backup from MongoDB?
 How do we restore from a backup?
 How do we provide a backup for development?
Copyright Severalnines AB
30
Confidential
Scaling out
 We are data hoarders and like to keep everything
 Scaling options in MySQL
 Read-bound workloads: add more slaves
 Write-bound workloads: sharding or NDB Cluster
 Scaling in MongoDB?
 When should we scale out?
 How do we add a new shard?
 How do we redistribute between shards?
 How do we add a new read slave?
Copyright Severalnines AB
31
Confidential
Software updates
 When do we need to update with MySQL?
 Once we hit a bug?
 Every major release?
 Every minor release?
 When do we need to update with MongoDB?
 How do we know the impact?
Copyright Severalnines AB
32
Confidential
Business Intelligence
 BI with MySQL?
 Export full database from a slave
 Allow schemas/tables to be queried for specific tables
 Most BI tools can connect to MySQL
 BI with MongoDB?
 Native MongoDB analytics tools
 Write your own exports
 BI connector (since version 3.2)
Copyright Severalnines AB
33
Confidential
A new project emerges
Copyright Severalnines AB
34
Initiating phase Planning phase Executing phase Closing phase
Requirements
Analysis
Design Develop Test Implement
Handover to
Ops
Systems
decomission
Confidential
With new requirements
 Requirements are gathered
 Allow users to view their earnings
 Data must always be 100% reliable
 Storage must be ACID compliant
 Choose the right tool for the right job
 Store data relational
 Use PostgreSQL
Copyright Severalnines AB
35
Confidential
Is Polyglot Persistence good or bad?
Copyright Severalnines AB
36
Confidential
The drawbacks
 More specific (domain) knowledge is needed
 Additional tooling may be necessary
 Need more hands to maintain the systems
Copyright Severalnines AB
37
Confidential
The benefits
 More flexibility to your company
 Driven and dedicated devops who take ownership
 Use the right tool for the right job
Copyright Severalnines AB
38
Confidential
The challenges
 Deploy various data stores
 Handle HA and failovers
 Scaling and sharding
 Interpret graphs and monitoring
 Schedule backups and handle recovery
 Handle updates/upgrades
Copyright Severalnines AB
39
Confidential
Polyglot Persistence is here to stay
 Variety of data storage needs keeps growing
 Polyglots in the cloud
 Better be prepared for it
Copyright Severalnines AB
40
Confidential
Leverage ClusterControl for Polyglot
Persistence (demo)
Copyright Severalnines AB
41
Confidential
Q&A
Copyright Severalnines AB
42
Confidential
Thank You!
 ClusterControl
 www.severalnines.com/product/clustercontrol
 ClusterControl – Getting Started
 www.severalnines.com/getting-started
 Polyglot Persistence meetups
 http://goo.gl/64Ga5z
 Severalnines Blog
 www.severalnines.com/blog
 Contact: info@severalnines.com
43

More Related Content

What's hot

#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolithChris Richardson
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Edureka!
 
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...Chris Richardson
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolithAgile integration: Decomposing the monolith
Agile integration: Decomposing the monolithJudy Breedlove
 
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON KeynoteCloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON KeynoteCloud Foundry Foundation
 
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...Chris Richardson
 
Polyglot persistence for Java developers: time to move out of the relational ...
Polyglot persistence for Java developers: time to move out of the relational ...Polyglot persistence for Java developers: time to move out of the relational ...
Polyglot persistence for Java developers: time to move out of the relational ...Chris Richardson
 
SVCC Microservices: Decomposing Applications for Testability and Deployability
SVCC Microservices: Decomposing Applications for Testability and Deployability SVCC Microservices: Decomposing Applications for Testability and Deployability
SVCC Microservices: Decomposing Applications for Testability and Deployability Chris Richardson
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice ArchitectureWSO2
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microserviceLuigi Bennardis
 
Kubernetes and Container Technologies from Cloud Native Computing Foundation
Kubernetes and Container Technologies from Cloud Native Computing FoundationKubernetes and Container Technologies from Cloud Native Computing Foundation
Kubernetes and Container Technologies from Cloud Native Computing FoundationCloud Standards Customer Council
 
How to Choose the Right Technology, Framework or Tool to Build Microservices
How to Choose the Right Technology, Framework or Tool to Build MicroservicesHow to Choose the Right Technology, Framework or Tool to Build Microservices
How to Choose the Right Technology, Framework or Tool to Build MicroservicesKai Wähner
 
Pragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of MiddlewarePragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of MiddlewareAsanka Abeysinghe
 
MicroServices, yet another architectural style?
MicroServices, yet another architectural style?MicroServices, yet another architectural style?
MicroServices, yet another architectural style?ACA IT-Solutions
 
A Decade of Microservices
A Decade of MicroservicesA Decade of Microservices
A Decade of MicroservicesRuman Khan
 
Defining Microservices
Defining MicroservicesDefining Microservices
Defining MicroservicesMatt McLarty
 

What's hot (20)

#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
 
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Cloud Native In-Depth
Cloud Native In-DepthCloud Native In-Depth
Cloud Native In-Depth
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolithAgile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
 
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON KeynoteCloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
 
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...
 
Polyglot persistence for Java developers: time to move out of the relational ...
Polyglot persistence for Java developers: time to move out of the relational ...Polyglot persistence for Java developers: time to move out of the relational ...
Polyglot persistence for Java developers: time to move out of the relational ...
 
SVCC Microservices: Decomposing Applications for Testability and Deployability
SVCC Microservices: Decomposing Applications for Testability and Deployability SVCC Microservices: Decomposing Applications for Testability and Deployability
SVCC Microservices: Decomposing Applications for Testability and Deployability
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice Architecture
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
 
Kubernetes and Container Technologies from Cloud Native Computing Foundation
Kubernetes and Container Technologies from Cloud Native Computing FoundationKubernetes and Container Technologies from Cloud Native Computing Foundation
Kubernetes and Container Technologies from Cloud Native Computing Foundation
 
How to Choose the Right Technology, Framework or Tool to Build Microservices
How to Choose the Right Technology, Framework or Tool to Build MicroservicesHow to Choose the Right Technology, Framework or Tool to Build Microservices
How to Choose the Right Technology, Framework or Tool to Build Microservices
 
Pragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of MiddlewarePragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of Middleware
 
MicroServices, yet another architectural style?
MicroServices, yet another architectural style?MicroServices, yet another architectural style?
MicroServices, yet another architectural style?
 
A Decade of Microservices
A Decade of MicroservicesA Decade of Microservices
A Decade of Microservices
 
Defining Microservices
Defining MicroservicesDefining Microservices
Defining Microservices
 

Viewers also liked

Developing polyglot persistence applications (gluecon 2013)
Developing polyglot persistence applications (gluecon 2013)Developing polyglot persistence applications (gluecon 2013)
Developing polyglot persistence applications (gluecon 2013)Chris Richardson
 
Hybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsSteven Francia
 
Synchronise your data between MySQL and MongoDB
Synchronise your data between MySQL and MongoDBSynchronise your data between MySQL and MongoDB
Synchronise your data between MySQL and MongoDBGiuseppe Maxia
 
Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesLuca Garulli
 
The Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot PersistenceThe Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot PersistenceAbdelmonaim Remani
 
Developing polyglot persistence applications (SpringOne China 2012)
Developing polyglot persistence applications (SpringOne China 2012)Developing polyglot persistence applications (SpringOne China 2012)
Developing polyglot persistence applications (SpringOne China 2012)Chris Richardson
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBNicola Iarocci
 

Viewers also liked (7)

Developing polyglot persistence applications (gluecon 2013)
Developing polyglot persistence applications (gluecon 2013)Developing polyglot persistence applications (gluecon 2013)
Developing polyglot persistence applications (gluecon 2013)
 
Hybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS Applications
 
Synchronise your data between MySQL and MongoDB
Synchronise your data between MySQL and MongoDBSynchronise your data between MySQL and MongoDB
Synchronise your data between MySQL and MongoDB
 
Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model Databases
 
The Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot PersistenceThe Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot Persistence
 
Developing polyglot persistence applications (SpringOne China 2012)
Developing polyglot persistence applications (SpringOne China 2012)Developing polyglot persistence applications (SpringOne China 2012)
Developing polyglot persistence applications (SpringOne China 2012)
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDB
 

Similar to Slides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBA

Running Data Platforms Like Products
Running Data Platforms Like ProductsRunning Data Platforms Like Products
Running Data Platforms Like ProductsVMware Tanzu
 
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptxGangTingFan
 
Case Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San FranciscoCase Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San FranciscoForgeRock
 
Schnellere Digitalisierung mit einer cloudbasierten Datenstrategie
Schnellere Digitalisierung mit einer cloudbasierten DatenstrategieSchnellere Digitalisierung mit einer cloudbasierten Datenstrategie
Schnellere Digitalisierung mit einer cloudbasierten DatenstrategieMongoDB
 
Webinar slides - ClusterControl 1.2.11: with support for MariaDB’s MaxScale a...
Webinar slides - ClusterControl 1.2.11: with support for MariaDB’s MaxScale a...Webinar slides - ClusterControl 1.2.11: with support for MariaDB’s MaxScale a...
Webinar slides - ClusterControl 1.2.11: with support for MariaDB’s MaxScale a...Severalnines
 
Webinar on MongoDB BI Connectors
Webinar on MongoDB BI ConnectorsWebinar on MongoDB BI Connectors
Webinar on MongoDB BI ConnectorsSumit Sarkar
 
Horses for Courses: Database Roundtable
Horses for Courses: Database RoundtableHorses for Courses: Database Roundtable
Horses for Courses: Database RoundtableEric Kavanagh
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Severalnines
 
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018Amazon Web Services
 
How Hewlett Packard Enterprise Gets Real with IoT Analytics
How Hewlett Packard Enterprise Gets Real with IoT AnalyticsHow Hewlett Packard Enterprise Gets Real with IoT Analytics
How Hewlett Packard Enterprise Gets Real with IoT AnalyticsArcadia Data
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Apigee | Google Cloud
 
Juan Francisco Losa - Nuevos enfoques de seguridad en un Banco Digital [roote...
Juan Francisco Losa - Nuevos enfoques de seguridad en un Banco Digital [roote...Juan Francisco Losa - Nuevos enfoques de seguridad en un Banco Digital [roote...
Juan Francisco Losa - Nuevos enfoques de seguridad en un Banco Digital [roote...RootedCON
 
BusinessIntelligenze - On Cloud BI (English)
BusinessIntelligenze - On Cloud BI (English)BusinessIntelligenze - On Cloud BI (English)
BusinessIntelligenze - On Cloud BI (English)BusinessIntelligenze
 
Accelerating the Path to Digital with a Cloud Data Strategy
Accelerating the Path to Digital with a Cloud Data StrategyAccelerating the Path to Digital with a Cloud Data Strategy
Accelerating the Path to Digital with a Cloud Data StrategyMongoDB
 
Platform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprisePlatform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterpriseGiulio Roggero
 
Get Started Quickly with IBM's Hadoop as a Service
Get Started Quickly with IBM's Hadoop as a ServiceGet Started Quickly with IBM's Hadoop as a Service
Get Started Quickly with IBM's Hadoop as a ServiceIBM Cloud Data Services
 
SendGrid Improves Email Delivery with Hybrid Data Warehousing
SendGrid Improves Email Delivery with Hybrid Data WarehousingSendGrid Improves Email Delivery with Hybrid Data Warehousing
SendGrid Improves Email Delivery with Hybrid Data WarehousingAmazon Web Services
 
App Development Evolution: What has changed?
App Development Evolution: What has changed? App Development Evolution: What has changed?
App Development Evolution: What has changed? Dev_Events
 
RedisGraph A Low Latency Graph DB: Pieter Cailliau
RedisGraph A Low Latency Graph DB: Pieter CailliauRedisGraph A Low Latency Graph DB: Pieter Cailliau
RedisGraph A Low Latency Graph DB: Pieter CailliauRedis Labs
 

Similar to Slides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBA (20)

Running Data Platforms Like Products
Running Data Platforms Like ProductsRunning Data Platforms Like Products
Running Data Platforms Like Products
 
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
 
Case Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San FranciscoCase Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San Francisco
 
Schnellere Digitalisierung mit einer cloudbasierten Datenstrategie
Schnellere Digitalisierung mit einer cloudbasierten DatenstrategieSchnellere Digitalisierung mit einer cloudbasierten Datenstrategie
Schnellere Digitalisierung mit einer cloudbasierten Datenstrategie
 
Webinar slides - ClusterControl 1.2.11: with support for MariaDB’s MaxScale a...
Webinar slides - ClusterControl 1.2.11: with support for MariaDB’s MaxScale a...Webinar slides - ClusterControl 1.2.11: with support for MariaDB’s MaxScale a...
Webinar slides - ClusterControl 1.2.11: with support for MariaDB’s MaxScale a...
 
Webinar on MongoDB BI Connectors
Webinar on MongoDB BI ConnectorsWebinar on MongoDB BI Connectors
Webinar on MongoDB BI Connectors
 
Horses for Courses: Database Roundtable
Horses for Courses: Database RoundtableHorses for Courses: Database Roundtable
Horses for Courses: Database Roundtable
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
 
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
 
How Hewlett Packard Enterprise Gets Real with IoT Analytics
How Hewlett Packard Enterprise Gets Real with IoT AnalyticsHow Hewlett Packard Enterprise Gets Real with IoT Analytics
How Hewlett Packard Enterprise Gets Real with IoT Analytics
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
Juan Francisco Losa - Nuevos enfoques de seguridad en un Banco Digital [roote...
Juan Francisco Losa - Nuevos enfoques de seguridad en un Banco Digital [roote...Juan Francisco Losa - Nuevos enfoques de seguridad en un Banco Digital [roote...
Juan Francisco Losa - Nuevos enfoques de seguridad en un Banco Digital [roote...
 
BusinessIntelligenze - On Cloud BI (English)
BusinessIntelligenze - On Cloud BI (English)BusinessIntelligenze - On Cloud BI (English)
BusinessIntelligenze - On Cloud BI (English)
 
Accelerating the Path to Digital with a Cloud Data Strategy
Accelerating the Path to Digital with a Cloud Data StrategyAccelerating the Path to Digital with a Cloud Data Strategy
Accelerating the Path to Digital with a Cloud Data Strategy
 
Platform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprisePlatform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprise
 
Get Started Quickly with IBM's Hadoop as a Service
Get Started Quickly with IBM's Hadoop as a ServiceGet Started Quickly with IBM's Hadoop as a Service
Get Started Quickly with IBM's Hadoop as a Service
 
SendGrid Improves Email Delivery with Hybrid Data Warehousing
SendGrid Improves Email Delivery with Hybrid Data WarehousingSendGrid Improves Email Delivery with Hybrid Data Warehousing
SendGrid Improves Email Delivery with Hybrid Data Warehousing
 
App Development Evolution: What has changed?
App Development Evolution: What has changed? App Development Evolution: What has changed?
App Development Evolution: What has changed?
 
Serverless_with_MongoDB
Serverless_with_MongoDBServerless_with_MongoDB
Serverless_with_MongoDB
 
RedisGraph A Low Latency Graph DB: Pieter Cailliau
RedisGraph A Low Latency Graph DB: Pieter CailliauRedisGraph A Low Latency Graph DB: Pieter Cailliau
RedisGraph A Low Latency Graph DB: Pieter Cailliau
 

More from Severalnines

Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSSeveralnines
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudSeveralnines
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsSeveralnines
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSeveralnines
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...Severalnines
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBSeveralnines
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlSeveralnines
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Severalnines
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Severalnines
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBSeveralnines
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseSeveralnines
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBSeveralnines
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerSeveralnines
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifeSeveralnines
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLSeveralnines
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningSeveralnines
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBSeveralnines
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Severalnines
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilitySeveralnines
 
Webinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database ManagementWebinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database ManagementSeveralnines
 

More from Severalnines (20)

Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaS
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The Basics
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDB
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDB
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash Course
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDB
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona Server
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High Availability
 
Webinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database ManagementWebinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database Management
 

Recently uploaded

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Recently uploaded (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

Slides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBA

  • 1. Confidential Polyglot Persistence December 22nd, 2015 Art van Scheppingen Severalnines art@severalnines.com
  • 2. Confidential Logistics  Webinar is recorded  Replay available soon  Feel free to ask questions at any time  Use your control panel to contact us  Or email us as well: info@severalnines.com Copyright Severalnines AB 2
  • 3. Confidential Agenda  What is Polyglot Persistence?  Example project  Is Polyglot Persistence good or bad?  Leverage ClusterControl for Polyglot Persistence (demo)  Q&A 3 Copyright Severalnines AB
  • 4. Confidential What is Polyglot Persistence? Copyright Severalnines AB 4
  • 5. Confidential Polyglot Persistence Using multiple specialized persistent stores rather than one single general-purpose database 5 Copyright 2013 Severalnines AB
  • 6. Confidential 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 Copyright Severalnines AB 6
  • 7. Confidential 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? Copyright Severalnines AB 7
  • 8. Confidential Monoglot Programming  Does a carpenter only use just one tool? Copyright Severalnines AB 8
  • 9. Confidential Monoglot Programming  Carpenters use a broad variety of tools Copyright Severalnines AB 9
  • 10. Confidential 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 Copyright Severalnines AB 10
  • 11. Confidential Polyglot Programming Copyright Severalnines AB 11 User Website using micro services Profile API Billing API Recommendations API login microservice Java profile details microservice Python billing microservice Go recommendations microservice Scala
  • 12. Confidential Monoglot Persistence Copyright Severalnines AB 12 User Website using micro services Profile API Billing API Recommendations API login microservice Java profile details microservice Python billing microservice Go recommendations microservice Scala MySQL
  • 13. Confidential Data storage landscape changes  Relational data stores (RDBMS)  Key-Value data stores  Columnar data stores  Document data stores  Graph data stores Copyright Severalnines AB 13
  • 14. Confidential Data stores overview Software RDMBS MySQL, PostgreSQL, Oracle Key-Value Redis, Riak Columnar Cassandra, Hbase, InfiniDB Document MongoDB, Couchbase Graph Neo4J, Titan Copyright Severalnines AB 14
  • 15. Confidential Data stores overview Software AWS Google RDMBS MySQL, PostgreSQL, Oracle RDS, Aurora CloudSQL Key-Value Redis, Riak DynamoDB Datastore Columnar Cassandra, Hbase, InfiniDB Redshift Big Query Document MongoDB, Couchbase SimpleDB Bigtable Graph Neo4J, Titan Titan + DynamoDB - Copyright Severalnines AB 15
  • 16. Confidential Even Hadoop becomes a polyglot Copyright Severalnines AB 16
  • 17. Confidential 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 Copyright Severalnines AB 17
  • 18. Confidential Use the right tool for the right job  Document storage: MongoDB Copyright Severalnines AB 18 application + mongos MongoDB replica set shard1 objectsshard 1 { _id: <objectid1>, username: myuser, phone: 023 443 2234, email: johndoe@gmail.com } { _id: <objectid2>, username: anotheruser, email: anotheruser@gmail.com, age: 23, } MongoDB replica set shard2 replication objectsshard2
  • 19. Confidential Use the right tool for the right job  Columnar storage: Cassandra Copyright Severalnines AB 19
  • 20. Confidential Use the right tool for the right job  Graph storage: Neo4J Copyright Severalnines AB 20
  • 21. Confidential Polyglot Persistence Copyright Severalnines AB 21 User Website using micro services Profile API Billing API Recommendations API login microservice Java profile details microservice Python billing microservice Go recommendations microservice Scala PostgreSQL Hadoop RedisMongoDBMySQL
  • 23. Confidential Project management lifecycle Copyright Severalnines AB 23 Initiating phase Planning phase Executing phase Closing phase Requirements Analysis Design Develop Test Implement Handover to Ops Systems decomission
  • 24. Confidential Project management lifecycle Copyright Severalnines AB 24 Initiating phase Planning phase Executing phase Closing phase Requirements Analysis Design Develop Test Implement Handover to Ops Systems decomission
  • 25. Confidential Project management lifecycle Copyright Severalnines AB 25 Initiating phase Planning phase Executing phase Closing phase Requirements Analysis Design Develop Test Implement Handover to Ops Systems decomission
  • 26. Confidential Development  Requirements are gathered  Create a recommendation system  Storage must be (blazingly) fast  Document must contain user details  Data must be kept until the next visit  Choose the right tool for the right job  Store data as a document  Use MongoDB  Development Copyright Severalnines AB 26
  • 27. Confidential But what happens after development?  Delivery  Ops sets up the application on the infrastructure  Monitoring is added to see if the application works  If everything is fine the product will be handed over  What’s next?  Systems monitoring  Backups  Scaling  Software updates  BI Copyright Severalnines AB 27
  • 28. Confidential The ops perspective Copyright Severalnines AB 28 Initiating phase Planning phase Executing phase Closing phase Development Handover to Ops Involvement Maintenance: keep systems healthy Systems decomission
  • 29. Confidential Systems monitoring  Supported data stores so far:  MySQL  Memcached  How do we monitor MongoDB?  Integration with Nagios / Zabbix / Shinken  Integration with Graphite / OpenTSDB / InfluxDB  What should we monitor?  Key performance metrics  SQL vs Mongo queries Copyright Severalnines AB 29
  • 30. Confidential Backups  Supported backups so far  Xtrabackup streams  How do we backup MongoDB?  What should we backup from MongoDB?  How do we restore from a backup?  How do we provide a backup for development? Copyright Severalnines AB 30
  • 31. Confidential Scaling out  We are data hoarders and like to keep everything  Scaling options in MySQL  Read-bound workloads: add more slaves  Write-bound workloads: sharding or NDB Cluster  Scaling in MongoDB?  When should we scale out?  How do we add a new shard?  How do we redistribute between shards?  How do we add a new read slave? Copyright Severalnines AB 31
  • 32. Confidential Software updates  When do we need to update with MySQL?  Once we hit a bug?  Every major release?  Every minor release?  When do we need to update with MongoDB?  How do we know the impact? Copyright Severalnines AB 32
  • 33. Confidential Business Intelligence  BI with MySQL?  Export full database from a slave  Allow schemas/tables to be queried for specific tables  Most BI tools can connect to MySQL  BI with MongoDB?  Native MongoDB analytics tools  Write your own exports  BI connector (since version 3.2) Copyright Severalnines AB 33
  • 34. Confidential A new project emerges Copyright Severalnines AB 34 Initiating phase Planning phase Executing phase Closing phase Requirements Analysis Design Develop Test Implement Handover to Ops Systems decomission
  • 35. Confidential With new requirements  Requirements are gathered  Allow users to view their earnings  Data must always be 100% reliable  Storage must be ACID compliant  Choose the right tool for the right job  Store data relational  Use PostgreSQL Copyright Severalnines AB 35
  • 36. Confidential Is Polyglot Persistence good or bad? Copyright Severalnines AB 36
  • 37. Confidential The drawbacks  More specific (domain) knowledge is needed  Additional tooling may be necessary  Need more hands to maintain the systems Copyright Severalnines AB 37
  • 38. Confidential The benefits  More flexibility to your company  Driven and dedicated devops who take ownership  Use the right tool for the right job Copyright Severalnines AB 38
  • 39. Confidential The challenges  Deploy various data stores  Handle HA and failovers  Scaling and sharding  Interpret graphs and monitoring  Schedule backups and handle recovery  Handle updates/upgrades Copyright Severalnines AB 39
  • 40. Confidential Polyglot Persistence is here to stay  Variety of data storage needs keeps growing  Polyglots in the cloud  Better be prepared for it Copyright Severalnines AB 40
  • 41. Confidential Leverage ClusterControl for Polyglot Persistence (demo) Copyright Severalnines AB 41
  • 43. Confidential Thank You!  ClusterControl  www.severalnines.com/product/clustercontrol  ClusterControl – Getting Started  www.severalnines.com/getting-started  Polyglot Persistence meetups  http://goo.gl/64Ga5z  Severalnines Blog  www.severalnines.com/blog  Contact: info@severalnines.com 43