SlideShare uma empresa Scribd logo
1 de 72
5 Popular Choices for
NoSQL on a Microsoft
Platform
Matthew Groves @mgroves
2
AGENDA
01/ What is NoSQL?
02/ Popular NoSQL Choices
03/ Evaluation Criteria
04/ Details
05/ The End
Where am I?
3
• All Things Open
• https://allthingsopen.org/
Who am I?
4
• Matthew D. Groves
• Developer Advocate for Couchbase
• @mgroves on Twitter
• Podcast and blog: http://crosscuttingconcerns.com
• "I am not an expert, but I am an enthusiast." –Alan Stevens
@natelovett
What's NoSQL?
5
1
What's NoSQL?
6
Document
• Couchbase
• MongoDB
• DynamoDB
• CosmosDB
Graph
• OrientDB
• Neo4J
• GraphBase
• CosmosDB
Key-Value
• Couchbase
• Riak
• BerkeleyDB
• Redis
• CosmosDB Wide Column
• Hbase
• Cassandra
• Hypertable
• CosmosDB
What's NoSQL?
7
Document
• Couchbase
• MongoDB
• DynamoDB
• CosmosDB
• Get by key(s)
• Set by key(s)
• Replace by key(s)
• Delete by key(s)
• Map/Reduce
What's NoSQL?
8Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved.
What's NoSQL?
9
Popular NoSQL
Choices2
Popular NoSQL Choices
11
• Document Database
• Runs on Microsoft / Microsoft-friendly
• Popular
Popular NoSQL Choices
12
Popular NoSQL Choices
13
Popular NoSQL Choices
14
Popular NoSQL Choices
15
Popular NoSQL Choices
16
My Goals
17
• Learn
• Get you to try NoSQL (Couchbase at least!)
• Point you in the right direction
Not My Goals
18
• Throwing shade
• Badmouthing
• Eliminating tools from your consideration
• Cover every detail for each tool
Disclaimer
19
• I'm probably wrong
• If I'm wrong, tell me!
Evaluation Criteria
20
3
Querying
21
Scaling
22
Usability
23
Speed
24
Deployment
25
Support
26
SUPPORT WILL DELIVER
LET'S JUST WAIT
27
Querying
28
• Proprietary JSON-based query
• Text search
• .NET and .NET Core SDK
• Linq provider in .NET
Scaling
29
• Multiple node types
• Sharding options
• Master-slave / Primary-secondary
Usability
30
• MongoDB Compass
• Scaling / Replication decisions
Speed
31
• Indexing for queries
• In-memory options
Deployment
32
Support
33
• MongoDB, Inc.
• Open-source (AGPL & Apache)
• Huge community / popularity
34
Querying
35
• REST focused
• MapReduce views
• Mango query language (2.x)
Scaling
36
• Single node type
• Multi-master
• HAProxy
• Sharding configuration
• Replication
Usability
37
• Built in Futon / Fauxton
• Scaling / Replication work
• Cluster Setup Wizard (2.x)
• There is no "official" .NET SDK
• .NET SDKs are REST wrappers
Speed
38
• Indexing for Mango queries
• MapReduce
• Caching is external
Deployment
39
Support
40
• Open-source (Apache)
• Cloudant (IBM)
• Couchbase Lite / Sync Gateway
41
Querying
42
• N1QL (SQL for JSON)
• MapReduce
• Full Text Search (FTS)
• .NET and .NET Core SDK
• Linq2Couchbase
Scaling
43
• Single node type
• Multi-master / "masterless"
• Auto-sharding
• Replication
• XDCR
Usability
44
• Built in web console
• .NET SDK idioms
• N1QL is just SQL
• Scaling
• mongoose and ottoman
Speed
45
• Memory-first architecture
• Indexing for N1QL
• YCSB benchmarks
• Memory-optimized indexes
Deployment
46
Support
47
• Couchbase, Inc.
• Open-source (Apache 2)
48
Querying
49
• SQL (limited)
• Stored Procedures (JS)
• Triggers (JS)
• UDFs (JS)
• .NET and .NET Core SDK
Scaling
50
• Handled by Azure
• Geographic distribution / affinity
• Consistency options
• Guaranteed zero data loss during
failovers
Usability
51
• Azure doing work for you
• .NET and .NET Core SDK
• Local emulator
• Transactions (with sprocs)
• Mongo compatible API
Speed
52
• Guaranteed ~10ms latency reads
• Guaranteed ~15ms latency writes
Deployment
53
Support
54
• Microsoft
55
Querying
56
• Linq (.NET)
• Fluent (Java)
Scaling
57
• Sharding
• Replication
• Clustering
• 4.x
Usability
58
• Built-in web UI
• Handy docker scripts
• Auto-indexing
• Transactions
Speed
59
• Auto-indexing
• .NET
Deployment
60
Support
61
• Hibernating Rhinos
• Open Source (AGPL)
• Commercial licenses & support
Summary
63
5
So which one should I
use?
64
I don't have your answer. I just have more questions.
65
• Mobile?
• Querying?
• Cost / licensing?
• Ops / DevOps?
• Hobby / Side?
• Resume?
• Speed?
• Transactions?
• Security?
• Integrations?
Where do you find us?
67
• blog.couchbase.com
• @couchbasedev
• @mgroves
68
https://blog.couchbase.com/tag/podcast/
Thank you
©2017 Couchbase. All rights reserved.
Frequently Asked Questions
1. How is Couchbase different than Mongo?
2. I'M N1QL RIIIICCCKK!!!!!
3. How did you get to be both incredibly handsome and
tremendously intelligent?
4. What is the Couchbase licensing situation?
5. Is Couchbase a ManagedCloud Service?
I'M N1QL RIIIIIICCCCCKKK!!!!
< Back
http://tinyurl.com/n1qlrick
MongoDB vs Couchbase
< Back
Licensing
Couchbase Server Community
• Open source (Apache 2)
• Binary release is one release behind Enterprise
• Free to use in dev/test/qa/prod
• Forum support only
Couchbase Server Enterprise
• Mostly open source (Apache 2)
• Some features not available on Community (XDCRTLS, MDS, Rack Zone, etc)
• Free to use in dev/test/qa
• Need commercial license for prod
• Paid support provided
< Back
Managed Cloud Service (DBaaS)?
Short answer: No.
< Back
Longer answer: Kinda. https://zdatainc.com/couchbase-managed-services/
Longest answer: See me after class.

