Azure Cosmos DB: Der branchenweit erste global verteilte Datenbankdienst mit mehreren Modellen

Veröffentlicht am 10 Mai, 2017

Founder of Azure Cosmos DB, Technical Fellow, Microsoft

Wir freuen uns heute sehr, die allgemeine Verfügbarkeit von Azure Cosmos DB bekannt zu geben. Azure Cosmos DB ist der erste global verteilte Datenbankdienst, mit dem Sie Durchsatz und Speicher über eine beliebige Anzahl geografischer Regionen hinweg elastisch skalieren können. Gleichzeitig ist für geringe Wartezeiten, Hochverfügbarkeit und Konsistenz gesorgt, und Sie kommen in den Genuss der branchenweit umfassendsten SLAs. Azure Cosmos DB wurde entwickelt, um die IoT- und mobilen Apps von heute und die KI-hungrigen Szenarien von morgen zu unterstützen.

Es ist die erste Clouddatenbank, die eine Vielzahl von Datenmodellen und gängigen Abfrage-APIs nativ unterstützt. Sie basiert auf einer neuartigen Datenbank-Engine, die in der Lage ist, kontinuierlich große Datenmengen zu erfassen, und bietet blitzschnelle Abfragen – und das alles ohne sich mit der Schema- oder Indexverwaltung befassen zu müssen. Und es handelt sich um die erste Clouddatenbank, die fünf klar definierte Konsistenzmodelle anbietet, sodass Sie genau das Richtige für Ihre App auswählen können.

Um diese fünf Konsistenzebenen zu erstellen und viele der Fähigkeiten innerhalb von Azure Cosmos DB zu entwickeln, haben wir jahrzehntelange Erfahrung in der Erforschung verteilter Systeme und Datenbanken mit erstklassiger Entwicklerkompetenz gebündelt. Sie können mehr über die Forschung erfahren, die wir in Azure Cosmos DB umgesetzt haben, indem Sie sich dieses Video des Turing Award-Gewinners, Microsoft-Forschers, einer Institution für verteilte Systeme und unserer Inspirationsquelle, Dr. Leslie Lamport, ansehen.

Azure Cosmos DB: Transformieren der cloudbasierten Anwendungsentwicklung

Wir sind davon überzeugt, dass Azure Cosmos DB die Art und Weise, wie Entwickler cloudbasierte Anwendungen realisieren, grundlegend verändert:

1. Global verteilte Apps noch einfacher erstellen

Azure Cosmos DB macht globale Verteilung zum Kinderspiel. Mit einem einzigen Klick lassen sich jederzeit beliebig viele Azure-Regionen zu Ihrer Azure Cosmos DB-Datenbank hinzufügen oder von ihr entfernen. Azure Cosmos DB repliziert Ihre Daten nahtlos und unabhängig davon, wo sich Ihre Benutzer befinden.

2. Durchsatz und Speicher jederzeit weltweit elastisch und bedarfsgerecht skalieren

Azure Cosmos DB ermöglicht Ihrer Anwendung eine elastische, bedarfsgerechte und weltweite Skalierung von Durchsatz und Speicherplatz. Sie können mit einem einzigen API-Aufruf von 1.000 auf 100 Mio. Anforderungen/Sek. rund um den Globus zentral hochskalieren, wobei Sie nur für den von Ihnen benötigten Durchsatz (und Speicher) zahlen.  Azure Cosmos DB ist die einzige Clouddatenbank, mit der Sie den Durchsatz sowohl sekunden- als auch minutengenau skalieren können. Dies wiederum hilft Ihnen, unerwartete Belastungsspitzen vorhersehbar zu bewältigen, ohne für Spitzen übermäßig Kapazität vorhalten zu müssen.

„Wir verwenden Azure Cosmos DB für unsere Transaktionsverarbeitungssysteme, weil es in der Lage ist, ein extrem hohes Volumen an Schreibvorgängen pro Sekunde mit vorhersehbarer Konsistenz zu verarbeiten, was unseren Systemen die hohe Leistung und Zuverlässigkeit verleiht, die unsere Kunden verlangen. Die Möglichkeit, den Durchsatz für jede Sammlung zu skalieren, gibt uns die Kontrolle, die wir zur Feinabstimmung von Leistung und Kosten benötigen, um unseren Kunden den höchsten Nutzen zu bieten.“

Andrew Hochstetler, Senior Director Application Architecture, Blackboard

3. Reaktionsschnelle Apps erstellen

