SlideShare a Scribd company logo
NoSQL: An Architect‘s Perspective
Eberhard Wolff
Architecture and Technology Manager
adesso AG




03.04.13
About me
►    Eberhard Wolff
►    Architecture & Technology Manager at adesso
►    adesso is a leading IT consultancy in Germany
►    Speaker
►    Author (e.g. first German Spring book)
►    Blog: http://ewolff.com
►    Twitter: @ewolff
►    eberhard.wolff@adesso.de
Back in the Days….




03.04.13   NoSQL aus Sicht eines Architekten
NoSQL Is All About the Persistence Question




03.04.13   NoSQL aus Sicht eines Architekten
Key-Value Stores
                                                   Key   Value
►    Maps keys to values                           42    Some
►    Just a large globally available Map                 data

►    i.e. not very powerful data model


►    No complex queries or indices
►    Just access by key


►    Redis: Think cache + Persistence
►    Riak: Think massive scale




03.04.13       NoSQL aus Sicht eines Architekten
Wide Column
                                                             XX

                                                        XX        XX        XX        XX
►    Add any "column" you like to a row                           XX   XX   XX

►    Not key-value - "key-(column-value)”                    XX   XX        XX        XX

                                                        XX        XX   XX             XX
►    Column families are like tables                         XX        XX        XX   XX


►    E.g. in the "Users" column family                  XX        XX        XX        XX

                                                        XX   XX

     >  "someuser" è ("username"è"someuser"),                   XX   XX   XX

           ("email" è"someuser@example.com")                XX                  XX   XX

                                                        XX             XX        XX
►    Columns named: indexing possible                        XX   XX        XX        XX


►    So queries possible                                     XX   XX   XX        XX

                                                        XX        xX   XX   XX   XX




►    Apache Cassandra
►    Amazon SimpleDB
►    Apache HBase
►    All tuned for large data sets

     03.04.13       NoSQL aus Sicht eines Architekten
Document Stores
►    Aggregates are typically stored as "documents“ (key-value collection)
►    JSON quite common
►    No fixed schema
►    Indexes possible
►    Queries possible
     >  E.g. "find all baskets that contain the product 123"
►    Still great horizontal scalability
►    Relations might be modeled as links


►    MongoDB, CouchDB




03.04.13         NoSQL aus Sicht eines Architekten
Graph
►    Nodes with Properties
►    Typed relationships with properties


►    Ideal e.g. to model relations in a social network


►    Easy to find number of followers, degree of relation etc.
►    Hard to scale out


►    Neo4j




03.04.13        NoSQL aus Sicht eines Architekten
NoSQL Benefits
Costs
•  Scale out instead of Scale Up
•  Cheap Hardware                               Ops
•  Usually Open Source



                                                 Flexibility
                                                 •  Schema in code not in
                                                    database
                                                 •  Easier to upgrade schema
                                      Dev        •  Easier to handle
                                                    heterogeneous data
                                  No Object/relational impedance mismatch
                                  •  NoSQL database are more OO like
 03.04.13   NoSQL aus Sicht eines Architekten
Drivers

                 Exponential Data
                                                   Key Value
                     Growth

Cost
                       Scale Out                  Wide Column




                  Semi Structured
                       Data                        Document


Flexibility
                  More Connected
                                                     Graph
                       Data


   03.04.13   NoSQL aus Sicht eines Architekten
Document-oriented Databases are the
                 best NoSQL database

           For at least one definition of “best”



03.04.13             NoSQL aus Sicht eines Architekten
Document-oriented databases
►    Offer scale out
     >  Unless you need huge amounts of data         Cost
►    Offer a rich and flexible data model        Flexibility
     >  …and queries

►  Other databases have other sweet spots
   >  Huge data sets
   >  Graph structures
   >  Analyzing data
►  Niches or mainstream?




04.04.13     NoSQL aus Sicht eines Architekten
Polyglot Persistence in Ecommerce
Application
            Needs transactions                                 Complex document-like
             & reports. Data fit well in                       data structures and
            tables.                                            complex queries

 Financial Data                                    Product Catalog
                                                      Document
       RDBMS                                            Store


            High Performance &
                                                               Based on friends, their
            Scalability
                                                               purchases and reviews
            No complex queries

 Shopping Cart                                     Recommendation

    Key / Value                                        Graph