Mais conteúdo relacionado

Mais procurados

SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
Foyzul Karim
 
Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014
Damian Beresford
 
Slawomir effective git for distributed teams
Slawomir effective git for distributed teamsSlawomir effective git for distributed teams
Slawomir effective git for distributed teams
Agile Lietuva
 

Mais procurados (20)

SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
Planidoo & Zotonic
Planidoo & ZotonicPlanidoo & Zotonic
Planidoo & Zotonic
 
Azure DevOps Overview [Arabic]
Azure DevOps Overview [Arabic]Azure DevOps Overview [Arabic]
Azure DevOps Overview [Arabic]
 
Middleware in Golang: InVision's Rye
Middleware in Golang: InVision's RyeMiddleware in Golang: InVision's Rye
Middleware in Golang: InVision's Rye
 
ROS - an open-source Robot Operating System
ROS - an open-source Robot Operating SystemROS - an open-source Robot Operating System
ROS - an open-source Robot Operating System
 
Fedora4
Fedora4Fedora4
Fedora4
 
SOA Latam 2015
SOA Latam 2015SOA Latam 2015
SOA Latam 2015
 
Angular4 kickstart
Angular4 kickstartAngular4 kickstart
Angular4 kickstart
 
The Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With PuppetThe Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With Puppet
 
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
 
What developers can really contribute in DevOps concept?
What developers can really contribute in DevOps concept?What developers can really contribute in DevOps concept?
What developers can really contribute in DevOps concept?
 
Performance and Abstractions
Performance and AbstractionsPerformance and Abstractions
Performance and Abstractions
 
Creating Game Leaderboards with Redis
Creating Game Leaderboards with RedisCreating Game Leaderboards with Redis
Creating Game Leaderboards with Redis
 
Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014
 
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
 