Azure Cosmos DB garantiert Ihrer App Wartezeiten, die im Bereich einstelliger Millisekundenwerte im 99. Perzentil liegen, und zwar überall auf der ganzen Welt. Die schreiboptimierte, protokollstrukturierte und latchfreie Datenbank-Engine, das Herzstück von Azure Cosmos DB, ermöglicht ein kontinuierliches Einlesen von Daten und blitzschnelle Abfragen. Benutzer werden begeistert sein, wie reaktionsschnell Ihre App ist!

4. Apps entwickeln, die immer online sind

Azure Cosmos DB stellt sicher, dass Ihre App automatisch immer online ist. Wir garantieren Hochverfügbarkeit Ihrer Daten sowohl in jeder Region als auch regionsübergreifend. Dank der Multi-Homing-Funktionalität bleiben sowohl Ihre Anwendung als auch Ihre Daten sogar bei regionalen Katastrophen hochverfügbar, ohne dass eine aufwändige Neubereitstellung Ihrer App erforderlich ist.

„Das Xpander-Team von Microsoft entwickelt einen der wichtigsten Dienste, der eine Reihe kritischer Flows zwischen Windows und Xbox unterstützt, für die extrem hohe Verfügbarkeitsziele und strenge Latenzanforderungen gelten und die in wichtigen Rechenzentren auf der ganzen Welt verteilt sind.  Seit der Migration von unserer vorherigen Speicherlösung zu Azure Cosmos DB haben wir eine drastische Erhöhung der Gesamtzuverlässigkeit, deutlich verbesserte Leistungsmerkmale und eine einschneidende Reduzierung sehr kurzer Timeouts durch sog. Mikroausfälle erlebt, die 0,001% der Transaktionen für einen Durchsatz kleiner als 1 Minute an einem bestimmten Tag betreffen würden.“

Cary Mitchell, Principal Software Engineering Lead, Xpander

5. Das Konsistenzmodell wählen, das für Ihre App am besten geeignet ist

Bei Azure Cosmos DB müssen sich Entwickler nicht zwischen extremen Konsistenzebenen (starke gegenüber letztliche Konsistenz) entscheiden. Azure Cosmos DB bietet fünf überlegt definierte Konsistenzoptionen (stark, begrenzte Veraltung, Sitzung, Präfixkonsistenz und letztlich), sodass Sie das für Ihre App ideale Konsistenzmodell auswählen können.

„Johnson Controls ist ein globales Unternehmen mit Präsenz auf allen Kontinenten. Eine globale Datenbank wie Azure Cosmos DB zur Verfügung zu haben, macht es uns wesentlich einfacher, Anwendungen zu entwickeln, um unsere Kunden und Geräte unabhängig von ihrem Standort zu unterstützen. Azure Cosmos DB bietet uns die niedrige Wartezeit, die wir brauchen, und mit einer detaillierten Kontrolle der Konsistenz können wir die richtigen Entscheidungen in Bezug auf die Leistung unserer Anwendung treffen. Microsoft hat einige der besten Köpfe der Welt in seinem Team, und wir wissen, dass wir uns darauf verlassen können, dass sie ihre sehr aggressiven SLAs einhalten.“

Erik Paulson, Data Engineer, JCI Connected Offerings

6. Ihre App schnell durchlaufen, ohne sich über Schemas oder Indizes kümmern zu müssen

Die Synchronisierung von Datenbankschemas und -indizes mit dem Schema einer Anwendung ist bei global verteilten Anwendungen besonders problematisch. Dank Azure Cosmos DB müssen Sie sich nicht länger mit Schemas oder Indizes befassen. Die Datenbank-Engine ist vollkommen unabhängig vom Schema.  Da keine Schema- und Indexverwaltung erforderlich ist, müssen Sie sich auch bei der Migration von Schemas nicht um Anwendungsausfallzeiten Gedanken machen. Wir indizieren automatisch alle Daten, ohne dass ein Schema oder Index erforderlich ist, und unterstützen blitzschnelle Abfragen.

„Citrix hat zur Unterstützung seiner Citrix Identity Platform, die einmaliges Anmelden für mehr als 400.000 Unternehmen und 100 Mio. Einzelpersonen weltweit ermöglicht, auf Azure Cosmos DB umgestellt. Azure Cosmos DB half Citrix, ein grundlegendes Problem des Entwicklungsteams zu beheben, bei dem eine frühere NoSQL-Datenbank eine Indexierung und ständige Codeanpassungen erforderte. Azure Cosmos DB indiziert nun standardmäßig automatisch alle Eigenschaften aller erfassten Datensätze.“

Tom Kludy, Principal Architect, Citrix

7. Das richtige Datenmodell für Ihre App verwenden

Die Datenbank-Engine von Azure Cosmos DB ist so konzipiert, dass nahezu jedes Datenmodell nativ unterstützt wird. Mit der heutigen Markteinführung unterstützen wir die Modelle Schlüssel-Wert, Dokument und Graph, aber die Engine ist auf Erweiterbarkeit und Unterstützung neuerer Arten von Datenmodellen ausgelegt. Halten Sie sich auf dem Laufenden.

