5 Popular Choices for NoSQL on a Microsoft PlatformMatthew Groves @mgroves
2
AGENDA01/ What is NoSQL?
02/ Popular NoSQL Choices
03/ Evaluation Criteria
04/ Details
05/ The End
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
Thank you
©2017 Couchbase. All rights reserved. 6
9
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 Managed Cloud Service?
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 (XDCR TLS, 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.