03.04.13       NoSQL aus Sicht eines Architekten
The NoSQL Game
            Needs transactions                                 Complex document-like
             & reports. Data fit well in                       data structures and
            tables.                                            complex queries




             2700
                                                   Product Catalog
       0
 Financial Data

       RDBMS
                                                     1000
                                                      Document
                                                        Store




           High Score!
            High Performance &
                                                               Based on friends, their
            Scalability
                                                               purchases and reviews
            No complex queries

 Shopping Cart                                     Recommendation

 900Key / Value
                                                     800
                                                       Graph




03.04.13       NoSQL aus Sicht eines Architekten
Just Like the Patterns Game!
    Points for each Pattern used
    Extra points if one class implements
    multiple Pattern




04.04.13          NoSQL aus Sicht eines Architekten
This is not how
           Software Architecture works.




03.04.13         NoSQL aus Sicht eines Architekten
Why not?
                               More is worse!

More hardware                                    More Ops Trouble
                                                 •  Installation
                                                 •  Backup
More Developer Skillz                            •  Disaster Recovery
Not necessarily bad                              •  Monitoring
                                                 •  Optimizations


  03.04.13   NoSQL aus Sicht eines Architekten
But: Polyglott Persistence Has a Point
Object-oriented Databases did it wrong
•  Strategy: Replace RDBMS
•  Enterprises will stick to RDBMS
•  Pure technology migration basically
   never happens
•  …only vendors think differently
                                          Example: Archive Database
                                          •  Store current data in RDBMS
                                          •  Store archive in NoSQL (MongoDB)
                                          •  Archive contains mainframe data

            •  Benefit: Use flexibility to allow for many data formats
            •  Benefit: No need to convert mainframe data
            •  Benefit: Store lots of data cheaply
 03.04.13      NoSQL aus Sicht eines Architekten
Complex Document Processing System




                                                           elastic
MongoDB                                    Redis
                                                           search
Document-                                  Key/value
                                                           Search
oriented                                   in memory
                                                           engine
Documents                                  Meta Data for
                                           quick access    Search
                                                           index
 04.04.13   NoSQL aus Sicht eines Architekten
Alternative: Only elasticsearch




                                     elastic
•  Stores original documents as well search
•  (like a key/value store)
•  Support for complex queries
•  Very powerful features also for data
   mining / analytics
  04.04.13   NoSQL aus Sicht eines Architekten
Alternative: Only MongoDB




MongoDB
•  Now with (limited beta) fulltext search
•  Quite fast – memory mapped files
•  So why Redis?
•  Map/Reduce support
  04.04.13   NoSQL aus Sicht eines Architekten
What about Redis?




                      Redis
•     Like a Swiss Knife
•     Cache
•     Messaging
•     Central coordination in a distributed
      environment
     04.04.13   NoSQL aus Sicht eines Architekten
Your Choice – a trade off!
           Typical architecture decision




04.04.13        NoSQL aus Sicht eines Architekten
Who Does What? RDBMS

  Developer / Architect                         DBA
  ►  Schema design (at least partly)            ►  Performance tuning
  ►  Access code                                ►  Indices

                                                ►  Query optimization



                                                ►    Changes do not influence code




03.04.13    NoSQL aus Sicht eines Architekten
Data Access: RDBMS
Optimizations                    Data Model
•  Indices                       •  Schema
•  Tables                        •  Stored Procedures
   spaces
No need to                       Data Access
change code                      •  Queries
                                 •  Other code
•  …                                                    RDBMS

                                 Architect/
                                 Developer
 DBA
  03.04.13   NoSQL aus Sicht eines Architekten
RDBMS separate data from data access
                        Indices
           Joins and normalization allow flexible data
                       access patterns




04.04.13               NoSQL aus Sicht eines Architekten
Data Access MongoDB
                                 Data Model
Optimizations
                                 •  Influences access