8. Die APIs Ihrer Wahl verwenden

Wir möchten Ihnen helfen, global verteilte Apps einfacher zu schreiben, indem Sie die Tools und APIs verwenden, mit denen Sie bereits vertraut sind.  Die Datenbank-Engine von Azure Cosmos DB unterstützt nativ den SQL-Dialekt von DocumentDB, die MongoDB-API für Azure Cosmos DB, Gremlin (Graph)-API und Azure Table Storage-APIs. In Zukunft werden wir noch weitere gängige Datenzugriffs-APIs nativ unterstützen, wodurch Sie noch mehr Auswahl und Flexibilität erhalten.

9. Branchenweit führende, umfassende SLAs.

Azure Cosmos DB ist der erste und einzige weltweit verteilte Datenbankdienst der Branche, der finanziell abgesicherte, umfassende SLAs anbietet. Der Leistungsumfang: Hochverfügbarkeit, Latenz im 99. Perzentil, Konsistenz und Durchsatz.

„Als ASOS den Markt für seine künftige NoSQL-Plattform analysierte, haben wir uns mehrere Optionen angeschaut und uns dann für Azure Cosmos DB entschieden, weil wir von der Lösung in vielerlei Hinsicht beeindruckt waren. Erstens ist es eine verwaltete Database-as-a-Service-Lösung, was äußerst reizvoll war. Wir glauben nicht, dass sich für Einzelhändler ein Mehrwert durch den Betrieb von Datenbanken ergibt, sondern dass der Mehrwert durch die Angebote entsteht, die wir damit entwickeln! Offensichtlich kommt dies nur zum Tragen, wenn die Verfügbarkeit und SLAs rund um diese Lösung erstklassig sind. Zweitens sind unsere Kunden weltweit vertreten, weshalb die Fähigkeit, die Daten einfach global zu replizieren, sowohl für die Leistung als auch für die Resilienz entscheidend war. Schließlich betreibt ASOS eine Microservice-Architektur, und natürlich hat jeder Dienst unterschiedliche Workloads und Leistungsmerkmale, sodass die Möglichkeit, die Konsistenzebenen zu variieren, ohne auf eine andere Technologie umsteigen zu müssen, uns eine Menge Vorteile bringt. Azure Cosmos DB ist bereits ein wichtiger Bestandteil der ASOS-Architektur und wird zunehmend zum Kern unseres Angebots.“

Dave Green, Enterprise Application Architect, ASOS

Die Geschichte von Cosmos in der Kurzfassung

Azure Cosmos DB wurde 2010 als „Project Florence“ gestartet, um die Probleme zu beseitigen, mit denen sich Entwickler umfangreicher Anwendungen bei Microsoft konfrontiert sahen. Als klar wurde, dass die Probleme beim Erstellen global verteilter Apps nicht nur für Microsoft galten, haben wir 2015 die erste Generation dieser Technologie als Azure DocumentDB für Azure-Entwickler zur Verfügung gestellt. Seitdem haben wir neue Features hinzugefügt und bemerkenswerte neue Funktionen eingeführt.  Das Ergebnis dieser Arbeit ist Azure Cosmos DB.  Azure Cosmos DB steht für den nächsten großen Schritt bei global nach Maß verteilten Clouddatenbanken. Im Rahmen dieser Version von Azure Cosmos DB werden DocumentDB-Kunden – mit ihren Daten – automatisch zu Azure Cosmos DB-Kunden. Der Übergang erfolgt reibungslos, und sie haben jetzt Zugang zum neuen bahnbrechenden System und den Funktionen von Azure Cosmos DB.

Einen technischen Überblick finden Sie hier im ersten Teil einer Reihe von Blogbeiträgen von meinem Team und mir. Dieser Beitrag enthält auch eine längere Version des Interviews mit Dr. Leslie Lamport mit dem Titel Foundations of Azure Cosmos DB.

Unser Ziel bei Azure Cosmos DB war es, Entwicklern auf der ganzen Welt zu ermöglichen, beeindruckende, leistungsstarke Anwendungen einfacher zu erstellen. Heute ist für uns im Azure Cosmos DB-Team der Urknallmoment und wir freuen uns, ihn mit Ihnen allen zu teilen – unseren Entwicklern und Kunden auf der ganzen Welt.
Probieren Sie #AzureCosmosDB aus, und sagen Sie uns, was Sie davon halten!  Wir sind gespannt, was Sie entwickeln.

– Ihr Azure Cosmos DB-Team (@AzureCosmosDB)