Azure Cosmos DB

Een krachtige database om te koppelen aan je applicatie, die in staat is om duizenden productinformatie op te slaan: Azure Cosmos DB. Supersnelle database-interacties, beschikbaar voor gebruikers over de hele wereld en weinig downtime, zodat bezoekers 24/7 de website kunnen bezoeken. In dit artikel leren we meer over Azure Cosmos DB. 

Azure
28 augustus 2020
Martijn van der Put

Wat is Azure Cosmos DB? 

Azure Cosmos DB is een Platform as a Service (PaaS) aanbieding van Microsoft. Het is een serverloze NoSQL-database die wereldwijd is gedistribueerd, lage latentie heeft en een multi-query-API ondersteunt voor het beheren van grote hoeveelheden data. Het stond voorheen bekend als Document DB.

De term 'wereldwijd gedistribueerd' verwijst typisch naar de mogelijkheid van gebruikers om hun database te repliceren in verschillende geografische gebieden over de hele wereld. Bovendien vereist het geen enkel schema om de gegevens op te slaan, omdat het deze opslaat in JSON-indeling. Gebruikers kunnen SQL-query's gebruiken om de opgeslagen JSON-documenten uit te voeren.


Belangrijke kenmerken van Azure Cosmos DB

  • Hoge beschikbaarheid: Azure Cosmos DB dupliceert de gegevens van gebruikers transparant over alle Azure-regio's die zijn gekoppeld aan het account. Het biedt een verbazingwekkende beschikbaarheid van 99,999% voor lees-/schrijfbewerkingen wanneer de database is gekoppeld aan multi-regio accounts (met multi-regio schrijfbewerkingen). Een failover-optie is ook beschikbaar in geval van een storing in een van de regio's.
  • Snelle respons: Omdat Azure Cosmos DB je in staat stelt om de gegevens te distribueren naar meerdere Azure-regio's, betekent dit dat de gebruiker toegang kan krijgen tot de gegevens vanuit een database die het dichtst bij zijn locatie staat. Dit resulteert effectief in lage latentietarieven, aangezien het kan reageren op lees-/schrijfbewerkingen in minder dan 10 milliseconden.
  • Eenvoudig beheren van regio’s: Azure Cosmos DB biedt de mogelijkheid om naadloos Azure-regio's toe te voegen of te verwijderen aan je account. Cosmos DB zal continu de gegevens repliceren naar alle nieuwe regio's die door jou zijn toegevoegd.
  • Data is geïndexeerd: Azure Cosmos DB indexeert automatisch alle gegevens die aanwezig zijn in alle velden over elk bestand. Het indexeert elk eigenschap van elk record zonder de noodzaak van schema's en indexbeheer. Je kunt zelfs aangepaste indexen toevoegen.
  • Schaalbaarheid: Azure Cosmos DB biedt de mogelijkheid om te schalen op basis van vraag. Je kunt horizontaal schalen door het vereiste aantal servers toe te voegen aan de clusters. Op zijn hoogtepunt kun je miljoenen lees-/schrijfaanvragen per seconde verwerken.
  • Multi-Master ondersteuning: Dit betekent dat Cosmos DB meer schrijfbewerkingen kan ondersteunen dan leesbewerkingen. Met de multi-master functie laat Azure je alle dataservers kiezen als schrijfservers.
  • Multi-model: Het kan gegevens opslaan in de vorm van sleutel-waardeparen, document gebaseerd, kolomfamilie gebaseerd, op grafieken gebaseerd. Het beste is, ongeacht het model dat je kiest, krijg je altijd hoge beschikbaarheid, snelle reactie, gegevensindexering, schaalbaarheid en wereldwijde distributie vanuit Cosmos DB.


Hoe Cosmos DB werkt 

Wanneer je een database kiest zonder multi-master modus, waar de informatie alleen naar een primaire database wordt geschreven (bijvoorbeeld Amsterdam), zullen gebruikers in andere delen van de wereld, buiten Europa, de gegevens minder snel kunnen ophalen vanwege de netwerklatentie. Dit is onaanvaardbaar voor een toepassing waar duizenden bezoekers wereldwijd elke seconde transacties uitvoeren. 