Gr8Conf 2016 - GORM Inside and Out
Gr8Conf 2016 - GORM Inside and OutGr8Conf 2016 - GORM Inside and Out
Gr8Conf 2016 - GORM Inside and Out
 
batou lightning talk @ PyConDE 2017
batou   lightning talk @ PyConDE 2017batou   lightning talk @ PyConDE 2017
batou lightning talk @ PyConDE 2017
 
The Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with PuppetThe Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with Puppet
 
Slawomir effective git for distributed teams
Slawomir effective git for distributed teamsSlawomir effective git for distributed teams
Slawomir effective git for distributed teams
 
Secure your environment by automation
Secure your environment by automationSecure your environment by automation
Secure your environment by automation
 

Semelhante a 5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - October 2017

MongoDB Administration 20110922
MongoDB Administration 20110922MongoDB Administration 20110922
MongoDB Administration 20110922
radiocats
 
Intro to Big Data and NoSQL
Intro to Big Data and NoSQLIntro to Big Data and NoSQL
Intro to Big Data and NoSQL
Don Demcsak
 

Semelhante a 5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - October 2017 (20)

Conceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónConceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producción
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
MariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLMariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQL
 
Apache Geode Meetup, London
Apache Geode Meetup, LondonApache Geode Meetup, London
Apache Geode Meetup, London
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStack
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEAN
 
Service stack all the things
Service stack all the thingsService stack all the things
Service stack all the things
 
Mongo db admin_20110329
Mongo db admin_20110329Mongo db admin_20110329
Mongo db admin_20110329
 
Digging deeper into service stack
Digging deeper into service stackDigging deeper into service stack
Digging deeper into service stack
 
MongoDB Administration 20110922
MongoDB Administration 20110922MongoDB Administration 20110922
MongoDB Administration 20110922
 
Intro to Big Data and NoSQL
Intro to Big Data and NoSQLIntro to Big Data and NoSQL
Intro to Big Data and NoSQL
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorial
 
The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015
 
NoSQL for SQL Server Developers using Couchbase
NoSQL for SQL Server Developers using CouchbaseNoSQL for SQL Server Developers using Couchbase
NoSQL for SQL Server Developers using Couchbase
 
Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
 
