Upload
josh-lane
View
427
Download
0
Embed Size (px)
Citation preview
Azure Cosmos DB
The Great NoSQL Balancing Act in the Microsoft Cloud
{
“speaker”: “Josh Lane”,
“title”: “Azure Content Lead”,
“company”: “cloudacademy.com”,
“twitter”: “@jplane”
}
All Technology Choice Is Compromise
Oh, what tangled webs
we weave…
Scale Up
Scale Out
Stored Procedures
Stored Procedures
Caching
Is Your Database An Unquestioned Assumption?
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
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
Guitar solo
Low-latencyGeo-scale
Familiar and approachable
Flexible and evolvingCost-efficient
The Great Balancing Act
Document-based API
MongoDB compatibility
Azure Table Storage compatibility
Graph-based API
Choose-Your-Own Data Consistency Model
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
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
Drum solo
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
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)
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