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 writes
Resource-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-latency
Geo-scale
Familiar and approachable
Flexible and evolving
Cost-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
Failover
Automated and prioritized
Manual (for DR testing, “follow the clock”, etc.)
Multiple replicas within each configured region
Logical or physical API endpoints
Logical – transparent multi-homing
Physical – 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 something
great 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

Azure Cosmos DB - NoSQL In the Microsoft Cloud

  • 1.
    Azure Cosmos DB TheGreat NoSQL Balancing Act in the Microsoft Cloud { “speaker”: “Josh Lane”, “title”: “Azure Content Lead”, “company”: “cloudacademy.com”, “twitter”: “@jplane” }
  • 2.
  • 3.
    Oh, what tangled webs weweave… Scale Up Scale Out Stored Procedures Stored Procedures Caching
  • 4.
    Is Your DatabaseAn Unquestioned Assumption?
  • 5.
    How About ThisInstead? Acknowledge Choice is good… but all choices represent some compromise Choose! Make a deliberate choice Goals Meet requirements, but also minimize compromises
  • 6.
    Purpose-built to solvereal-world challenges of data at scale 2010 – “Project Florence” Elastic, global scale of throughput and storage Predictable, low-latency reads and writes Resource-governed architecture Highly available and SLA-backed Minimize/eliminate infrastructure burdens Developer-friendly… multiple data models, APIs, consistency options Azure Cosmos DB
  • 7.
  • 8.
    Low-latency Geo-scale Familiar and approachable Flexibleand evolving Cost-efficient The Great Balancing Act
  • 10.
  • 11.
  • 12.
    Azure Table Storagecompatibility
  • 13.
  • 14.
  • 15.
    Availability Single-click replication intoany/all of 38+ datacenters Failover Automated and prioritized Manual (for DR testing, “follow the clock”, etc.) Multiple replicas within each configured region Logical or physical API endpoints Logical – transparent multi-homing Physical – prioritized control over connectivity Automated backups
  • 16.
    Perf and Scale Lowlatency 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
  • 17.
  • 18.
    Areas for Improvement Pricingmodel “Something something great power something great 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 
  • 19.
    Designed for Happiness ACIDtransactions (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)
  • 20.
    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
  • 21.

Editor's Notes

  • #3 Let’s begin with this basic assertion… probably not controversial. Let’s also agree that while this may be true, the degree of compromise can differ widely, between competing options.
  • #4 Consider the range of data-oriented choices we face on a typical web project…
  • #5 Consider the things we do in the name of a better user experience…
  • #6 More broadly, beyond feature details… are we simply falling into our choice of database implicitly? Or are we making an explicit decision based on project and team fit?
  • #10 In this vein, and with this framework of thought, that I introduce Azure Cosmos DB…
  • #12 I like to refer to the work done by the Cosmos DB team as “the great balancing act”, since Cosmos DB is an ever-evolving service (will adapt and grow in capability over time) DocDB customers became Cosmos DB customers overnite
  • #13 Further evidence of the deliberate thought and effort made by the Cosmos DB team Not merely making data available at broad scale, but making guaranteed, SLA-backed access to that data available at broad and configurable scale.
  • #19 Choose on an account- or read-operation basis
  • #24 Great news… virtually all of this is value-add above the core service offering, and can be improved upon over time Pricing model: RU/m is a recent addition