SlideShare ist ein Scribd-Unternehmen logo
Robin Sedlaczek | CTO Fairmas GmbH | .NET User Group Berlin
RobinSedlaczek Robin.Sedlaczek@live.de RobinSedlaczek.com
RobinSedlaczek
RobinSedlaczek.com
robin.sedlaczek@live.de
 Community Leader
 CTO der GmbH Berlin
 Sprecher | Autor | Blogger
[ Entwickler.de, Heise, DotNetPro, Informatik aktuell, BASTA!, .NET Summit,
ParallelCon, ADC, GUI & DESIGN, DevSpace, Spartakiade...]
 Open Source-Entwickler
[ SharpGL, Roslyn, FxCopAnalyzers, Force Feedback Programming ]
.NET User Group Berlin-Brandenburg
Fragen?
Jederzeit, immer gerne & kostenlos.
Und wahrscheinlich nicht umsonst!
Robin Sedlaczek
Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Microsoft?
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
AZURE COSMOS DB
Dr. Leslie Lamport
 renomierter Wissenschaftler
 Preisträger des Turing Awards
 hatte Einfluß auf viele große
verteilte Systeme
 maßgeblich an Entwicklung
von Cosmos DB beteiligt
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
AZURE COSMOS DB
 global verteiltes Datenbanksystem
 Multi-Modell, Multi-API
 Horizontal partitioniert
 Durchsatz & Speicher über
geographische Regionen elastisch
skalierbarer
 dabei garantierte
Verfügbarkeit
 5 Konsistenzmodelle verfügbar
 vollständig automatische
Indizierung
Infoworld:
Technology of the Year Award 2017
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
AZURE COSMOS DB
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
CAP-Theorem
Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
CAP-THEOREM
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
CAP-THEOREM
Consistency
PartitioningAvailability
Immer erreichbar,
auch bei Netzwerkpartitionierung.
Eventuell inkonsistent.
 aka Brewer‘s Theorem
 für verteiltes DBS max. 2
Garantien gleichzeitig möglich
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
CAP-THEOREM
 Durchsatz: Konfiguration innerhalb von 5s verfügbar
 Latenz: garantiert niedrig (<10ms) in 99% aller Fälle
 Verfügbarkeit: garantiert hoch, bei 99,99%
 Konsistenz: 5 wohl-definierte Level wählbar
 SLAs für alle 4 Dimensionen1
Microsoft’s Antwort:
1 https://azure.microsoft.com/de-de/support/legal/sla/cosmos-db/v1_1/
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
Multi-Modell, Multi-API
Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
MULTI-MODELL, MULTI-API
Atom: basiert auf wenigen primitiven Typen:
string, bool, number...
Record: Struktur bestehend aus Atomen
Sequence: Array bestehend aus Atomen,
Records, Sequenzen
Atom-Record-Sequence (ARS)
Wie funktioniert der
Cosmos DB-Kern eigentlich?
 Kern-Datenmodel basiert auf ARS
 Daten kommen nativ in JSON
 DB-Engine kann andere
Datenmodelle effektiv auf ARS
projezieren  Multi-Modell
 auf Kern-Datenmodell kann nativ
zugegriffen werden
 durch nativen Zugriff können
andere APIs für Access & Query
implementiert werden  Multi-API
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
MULTI-MODELL, MULTI-API
API-Projektionen
 5 DBMS-APIs zur Auswahl beim Erzeugen eines Cosmos DB Accounts
 Datenmodell/APIs nach Außen, Projektion auf ARS nach Innen
DB der vielen Gesichter
 SQL
 DocumentDB
 MongoDB
 Azure Table Storage
 Gremlin Graph Query API
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
MULTI-MODELL, MULTI-API
Ressourcenmodell
 Container & Items als
spezifische Ressource
projeziert
 basierend auf API-
Selektion
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
Partitionierung, Distribution & Latenz
Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
PARTITIONIERUNG
 Automatische Partitionierung
