Azure Cosmos DB - NoSQL In the Microsoft Cloud

Preview:

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

Thanks!

josh.lane@cloudacademy.com

@jplane

Recommended