•  Only basic                       patterns
   indices                       Data Access
Other                            •  WriteConcerns
optimizations                       how much do
must be                             love your data?
done in                          •  Shard key           MongoDB
code                             •  Consistency


                                 Architect/
 DBA                             Developer
  04.04.13   NoSQL aus Sicht eines Architekten
Cluster: RDBMS

►    Works somehow


►    A special setup of hardware and RDBMS software




DBA
04.04.13   NoSQL aus Sicht eines Architekten
Cluster: MongoDB
►    CAP theorem                             ►    Write Concerns:
     >  Consistency                               >  Unacknowledge
     >  Availabilty                               >  Acknowledged
     >  Partition tolerance                       >  Jounrnaled
     >  Choose any two                            >  Some nodes in the
                                                     replica set
►    Deals with replication
►    MongoDB has master /
     slave replication
                       ►  Queries might go to
                                                                         MongoDB
                          master only or also
                          slaves
                                       ►    Influences consistency
                                      Architect/
                                      Developer
       04.04.13   NoSQL aus Sicht eines Architekten
More Power and more Responsibility

                                               Architect

           DB Admin




03.04.13   NoSQL aus Sicht eines Architekten
Architects

► Architect has always been a multi-
dimensional problem

►      Need to choose persistence technology

►      Need to think about operations

►      Needs to do DBA work
03.04.13   NoSQL aus Sicht eines Architekten
NoSQL Is All About the Persistence Question




03.04.13   NoSQL aus Sicht eines Architekten

More Related Content

What's hot

Erciyes university
Erciyes universityErciyes university
Erciyes university
hothaifa alkhazraji
 
NoSQL Data Architecture Patterns
NoSQL Data ArchitecturePatternsNoSQL Data ArchitecturePatterns
NoSQL Data Architecture Patterns
Maynooth University
 
A Seminar on NoSQL Databases.
A Seminar on NoSQL Databases.A Seminar on NoSQL Databases.
A Seminar on NoSQL Databases.
Navdeep Charan
 
Growing Data Analytics at Etsy (Cristopher Bohn)
Growing Data Analytics at Etsy (Cristopher Bohn)Growing Data Analytics at Etsy (Cristopher Bohn)
Growing Data Analytics at Etsy (Cristopher Bohn)Ontico
 
Selecting best NoSQL
Selecting best NoSQL Selecting best NoSQL
Selecting best NoSQL
Mohammed Fazuluddin
 
NoSQL Architecture Overview
NoSQL Architecture OverviewNoSQL Architecture Overview
NoSQL Architecture Overview
Christopher Foot
 
Chapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choicesChapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choices
Maynooth University
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
James Serra
 
the rising no sql technology
the rising no sql technologythe rising no sql technology
the rising no sql technology
INFOGAIN PUBLICATION
 
Nonrelational Databases
Nonrelational DatabasesNonrelational Databases
Nonrelational Databases
Udi Bauman
 
Nosql intro
Nosql introNosql intro
Nosql intro
Hoang Nguyen
 
To SQL or NoSQL, that is the question
To SQL or NoSQL, that is the questionTo SQL or NoSQL, that is the question
To SQL or NoSQL, that is the question
Krishnakumar S
 
Artigo no sql x relational
Artigo no sql x relationalArtigo no sql x relational
Artigo no sql x relational
Adenilson Lima Diniz
 
NoSQL - 05March2014 Seminar
NoSQL - 05March2014 SeminarNoSQL - 05March2014 Seminar
NoSQL - 05March2014 Seminar
Jainul Musani
 
Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016
Softchoice Corporation
 
NoSQL Options Compared
NoSQL Options ComparedNoSQL Options Compared
NoSQL Options ComparedSergey Bushik
 
SQL vs NoSQL deep dive
SQL vs NoSQL deep diveSQL vs NoSQL deep dive
SQL vs NoSQL deep dive
Ahmed Shaaban
 
Comparison between rdbms and nosql
Comparison between rdbms and nosqlComparison between rdbms and nosql
Comparison between rdbms and nosql
bharati k
 