der Daten basierend auf
benutzerdefinierten Key
 Partition ist kleinste Einheit als
Grundlage für Skalierung
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
PARTITIONIERUNG & REPLIKATION
 Lokale Distribution durch
Partitionierung
 Globale Distribution durch
Replikation der Partitionen in
andere Regionen (Knoten)
 Skaliert Nutzer Durchsatz und
Speicher, beginnt transparentes
Partitionsmanagement
Resource Partition Management ist vollständig
automatisiert und wurde jahrelang hoch
optimiert durch Microsoft in Cosmos DB.
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
GLOBALE DISTRIBUTION
 Cosmos DB in allen Azure-Regionen
verfügbar (30+)
 Distribution in weitere Regionen
 per Mausklick in Azure Protal
 oder programmatisch via API
 Unterscheidung Read-/Write-Regionen
 vollständig automatisiert
 jederzeit änderbar
 garantierte Betriebsaufnahme in <60 min.
 Failover-Priorisierung der Regionen
konfigurierbar
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
LATENZEN
 Latenz-Garantie für 99% aller Fälle
 per Service Level Agreements (SLAs1)
 End-to-End
 1 KB, gleiche Region  read <10ms, indexed write <15ms
 Verfügbarkeit immer von langsamer Datenbankoperation unterscheidbar
 definierte obere Grenze
 Timeout-Error wenn Operation länger dauert als Grenze
 Timeouts werden gegen Verfügbarkeits-SLA gezählt
1 https://azure.microsoft.com/de-de/support/legal/sla/cosmos-db/v1_1/
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
Konsistenzmodelle
Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
KONSISTENZMODELLE
 5 Konsistenzmodelle - von stark bis eventuell konsistent
 Konsistenzmodell auswählbar pro Cosmos DB Account
 kann programmatisch für Lesezugriffe überschrieben werden
 Per Service Level Agreements (SLAs1) garantiert
1 https://azure.microsoft.com/de-de/support/legal/sla/cosmos-db/v1_1/
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
KONSISTENZMODELLE
Strong
 Nur für Cosmos DB Account mit einer Region
 linearisierbare1 Garantie
 Reads sehen immer neuesten Write
 nur bestätigte und vollständige Writes
 Kosten für Read
 höher als für Session und Eventual Consistency
 gleich wie für Bounded Staleness
1 https://aphyr.com/posts/313-strong-consistency-models
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
KONSISTENZMODELLE
Bounded-staleness
 Reads max. k Versionen oder t Zeitintervalle hinter Write
 k und t konfigurierbar
 empfohlen in globalen Szenarien
 für starke Konsistenz
 99,99% Verfügbarkeit
 niedirge Latenzen
 Kosten für Read
 höher als für Session und Eventual Consistency
 gleich wie für Strong
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
KONSISTENZMODELLE
Session
 Konsistenz beschränkt auf Client-Session
 ideal für Benutzer- und Gerätesessions
 RYW  Read your own Writes
 monotonische Reads und Writes
 vorhersagbare Konsistenz pro Session bei niedriger Latenz für
Writes und Reads
 Kosten für Read
 höher als für Eventual Consistency
 niedriger als für Strong und Bounded-staleness
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
KONSISTENZMODELLE
Consistent Prefix
 Replikas in einer Gruppe konvergieren eventuell, wenn kein
weiterer Write
 Garantie
 Reads sehen Writes immer in richtiger Reihenfolge
 A, AB, ABC, niemals CBA etc.
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
KONSISTENZMODELLE
Eventual
 Replikas in einer Gruppe konvergieren eventuell, wenn kein
weiterer Write
 gelieferte Werte können älter sein, als die zuvor
 niedrigste Latenz für Reads und Writes
 Kosten für Read
 niedrigste für alle Konsistenzlevel
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
Legen wir endlich los:
Demo
Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
DEMO
 Azure Portal (Cosmos DB verwalten)
 Demo Table Storage
 Demo Gremlin Graph
 Visual Studio
 Demo native APIs
 Demo APIs aus SDKs/NuGets (CRUD)
 Demo Data Migration Tool (Data Load & Migration)
 Demo Offline-Entwicklung mit Emulator
 Serverless mit Functions
 Demo Performance-Messung
 Auswertung Metriken Azure Portal
Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Microsoft?
RobinSedlaczek Robin.Sedlaczek@live.de RobinSedlaczek.com