(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...
 
Introduction to Hive and HCatalog
Introduction to Hive and HCatalogIntroduction to Hive and HCatalog
Introduction to Hive and HCatalog
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 

Mais de Matthew Groves

Mais de Matthew Groves (20)

CREAM - That Conference Austin - January 2024.pptx
CREAM - That Conference Austin - January 2024.pptxCREAM - That Conference Austin - January 2024.pptx
CREAM - That Conference Austin - January 2024.pptx
 
FluentMigrator - Dayton .NET - July 2023
FluentMigrator - Dayton .NET - July 2023FluentMigrator - Dayton .NET - July 2023
FluentMigrator - Dayton .NET - July 2023
 
Cache Rules Everything Around Me - DevIntersection - December 2022
Cache Rules Everything Around Me - DevIntersection - December 2022Cache Rules Everything Around Me - DevIntersection - December 2022
Cache Rules Everything Around Me - DevIntersection - December 2022
 
Putting the SQL Back in NoSQL - October 2022 - All Things Open
Putting the SQL Back in NoSQL - October 2022 - All Things OpenPutting the SQL Back in NoSQL - October 2022 - All Things Open
Putting the SQL Back in NoSQL - October 2022 - All Things Open
 
Cache Rules Everything Around Me - Momentum - October 2022.pptx
Cache Rules Everything Around Me - Momentum - October 2022.pptxCache Rules Everything Around Me - Momentum - October 2022.pptx
Cache Rules Everything Around Me - Momentum - October 2022.pptx
 
Don't Drop ACID (July 2021)
Don't Drop ACID (July 2021)Don't Drop ACID (July 2021)
Don't Drop ACID (July 2021)
 
Don't Drop ACID - Data Love - April 2021
Don't Drop ACID - Data Love - April 2021Don't Drop ACID - Data Love - April 2021
Don't Drop ACID - Data Love - April 2021
 
Demystifying NoSQL - All Things Open - October 2020
Demystifying NoSQL - All Things Open - October 2020Demystifying NoSQL - All Things Open - October 2020
Demystifying NoSQL - All Things Open - October 2020
 
Autonomous Microservices - Manning - July 2020
Autonomous Microservices - Manning - July 2020Autonomous Microservices - Manning - July 2020
Autonomous Microservices - Manning - July 2020
 
CONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQLCONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQL
 
JSON Data Modeling - GDG Indy - April 2020
JSON Data Modeling - GDG Indy - April 2020JSON Data Modeling - GDG Indy - April 2020
JSON Data Modeling - GDG Indy - April 2020
 
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...
 
Intro to SQL++ - Detroit Tech Watch - June 2019
Intro to SQL++ - Detroit Tech Watch - June 2019Intro to SQL++ - Detroit Tech Watch - June 2019
Intro to SQL++ - Detroit Tech Watch - June 2019
 
Autonomous Microservices - CodeMash - January 2019
Autonomous Microservices - CodeMash - January 2019Autonomous Microservices - CodeMash - January 2019
Autonomous Microservices - CodeMash - January 2019
 
JSON Data Modeling - July 2018 - Tulsa Techfest
JSON Data Modeling - July 2018 - Tulsa TechfestJSON Data Modeling - July 2018 - Tulsa Techfest
JSON Data Modeling - July 2018 - Tulsa Techfest
 
Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017
 
I Have a NoSQL toaster - DC - August 2017
I Have a NoSQL toaster - DC - August 2017I Have a NoSQL toaster - DC - August 2017
I Have a NoSQL toaster - DC - August 2017
 
Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017
 
I Have a NoSQL Toaster - Troy .NET User Group - July 2017
I Have a NoSQL Toaster - Troy .NET User Group - July 2017I Have a NoSQL Toaster - Troy .NET User Group - July 2017
I Have a NoSQL Toaster - Troy .NET User Group - July 2017
 
Querying NoSQL with SQL - MIGANG - July 2017
Querying NoSQL with SQL - MIGANG - July 2017Querying NoSQL with SQL - MIGANG - July 2017
Querying NoSQL with SQL - MIGANG - July 2017
 

Último

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Último (20)

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 

5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - October 2017

Notas do Editor

  1. Not going to get too technical today This is just an overview The goal is to show you what's out there, give you an idea of what might appeal to you This is just the start of your journey
  2. This picture I didn't draw, it was drawn by Nate Lovette Anything I drew, you can tell because it won't look nearly as good as this
  3. NoSQL is a big umbrella term that encompasses a lot of databases These are 4 of the most popular models, but they aren't the only ones You can see some of these databases are in multiple categories, That's because they support multiple models
  4. I'm going to be focusing mainly on document databases today They are similar to key/value databases: lot of key-based operations Often a server-side querying mechanism that takes advantages of data being in a known format Like JSON, XML, etc So this is why you hear the term "NoSQL", because there is no SQL involved in interacting with data
  5. Think of a document database at the most simple model Of a key/value store, where the value is in a known format You write code where you start with a key, and you ask the database to return the document That corresponds to that key. And the same with creating/updating
  6. Why were these databases created in the first place? Flexibility: schemas are hard to manage Availability: if a machine does down (on purpose or not), we still want to be able to serve customers Speed: the faster we can get the data to a screen, the more likely they are to purchase, less likely to give up, etc Scaling: demand fluctuates, and we need to deal with peaks and valleys When you start from scratch saying 'we need a database that can do X,Y,Z' one of the tradeoffs That allow for all these things is throwing tables and schemas and SQL out the door There's a lot of joking about "web scale" and "/dev/null" and so on. But yes these databases Do need to actually store and be able to retrieve data reliably. Those are table stakes, if you ask me. Sometimes you need tables, constraints, enforced schemas; but you might be surprised at how often you don't. That's a quick rundown of the why/how/history of NoSQL. Hopefully you're in the mindset tonight of "Okay, it might be a useful tool to have in my box. What software should I be looking at specifically? What are the next steps?"
  7. In this session, I'll be focusing on 5 databases that fit these basic criteria 1 – document databases only, I'm narrowing the focus a bit 2- runs on Microsoft; this session is meant for windows / .net / Microsoft / azure developers 3 – popular by some measure, this is pretty arbitrary
  8. Let's talk about popularity for a second Db-engines is a site that puts out this monthly ranking It measures a databases popularity by: search engine results, google trends, stack overflow, jobs, linkedin, twitter Mongodb is the most popular nosql database by far Some notable dbs I'm not covering as Cassandra, which is a columnar database, not document I'm omitted Redis, because it's a key/value store, and it's also more of an in-memory cache than it is a database I've also omitted elasticsearch, solr, which I don't really think of as databases, but I guess they are
  9. I'm omitting DynamoDB because it's AWS exclusive It's not unheard of for a .NET app to use dynamodb, but it's a bit out of the ordinary I'm omitting memcached… explain origins of couchbase via memcached and couchdb Maybe also mention Cloudant
  10. I'm omitting marklogic, which is a commercial nosql database Omitting Riak and Hazelcast, because they are key/value store I'm not very familiar with Hazelcast, but Riak doesn't run on Windows either CosmosDb is all the way down at #37 (it was 45 the last time I presented) It recently went through a name change, which isn't going to help this score in the long run. I think it's pretty interesting, but it is azure exclusive.
  11. Starting to get low on the list RethinkDB is notable; the company went out of business but they did open source RethinkDB. It had a bit of a following, so who knows what's in store for that in the long run. Cloudant is based on CouchDb and BigCouch OrientDb is written in Java, it's multi-model including graph and document Realm, Firebase are mobile focused. I'm not going to focus on mobile too much, but Couchbase has a mobile implementation too; and CouchDb has a "reimplementation" in JavaScript called PouchDb, which is geared toward mobile development. RavenDB is pretty low on the list, even though it's been around for quite some time. I wouldn't normally bring it up in a discussion of "popularity", except that I've noticed anecdotally that .NET devs seem to be a lot more aware of it than the rest of the world (for obvious reasons) So I'm doing a bit of cherry picking here
  12. So these are the 5 that I've picked for this evaluation I'm definitely biased towards my employer
  13. This is what I want to do with this session
  14. But I'm going to try as be fair as possible and say as many nice things about each of these that I can If you want to find mean things that people have said, there is no shortage of that on the internet Each of these tools have been created by smart people and are used by great companies to do great things There is no perfect software. Every database is a sum total of flaws, tradeoffs, decisions, and preferences If you have a question like "why should I use couchbase instead of mongo", I can begrudgingly answer in the general, but in reality the answer depends on so many factors I'm not going to cover these tools in details. If you have a question like "what's the best way to index a date field in couchbase to optimize for time series data", this is not the right session. But, I'm happy to talk about anything after the session is over.
  15. Ward Cunningham's Law "the best way to get the right answer on the internet is not to ask a question; ... it's to post the wrong answer." No way am I an expert in any of these databases, even couchbase
  16. First criteria is querying All these databases are typically going to provide ways to get or mutate one document at a time But what else do they have beyond that for querying data? The more options the better? Or too many options? Match the option with the use case?
  17. NoSQL databases were created in a post-web world Where huge amounts of people are using a web site or a mobile app And thus one of the things these databases provide is scalability How well do they scale, how difficult is it to scale? How many steps and decisions are involved? Peer-to-peer is easiest master-slave and replica sets being more difficult
  18. This may not be a big deal to you, if the database otherwise does what you want it to and does it well We are tech people, we can tinker for a while But I think making software as easy as possible to get started makes our lives much better So I'm going to call out features that I think make it a more pleasant experience "Make common things easy, rare things possible" Keep in the mind the tradeoff here, you may be sacrificing some level of tweaking for ease of use And you may be sacrificing security sometimes if you aren't paying close enough attention
  19. Many nosql databases make a lot of claims about speed I'm wary of benchmarks So I'm going to focus on architectural decisions that affect speed It's generally bigger, complex data where speed becomes a problem When in doubt do your own benchmarks
  20. Since we're focusing Microsoft, obviously this is going to lean towards windows and azure But it's nice to know what other options are out there, in case you need to go In a different direction, or use different infrastructure for whatever reason
  21. Pure technology is not the only thing that matters "The biggest challenges in adopting #NoSQL are usually human rather than technical" - @JudahGabriel Who is doing the support? What are the licenses? Is it open source, does it have a big community? Responsive community? Is it going to be around a year from now? Are they innovating, adding new features I want? Features I may want in the future?
  22. I do not like this query syntax, It's limited in terms of joins, unions, etc Text search is present, but it's limited compared to elasticsearch, etc .NET SDK follows .NET idioms pretty well, there's a bit of weirdness having to convert objects to BsonDocuments, but it's not that bad Linq provider built into Mongo .NET SDK, but limited due to the underlying query capabilities
  23. Scaling is possible, you set up multiple types of nodes, configure sharding Replication is a master/slave setup, meaning that a single member of the cluster is the master and is the only one allowed to modify data And that includes between data centers
  24. Decision fatigue Insecure by default: anonymous admin access
  25. Indexing is important for querying Mongo has an in-memory option and an on-disk option So that's a basic tradeoff you can make
  26. Windows / Mac / Linux AWS / Azure / Google support (it is VMs) Docker DBaaS – lot of managed partners like Mongolab, MongoSoup, etc MongoDB Atlas is mongo's own managed DBaaS
  27. Licensing! It's AGPL, and some enterprises don't like that. In fact, they list it as a possible weakness/threat in their S-1
  28. CouchDB
  29. Mongo-inspired query syntax, based on Cloudant Query this is in version 2.x though MapReduce which is great for performance, but it is javascript and doesn't accommodate adhoc queries Mango is "mongo inspired" I don't know if it's mongo compatible or meant to be mongo compatible
  30. You can setup a cluster relatively easy But you need to run a proxy in front of it, like HAProxy (couchdb recommends) Sharding you need to configure the number of shards per database Replication and conflict management is something that couchdb is good at When removing a node from a cluster you have to make sure to move shards away So there is some manual work involved in managing scale
  31. Futon is web console in 1.x Fauxton is web console in 2.x Insecure by default: anonymous admin access
  32. CouchDb's design assumes that caching will be handled by the operating system, by the browser, by a proxy you setup Not by couchdb itself
  33. Windows / Mac / Linux AWS / Azure / Google support (VMs) Docker (there isn't an official 2.x on docker hub yet) DBaaS – Cloudant
  34. Cloudant is compatible Couchbase Lite and Sync Gateway are "compatible" with couchdb (version 2 of Couchbase Lite will probably change that) But interop between them is not supported
  35. I really like N1QL, it's kinda what attracted me to couchbase in the first place I already know how to write SQL, so I can apply that a nosql database Linq2Couchbase is a linq provider that generates N1QL (it's not officially supported yet)
  36. Multi-master
  37. Security: with 4.x it was *mostly* secure by default You need to setup a password, but you can create buckets without passwords With 5.x it is completely secure by default
  38. Explain memcached and couchdb
  39. Windows / Mac / Linux AWS / Azure / Google support (it is VMs) Docker no DBaaS, managed database (yet)
  40. Cosmos DB
  41. There is a SQL language for CosmosDB but it is very limited No intra-document joins, no GROUP BY, no insert/update/delete Cosmos has sprocs, triggers, udfs, but you have to write them in ECMAScript 2015 (JavaScript)
  42. Azure handles the scaling for you You set request units per second or per minute and cosmos db will scale to handle that Cosmosdb has 5 consistency options, so you can explicitly trade off between strong consistency and eventual consistency, "guarantee" is Microsoft's wording
  43. "guarantee" is Microsoft's wording
  44. This is azure only You can run the emulator on windows, the emulator is not meant for production But I'm sure some joker is going to try it The emulator is also available in docker so hypothetically you could deploy that anywhere
  45. Microsoft support only, of course This is not open source (which used to be implied with Microsoft, but I feel like I have to say that now)
  46. In Raven 3.x each database is an independent entity, you can setup replication and cooperation, but Oren: "There is a lot of work that you need to do on all the nodes" which "can grow very tedious" Oren on 4.x: "You can bring in additional nodes without having to update any configuration" 4.X is in release candidate now I'm not convinced it's the right database for large scales, but it has some interesting functionality
  47. Ravendb is on docker, but they also publish a handy Powershell script For getting up and running with docker Which I think is a nice usability touch Secure by default, but you can turn on anonymous admin access
  48. I think the auto-indexing feature is really intriguing Basically, it will create indexes as you need them And keep them around until they aren't used anymore Sounds great in theory, I've heard in practice that it doesn't quite work out as well as it sounds And you still end up needing to create indexes declaratively I've not seen any bold claims or benchmarks showing raven blowing everyone away in speed Mostly they claim to be a "safe by default" database, so maybe that's the tradeoff they're making They've announced performance improvements in 4.x Raven is built on .NET, some people will claim this hinders performance Just as people will claim databases built on the JVM There may be some truth to this, databases often use low-level operations .NET Core? "RavenDB High Performance " by Brian Ritchie
  49. Raven 4.x runs on Linux Raven can run on aws/azure in VMs Raven run on windows and 4.x runs in docker RavenHQ is a hosted ravendb provider
  50. It's agpl Bizspark discounts
  51. Marten is not a database it's a .NET library that stands between your application and postgresql Postgresql has some really good json support Marten leverages that to treat postgresql as a document database
  52. Why just one?
  53. Mobile? look at Couchbase, Sync Gateway, Couchbase Mobile, and maybe CouchDb Querying? Look at Couchbase, CosmosDb, Raven, Marten Cost? Mongo, CouchDb Ops/DevOps proficient? Mongo, CouchDb, Raven Ops/DevOps deficient? CosmosDb, Couchbase, Marten, MongoDb Atlas Hobby? Mongo, CouchDb, Couchbase Resume? Go with the popular one. Speed? Maybe not Raven Transactions? Raven, Marten Security? Be careful with Mongo, CouchDb, not because they are insecure, but because they are insecure by default Integrations? This is huge. Databases generally don't just sit behind one app. They need to integrate with other software. Maybe stick to relational, unless a connector exists.
  54. We've had Jeremy Miller to talk about Marten, I was a guest host we've had Oren talk about Raven, I was a guest host we've had Kirin to talk about DocumentDb (which is now CosmosDb), I was traveling and couldn't guest host We've had Jonathan Casarrubias to talk about the MEAN stack with mongo)
  55. Open source apache license for community edition, enterprise edition on a faster release schedule, some advanced features, and support license. Couchbase is software you can run in the cloud on a VM or on your own data center. CosmosDb is a manage cloud service, but there is a emulator you can run locally.
  56. If you want to play with N1QL (SQL for JSON) you don't even have to install Couchbase first You can do it in browser CosmosDb has one of these too
  57. Main points of diff: Architecture & Features Architecture Memory first: integrated cache, you don't need to put redis on top of couchbase Master-master: easier scaling, better scaling Auto-sharding: we call vBuckets, you don't have to come up with a sharding scheme, it's done by crc32 Features N1QL: SQL, mongo has a more limited query language and it's not SQL-like Full Text Search: Using the bleve search engine, language aware FTS capabilities built in Mobile & sync: Mongo has nothing like the offline-first and sync capabilities couchbase offers Mongo DOES have a DbaaS cloud provider
  58. Everything I've shown you today is available in Community edition The only N1QL feature I can think of not in Community is INFER The Enterprise features you probably don't need unless you are Enterprise developer.
  59. Not yet. We've been talking about it at least as long as I've been with Couchbase. It's partly a technical problem, may need additional features for multi-tenant. It's partly (mostly) a business problem. Would this be worth it? Couchbase IS in the Azure and AWS marketplaces, and there are some wizards to make config easy, but it runs on your VMs. There is no vendor lock in. You can deploy CB to Azure, AWS, GCP, or all three