Bij Azure Cosmos DB komt de multi-master functie van Cosmos DB om de hoek kijken. Met deze functie wordt data tegelijkertijd naar alle regio’s geschreven. Als een gebruiker bijvoorbeeld zich bevindt in Chicago, dan zal de data naar deze gebruiker worden gestuurd vanuit de dichtstbijzijnde database in New York (secundaire database), waardoor een snelle responsetijd wordt gegarandeerd. 


Meestal is een van de veelvoorkomende uitdagingen bij de meeste databases het handhaven van perfect gesynchroniseerde gegevens over alle databases (primaire en secundaire). Dit wordt echter ook verzorgd door Azure Cosmos DB via de Consistency-functie.

Cosmos DB vertrouwt op replicatie om hoge beschikbaarheid en lage latentie te faciliteren. Het is echter een zware taak om sterke consistentie van gegevens te bereiken samen met hoge beschikbaarheid en lage latentie. Daarom biedt Azure Cosmos DB een perfecte balans tussen consistentie, beschikbaarheid en latentie, en geeft die keuze aan ontwikkelaars om deze te kiezen op basis van hun behoeften. Dit wordt consistentieniveaus genoemd.


Azure biedt 5 consistentienieveaus

  1. Eventual
  2. Consistent Prefix
  3. Session
  4. Bounded Staleness
  5. Strong

Onthoud, de gegevens werden eerst geschreven in de Amsterdamse database, vervolgens vond de replicatie plaats waarbij de gegevens werden gesynchroniseerd over de andere databases (wat doorgaans enkele milliseconden duurt). Tijdens deze korte tijd bestaat de mogelijkheid dat een gebruiker in de buurt van de Amsterdamse database de bijgewerkte informatie kan zien terwijl de rest van de wereld nog steeds de oude informatie ziet. Dit wordt 'Eventuele Consistentie' genoemd. Aan de andere kant, bij 'Sterke Consistentie', zullen alle gebruikers de bijgewerkte informatie tegelijkertijd zien.



De andere soorten consistentie zoals consistent-prefix, sessie en bounded-staleness worden puur gedefinieerd op basis van het consistentieniveau. Wat betreft de prestaties en beschikbaarheid, heeft Strong de laagste prestaties/beschikbaarheid, terwijl Eventual de hoogste heeft.


Gebieden van praktische implementatie

Waar er een vereiste is voor data om op massale wereldwijde schaal te worden gelezen/schreven en er een verwachting is van een bijna-reële respons, is het ideaal om Azure Cosmos DB te gebruiken. Enkele van de populaire gebieden waar Azure Cosmos DB kan worden geïmplementeerd zijn IoT, gaming, e-commerce, web- en mobiele applicaties voor sociale interacties.

Laten we nog een voorbeeld bekijken waar Azure Cosmos DB effectief kan worden gebruikt. Stel dat er een mobiele applicatie is gebouwd voor sociale netwerken. Deze app stelt gebruikers in staat om berichten te uploaden in de vorm van foto's, video's, muziek, tekstberichten en tekst als reacties. Nu denken de meeste mensen dat dit tegenwoordig een veelvoorkomende operatie is en dat elke database dit kan bereiken. Maar ze kunnen niet meer fout zijn. Een van de belangrijkste ingrediënten voor succes in een sociale netwerktoepassing is het vermogen om de post in realtime te laden. Als gebruikers de berichten niet in realtime zien, zullen ze hun interesse verliezen in de applicatie. Hier komt Azure Cosmos DB met zijn snelle respons door gegevensreplicatie van pas.


Conclusie

Het begrijpen van de belangrijkste voordelen van Azure Cosmos DB en hoe het werkt, is cruciaal voor ons om te begrijpen waarom we Azure Cosmos DB zouden moeten kiezen boven andere databases. Het is ook belangrijk om het juiste multi-model en het juiste niveau van consistentie te kiezen om ons te helpen de prestaties en beschikbaarheid van de database te verbeteren. Vanwege zijn indrukwekkende functies is Azure Cosmos DB een van de meest voorkomende backend-databases geworden voor cruciale projecten en zal dat nog vele jaren blijven.


Wil je meer informatie? Neem dan contact op.

Cookies
Deze site gebruikt geanonimiseerde cookies. Klik op "Akkoord" als je akkoord gaat met het gebruik van cookies, of klik op "Aanpassen" om je voorkeuren te bepalen.
Deze site gebruikt geanonimiseerde cookies.