Unit 3 MongDB
Unit 3 MongDBUnit 3 MongDB
Unit 3 MongDB
Praveen M Jigajinni
 

What's hot (20)

Erciyes university
Erciyes universityErciyes university
Erciyes university
 
NoSQL Data Architecture Patterns
NoSQL Data ArchitecturePatternsNoSQL Data ArchitecturePatterns
NoSQL Data Architecture Patterns
 
A Seminar on NoSQL Databases.
A Seminar on NoSQL Databases.A Seminar on NoSQL Databases.
A Seminar on NoSQL Databases.
 
Growing Data Analytics at Etsy (Cristopher Bohn)
Growing Data Analytics at Etsy (Cristopher Bohn)Growing Data Analytics at Etsy (Cristopher Bohn)
Growing Data Analytics at Etsy (Cristopher Bohn)
 
Selecting best NoSQL
Selecting best NoSQL Selecting best NoSQL
Selecting best NoSQL
 
NoSQL Architecture Overview
NoSQL Architecture OverviewNoSQL Architecture Overview
NoSQL Architecture Overview
 
Chapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choicesChapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choices
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
the rising no sql technology
the rising no sql technologythe rising no sql technology
the rising no sql technology
 
Nonrelational Databases
Nonrelational DatabasesNonrelational Databases
Nonrelational Databases
 
Nosql intro
Nosql introNosql intro
Nosql intro
 
To SQL or NoSQL, that is the question
To SQL or NoSQL, that is the questionTo SQL or NoSQL, that is the question
To SQL or NoSQL, that is the question
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
Artigo no sql x relational
Artigo no sql x relationalArtigo no sql x relational
Artigo no sql x relational
 
NoSQL - 05March2014 Seminar
NoSQL - 05March2014 SeminarNoSQL - 05March2014 Seminar
NoSQL - 05March2014 Seminar
 
Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016
 
NoSQL Options Compared
NoSQL Options ComparedNoSQL Options Compared
NoSQL Options Compared
 
SQL vs NoSQL deep dive
SQL vs NoSQL deep diveSQL vs NoSQL deep dive
SQL vs NoSQL deep dive
 
Comparison between rdbms and nosql
Comparison between rdbms and nosqlComparison between rdbms and nosql
Comparison between rdbms and nosql
 
Unit 3 MongDB
Unit 3 MongDBUnit 3 MongDB
Unit 3 MongDB
 

Similar to NoSQL: An Architects Perspective

Databases in the Cloud - DevDay Austin 2017 Day 2
Databases in the Cloud - DevDay Austin 2017 Day 2Databases in the Cloud - DevDay Austin 2017 Day 2
Databases in the Cloud - DevDay Austin 2017 Day 2Amazon Web Services
 
NoSQL Basics and MongDB
NoSQL Basics and  MongDBNoSQL Basics and  MongDB
NoSQL Basics and MongDB
Shamima Yeasmin Mukta
 
Introducing DocumentDB
Introducing DocumentDB Introducing DocumentDB
Introducing DocumentDB
James Serra
 
SQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George GrammatikosSQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George Grammatikos
George Grammatikos
 
Amazon Web Services (Database)
Amazon Web Services (Database)Amazon Web Services (Database)
Amazon Web Services (Database)
Nishant Bhardwaj
 
NoSQL Database: Classification, Characteristics and Comparison
NoSQL Database: Classification, Characteristics and ComparisonNoSQL Database: Classification, Characteristics and Comparison
NoSQL Database: Classification, Characteristics and Comparison
Mayuree Srikulwong
 
Hadoop and Enterprise Data Warehouse
Hadoop and Enterprise Data WarehouseHadoop and Enterprise Data Warehouse
Hadoop and Enterprise Data WarehouseDataWorks Summit
 
NoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value StoreNoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value Store
DATAVERSITY
 
NoSQL Introduction
NoSQL IntroductionNoSQL Introduction
NoSQL Introduction
Ahmed Soliman
 
NoSQLDatabases
NoSQLDatabasesNoSQLDatabases
NoSQLDatabasesAdi Challa
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET AppsShiju Varghese
 
