azure cosmos db - nosql in the microsoft cloud
TRANSCRIPT
![Page 1: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/1.jpg)
Azure Cosmos DB
The Great NoSQL Balancing Act in the Microsoft Cloud
{
“speaker”: “Josh Lane”,
“title”: “Azure Content Lead”,
“company”: “cloudacademy.com”,
“twitter”: “@jplane”
}
![Page 2: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/2.jpg)
All Technology Choice Is Compromise
![Page 3: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/3.jpg)
Oh, what tangled webs
we weave…
Scale Up
Scale Out
Stored Procedures
Stored Procedures
Caching
![Page 4: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/4.jpg)
Is Your Database An Unquestioned Assumption?
![Page 5: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/5.jpg)
How About This Instead?
Acknowledge
Choice is good… but all choices represent some compromise
Choose!
Make a deliberate choice
Goals
Meet requirements, but also minimize compromises
![Page 6: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/6.jpg)
Purpose-built to solve real-world challenges of data at scale
2010 – “Project Florence”
Elastic, global scale of throughput and storage
Predictable, low-latency reads and writesResource-governed architecture
Highly available and SLA-backed
Minimize/eliminate infrastructure burdens
Developer-friendly… multiple data models, APIs, consistency options
Azure Cosmos DB
![Page 7: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/7.jpg)
Guitar solo
![Page 8: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/8.jpg)
Low-latencyGeo-scale
Familiar and approachable
Flexible and evolvingCost-efficient
The Great Balancing Act
![Page 9: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/9.jpg)
![Page 10: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/10.jpg)
Document-based API
![Page 11: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/11.jpg)
MongoDB compatibility
![Page 12: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/12.jpg)
Azure Table Storage compatibility
![Page 13: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/13.jpg)
Graph-based API
![Page 14: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/14.jpg)
Choose-Your-Own Data Consistency Model
![Page 15: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/15.jpg)
Availability
Single-click replication into any/all of 38+ datacenters
FailoverAutomated and prioritizedManual (for DR testing, “follow the clock”, etc.)
Multiple replicas within each configured region
Logical or physical API endpointsLogical – transparent multi-homingPhysical – prioritized control over connectivity
Automated backups
![Page 16: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/16.jpg)
Perf and Scale
Low latency reads (10 ms) and writes (15 ms)
SLA-backed
Topology-agnostic
Provisioned, reserved throughput model
Request Units per second (or minute)
You can change this as needed!
Transparent partitioning
Single write replica, multi read replicas
![Page 17: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/17.jpg)
Drum solo
![Page 18: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/18.jpg)
Areas for Improvement
Pricing model
“Something something great power somethinggreat responsibility…”
Migration quirks
Triggers are opt-in
SQL dialect is a subset
API support must be declared up-front
Partitions are “transparent”, not transparent
Change feed fidelity
Portal tooling is… v1
![Page 19: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/19.jpg)
Designed for Happiness
ACID transactions (within a partition)
Automated and configurable indexing
Change feed
Geospatial data types
Local emulator
JavaScript sprocs, triggers, UDFs
Default encryption at rest + in transit
Configurable firewall
Configurable TTL
Azure Function binding
ODBC driver
LINQ (.NET)
![Page 20: Azure Cosmos DB - NoSQL In the Microsoft Cloud](https://reader033.vdocuments.site/reader033/viewer/2022051301/5a680c967f8b9a7e348b4eeb/html5/thumbnails/20.jpg)
Baseless Speculation on
the Future
• More and richer query APIs
• More and better Azure ecosystem integration
• Architectural building blocks• CQRS• Event sourcing• Stateful services
• More runtime integration• .NET Core• Azure Functions runtime
• Pricing innovation• Spot market• Secondary market• ML-based resource governance
• Convergence with SQL Database