azure cosmos db - nosql in the microsoft cloud

21
Azure Cosmos DB The Great NoSQL Balancing Act in the Microsoft Cloud { “speaker”: “Josh Lane”, “title”: “Azure Content Lead”, “company”: “cloudacademy.com”, “twitter”: “@jplane” }

Upload: josh-lane

Post on 24-Jan-2018

426 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Azure Cosmos DB - NoSQL In the Microsoft Cloud

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

All Technology Choice Is Compromise

Page 3: Azure Cosmos DB - NoSQL In the Microsoft Cloud

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

Is Your Database An Unquestioned Assumption?

Page 5: Azure Cosmos DB - NoSQL In the Microsoft Cloud

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

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

Guitar solo

Page 8: Azure Cosmos DB - NoSQL In the Microsoft Cloud

Low-latencyGeo-scale

Familiar and approachable

Flexible and evolvingCost-efficient

The Great Balancing Act

Page 9: Azure Cosmos DB - NoSQL In the Microsoft Cloud
Page 10: Azure Cosmos DB - NoSQL In the Microsoft Cloud

Document-based API

Page 11: Azure Cosmos DB - NoSQL In the Microsoft Cloud

MongoDB compatibility

Page 12: Azure Cosmos DB - NoSQL In the Microsoft Cloud

Azure Table Storage compatibility

Page 13: Azure Cosmos DB - NoSQL In the Microsoft Cloud

Graph-based API

Page 14: Azure Cosmos DB - NoSQL In the Microsoft Cloud

Choose-Your-Own Data Consistency Model

Page 15: Azure Cosmos DB - NoSQL In the Microsoft Cloud

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

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

Drum solo

Page 18: Azure Cosmos DB - NoSQL In the Microsoft Cloud

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

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

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