Sql vs NO-SQL database differences explained
Sql vs NO-SQL database differences explainedSql vs NO-SQL database differences explained
Sql vs NO-SQL database differences explained
Satya Pal
 
Mongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorialMongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorial
Mohan Rathour
 
NoSQL: An Analysis
NoSQL: An AnalysisNoSQL: An Analysis
NoSQL: An Analysis
Andrew Brust
 
Why nosql?
Why nosql?Why nosql?
Modern database
Modern databaseModern database
Modern database
Rashid Ansari
 
Introduction to asdfghjkln b vfgh n v
Introduction to asdfghjkln b vfgh n    vIntroduction to asdfghjkln b vfgh n    v
Introduction to asdfghjkln b vfgh n v
23mz02
 

Similar to NoSQL: An Architects Perspective (20)

Databases in the Cloud - DevDay Austin 2017 Day 2
Databases in the Cloud - DevDay Austin 2017 Day 2Databases in the Cloud - DevDay Austin 2017 Day 2
Databases in the Cloud - DevDay Austin 2017 Day 2
 
NoSQL Basics and MongDB
NoSQL Basics and  MongDBNoSQL Basics and  MongDB
NoSQL Basics and MongDB
 
Introducing DocumentDB
Introducing DocumentDB Introducing DocumentDB
Introducing DocumentDB
 
SQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George GrammatikosSQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George Grammatikos
 
Amazon Web Services (Database)
Amazon Web Services (Database)Amazon Web Services (Database)
Amazon Web Services (Database)
 
NoSQL Database: Classification, Characteristics and Comparison
NoSQL Database: Classification, Characteristics and ComparisonNoSQL Database: Classification, Characteristics and Comparison
NoSQL Database: Classification, Characteristics and Comparison
 
Hadoop and Enterprise Data Warehouse
Hadoop and Enterprise Data WarehouseHadoop and Enterprise Data Warehouse
Hadoop and Enterprise Data Warehouse
 
NoSQL
NoSQLNoSQL
NoSQL
 
NoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value StoreNoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value Store
 
NoSQL Introduction
NoSQL IntroductionNoSQL Introduction
NoSQL Introduction
 
NoSQL Seminer
NoSQL SeminerNoSQL Seminer
NoSQL Seminer
 
NoSQL for you
NoSQL for youNoSQL for you
NoSQL for you
 
NoSQLDatabases
NoSQLDatabasesNoSQLDatabases
NoSQLDatabases
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET Apps
 
Sql vs NO-SQL database differences explained
Sql vs NO-SQL database differences explainedSql vs NO-SQL database differences explained
Sql vs NO-SQL database differences explained
 
Mongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorialMongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorial
 
NoSQL: An Analysis
NoSQL: An AnalysisNoSQL: An Analysis
NoSQL: An Analysis
 
Why nosql?
Why nosql?Why nosql?
Why nosql?
 
Modern database
Modern databaseModern database
Modern database
 
Introduction to asdfghjkln b vfgh n v
Introduction to asdfghjkln b vfgh n    vIntroduction to asdfghjkln b vfgh n    v
Introduction to asdfghjkln b vfgh n v
 

More from Eberhard Wolff

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
Eberhard Wolff
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
Eberhard Wolff
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
Eberhard Wolff
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Eberhard Wolff
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
Eberhard Wolff
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
Eberhard Wolff
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
Eberhard Wolff
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
Eberhard Wolff
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
Eberhard Wolff
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
Eberhard Wolff
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
Eberhard Wolff
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
Eberhard Wolff
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
Eberhard Wolff
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
Eberhard Wolff
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
Eberhard Wolff
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
Eberhard Wolff
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
Eberhard Wolff
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
Eberhard Wolff
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
Eberhard Wolff
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Eberhard Wolff
 

More from Eberhard Wolff (20)

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