Weitere ähnliche Inhalte

PPTX
Developer Week 2019: .NET, .NET Core und .NET Standard - Ein Richtungskompass
PPTX
Developer Week 2019: Identity & Access Management in der Realitaet
PPTX
Developer Week 2019: Architekturen für .NET Core-Anwendungen
PPTX
.NET Core Architecture (UI)
PPTX
Architekturen für .NET Core-Anwendungen
PPTX
Azure Hybrid Connections
PPTX
Architectures for .Net Core Applications
PPTX
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Developer Week 2019: .NET, .NET Core und .NET Standard - Ein Richtungskompass
Developer Week 2019: Identity & Access Management in der Realitaet
Developer Week 2019: Architekturen für .NET Core-Anwendungen
.NET Core Architecture (UI)
Architekturen für .NET Core-Anwendungen
Azure Hybrid Connections
Architectures for .Net Core Applications
Magdeburger Developer Days 2018 - Warum warten auf die IDE?

Mehr von Robin Sedlaczek (20)

PPTX
Magdeburger Developer Days 2018 - Das perfekte Anwendungsmodell
PPTX
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
PPTX
GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!
PPTX
DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...
PPTX
BASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot Framework
PPTX
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
PPTX
ADC Core 2017 - Warum warten auf die IDE?
PPTX
DNUGBB 2017 - .Net, .Net Core, .Net Standard
PPTX
.NET Summit 2017 - .NET, .NET Core, .NET Standard
PPTX
BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...
PPTX
BASTA! Spring 2017 - C# Script in Action
PPTX
#DNUG Berlin-Brandenburg - Conversational User Interfaces (CUIs) und das Micr...
PPTX
#ADC 2016 - C# Script in Action
PPTX
#ADC 2016 - Conversational User Interfaces
PPTX
#ADC 2016 - Roslyn & Visual Studio Extensions
PPTX
BASTA! 2016 - Roslyn & Visual Studio Extensions
PPTX
Dream-Team: Roslyn & Visual Studio Extensions
PPTX
Roslyn - Ein offener Compiler. Ja, und nun?
PPTX
Thread-safe .NET durch Immutables
PPTX
BASTA! Spring: Roslyn - Refactorings, Analyzer und Code Fixes selbst gebaut
Magdeburger Developer Days 2018 - Das perfekte Anwendungsmodell
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!
DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...
BASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot Framework
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
ADC Core 2017 - Warum warten auf die IDE?
DNUGBB 2017 - .Net, .Net Core, .Net Standard
.NET Summit 2017 - .NET, .NET Core, .NET Standard
BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...
BASTA! Spring 2017 - C# Script in Action
#DNUG Berlin-Brandenburg - Conversational User Interfaces (CUIs) und das Micr...
#ADC 2016 - C# Script in Action
#ADC 2016 - Conversational User Interfaces
#ADC 2016 - Roslyn & Visual Studio Extensions
BASTA! 2016 - Roslyn & Visual Studio Extensions
Dream-Team: Roslyn & Visual Studio Extensions
Roslyn - Ein offener Compiler. Ja, und nun?
Thread-safe .NET durch Immutables
BASTA! Spring: Roslyn - Refactorings, Analyzer und Code Fixes selbst gebaut
Anzeige

Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Microsoft?

Hinweis der Redaktion

  • #2: 1
  • #8: 7
  • #11: Durchsatz: auf eine Region bezogen Latenz: <10ms, 1 KB, Read, same Region. Indexed Write <15ms. Average <5ms.
  • #12: 11
  • #16: 15
  • #21: 20
  • #28: 27
  • #31: 30