NoSQL: An Architects Perspective

  • 1. NoSQL: An Architect‘s Perspective Eberhard Wolff Architecture and Technology Manager adesso AG 03.04.13
  • 2. About me ►  Eberhard Wolff ►  Architecture & Technology Manager at adesso ►  adesso is a leading IT consultancy in Germany ►  Speaker ►  Author (e.g. first German Spring book) ►  Blog: http://ewolff.com ►  Twitter: @ewolff ►  eberhard.wolff@adesso.de
  • 3. Back in the Days…. 03.04.13 NoSQL aus Sicht eines Architekten
  • 4. NoSQL Is All About the Persistence Question 03.04.13 NoSQL aus Sicht eines Architekten
  • 5. Key-Value Stores Key Value ►  Maps keys to values 42 Some ►  Just a large globally available Map data ►  i.e. not very powerful data model ►  No complex queries or indices ►  Just access by key ►  Redis: Think cache + Persistence ►  Riak: Think massive scale 03.04.13 NoSQL aus Sicht eines Architekten
  • 6. Wide Column XX XX XX XX XX ►  Add any "column" you like to a row XX XX XX ►  Not key-value - "key-(column-value)” XX XX XX XX XX XX XX XX ►  Column families are like tables XX XX XX XX ►  E.g. in the "Users" column family XX XX XX XX XX XX >  "someuser" è ("username"è"someuser"), XX XX XX ("email" è"someuser@example.com") XX XX XX XX XX XX ►  Columns named: indexing possible XX XX XX XX ►  So queries possible XX XX XX XX XX xX XX XX XX ►  Apache Cassandra ►  Amazon SimpleDB ►  Apache HBase ►  All tuned for large data sets 03.04.13 NoSQL aus Sicht eines Architekten
  • 7. Document Stores ►  Aggregates are typically stored as "documents“ (key-value collection) ►  JSON quite common ►  No fixed schema ►  Indexes possible ►  Queries possible >  E.g. "find all baskets that contain the product 123" ►  Still great horizontal scalability ►  Relations might be modeled as links ►  MongoDB, CouchDB 03.04.13 NoSQL aus Sicht eines Architekten
  • 8. Graph ►  Nodes with Properties ►  Typed relationships with properties ►  Ideal e.g. to model relations in a social network ►  Easy to find number of followers, degree of relation etc. ►  Hard to scale out ►  Neo4j 03.04.13 NoSQL aus Sicht eines Architekten
  • 9. NoSQL Benefits Costs •  Scale out instead of Scale Up •  Cheap Hardware Ops •  Usually Open Source Flexibility •  Schema in code not in database •  Easier to upgrade schema Dev •  Easier to handle heterogeneous data No Object/relational impedance mismatch •  NoSQL database are more OO like 03.04.13 NoSQL aus Sicht eines Architekten
  • 10. Drivers Exponential Data Key Value Growth Cost Scale Out Wide Column Semi Structured Data Document Flexibility More Connected Graph Data 03.04.13 NoSQL aus Sicht eines Architekten
  • 11. Document-oriented Databases are the best NoSQL database For at least one definition of “best” 03.04.13 NoSQL aus Sicht eines Architekten
  • 12. Document-oriented databases ►  Offer scale out >  Unless you need huge amounts of data Cost ►  Offer a rich and flexible data model Flexibility >  …and queries ►  Other databases have other sweet spots >  Huge data sets >  Graph structures >  Analyzing data ►  Niches or mainstream? 04.04.13 NoSQL aus Sicht eines Architekten
  • 13. Polyglot Persistence in Ecommerce Application Needs transactions Complex document-like & reports. Data fit well in data structures and tables. complex queries Financial Data Product Catalog Document RDBMS Store High Performance & Based on friends, their Scalability purchases and reviews No complex queries Shopping Cart Recommendation Key / Value Graph 03.04.13 NoSQL aus Sicht eines Architekten
  • 14. The NoSQL Game Needs transactions Complex document-like & reports. Data fit well in data structures and tables. complex queries 2700 Product Catalog 0 Financial Data RDBMS 1000 Document Store High Score! High Performance & Based on friends, their Scalability purchases and reviews No complex queries Shopping Cart Recommendation 900Key / Value 800 Graph 03.04.13 NoSQL aus Sicht eines Architekten
  • 15. Just Like the Patterns Game! Points for each Pattern used Extra points if one class implements multiple Pattern 04.04.13 NoSQL aus Sicht eines Architekten
  • 16. This is not how Software Architecture works. 03.04.13 NoSQL aus Sicht eines Architekten
  • 17. Why not? More is worse! More hardware More Ops Trouble •  Installation •  Backup More Developer Skillz •  Disaster Recovery Not necessarily bad •  Monitoring •  Optimizations 03.04.13 NoSQL aus Sicht eines Architekten
  • 18. But: Polyglott Persistence Has a Point Object-oriented Databases did it wrong •  Strategy: Replace RDBMS •  Enterprises will stick to RDBMS •  Pure technology migration basically never happens •  …only vendors think differently Example: Archive Database •  Store current data in RDBMS •  Store archive in NoSQL (MongoDB) •  Archive contains mainframe data •  Benefit: Use flexibility to allow for many data formats •  Benefit: No need to convert mainframe data •  Benefit: Store lots of data cheaply 03.04.13 NoSQL aus Sicht eines Architekten
  • 19. Complex Document Processing System elastic MongoDB Redis search Document- Key/value Search oriented in memory engine Documents Meta Data for quick access Search index 04.04.13 NoSQL aus Sicht eines Architekten
  • 20. Alternative: Only elasticsearch elastic •  Stores original documents as well search •  (like a key/value store) •  Support for complex queries •  Very powerful features also for data mining / analytics 04.04.13 NoSQL aus Sicht eines Architekten
  • 21. Alternative: Only MongoDB MongoDB •  Now with (limited beta) fulltext search •  Quite fast – memory mapped files •  So why Redis? •  Map/Reduce support 04.04.13 NoSQL aus Sicht eines Architekten
  • 22. What about Redis? Redis •  Like a Swiss Knife •  Cache •  Messaging •  Central coordination in a distributed environment 04.04.13 NoSQL aus Sicht eines Architekten
  • 23. Your Choice – a trade off! Typical architecture decision 04.04.13 NoSQL aus Sicht eines Architekten
  • 24. Who Does What? RDBMS Developer / Architect DBA ►  Schema design (at least partly) ►  Performance tuning ►  Access code ►  Indices ►  Query optimization ►  Changes do not influence code 03.04.13 NoSQL aus Sicht eines Architekten
  • 25. Data Access: RDBMS Optimizations Data Model •  Indices •  Schema •  Tables •  Stored Procedures spaces No need to Data Access change code •  Queries •  Other code •  … RDBMS Architect/ Developer DBA 03.04.13 NoSQL aus Sicht eines Architekten
  • 26. RDBMS separate data from data access Indices Joins and normalization allow flexible data access patterns 04.04.13 NoSQL aus Sicht eines Architekten
  • 27. Data Access MongoDB Data Model Optimizations •  Influences access •  Only basic patterns indices Data Access Other •  WriteConcerns optimizations how much do must be love your data? done in •  Shard key MongoDB code •  Consistency Architect/ DBA Developer 04.04.13 NoSQL aus Sicht eines Architekten
  • 28. Cluster: RDBMS ►  Works somehow ►  A special setup of hardware and RDBMS software DBA 04.04.13 NoSQL aus Sicht eines Architekten
  • 29. Cluster: MongoDB ►  CAP theorem ►  Write Concerns: >  Consistency >  Unacknowledge >  Availabilty >  Acknowledged >  Partition tolerance >  Jounrnaled >  Choose any two >  Some nodes in the replica set ►  Deals with replication ►  MongoDB has master / slave replication ►  Queries might go to MongoDB master only or also slaves ►  Influences consistency Architect/ Developer 04.04.13 NoSQL aus Sicht eines Architekten
  • 30. More Power and more Responsibility Architect DB Admin 03.04.13 NoSQL aus Sicht eines Architekten
  • 31. Architects ► Architect has always been a multi- dimensional problem ►  Need to choose persistence technology ►  Need to think about operations ►  Needs to do DBA work 03.04.13 NoSQL aus Sicht eines Architekten
  • 32. NoSQL Is All About the Persistence Question 03.04.13 NoSQL aus Sicht eines Architekten