14 Jun

Dit is de eerste in een driedelige blogserie over hoe bedrijven Azure Cosmos DB gebruiken om aan de eisen van de echte wereld te voldoen en de impact die het heeft. In dit eerste deel van een driedelige serie kijken we naar de problemen die Skype tegenkwam en die hen ertoe aanzetten actie te ondernemen. We zullen bekijken hoe Skype Azure Cosmos DB gebruikte om zijn backend-infrastructuur te upgraden in deel 2. In deel 3 zullen we praten over de resultaten van die inspanningen.


Opschalen naar vier miljard gebruikers is niet eenvoudig

Skype, opgericht in 2003, is uitgegroeid tot een van 's werelds populairste communicatiesystemen, waardoor gebruikers hun ervaringen met anderen kunnen delen, waar ze zich ook bevinden. Skype is sinds de overname door Microsoft in 2010 uitgebreid tot meer dan vier miljard gebruikers in totaal, meer dan 300 miljoen maandelijkse actieve gebruikers en meer dan 40 miljoen gelijktijdige gebruikers.

Een van de fundamentele interne Skype-services is de People Core Service (PCS), die de contacten, groepen en relaties van elke Skype-gebruiker opslaat. Wanneer de Skype-client begint, wordt de service aangeroepen, worden machtigingen geverifieerd bij het starten van een gesprek en worden de contacten, groepen en relaties van de gebruiker bijgewerkt wanneer ze worden toegevoegd of gewijzigd. Andere services van derden, zoals Microsoft Graph, Cortana, bot-provisioning en andere services van derden maken gebruik van PCS.

Vóór 2017 werd PCS gehost in drie datacenters in de Verenigde Staten, waarbij elk datacenter data hostte voor een derde van de 4 miljard abonnees van de dienst. Elke locatie had zijn eigen relationele SQL Server-database, die enorm en monolithisch was. Die databases, die al enkele jaren aanwezig waren, begonnen hun leeftijd te vertonen. De volgende waren enkele van de specifieke problemen en pijnen:

  • Onderhoudbaarheid: de codebasis van de databases was groot, complex en nauw verbonden, met uitgebreide opgeslagen procedures die moeilijk te wijzigen en te debuggen waren. Omdat de database in handen was van een apart team en gegevens bevatte voor meer dan alleen Skype, de grootste gebruiker, waren er verschillende onderlinge afhankelijkheden. Met gebruikersgegevens verspreid over drie verschillende systemen op drie verschillende plaatsen, moest Skype zijn eigen routeringslogica ontwikkelen op basis van welke gebruikersgegevens het nodig had om op te halen of bij te werken.
  • Buitensporige latentie: omdat alle PCS-gegevens uit de VS worden geleverd, ondervonden Skype-klanten in andere landen, evenals de lokale infrastructuur die hen ondersteunt (zoals oproepcontrollers), onaanvaardbare latentie bij het openen of bijwerken van PCS-gegevens. Bij het opzetten van een gesprek heeft Skype bijvoorbeeld een interne service level agreement (SLA) van minder dan een seconde. De round-trip timings voor een toestemmingscontrole worden echter gedaan door een lokale gesprekscontroller in Europa, die gegevens uitleest van PCS om te garanderen dat gebruiker A autorisatie heeft om gebruiker B te bellen, maakte het opzetten van een gesprek tussen twee gebruikers in Europa binnen het vereiste tijdsbestek van één seconde onpraktisch.
  • Databasedeadlocks vormden een probleem, dat werd verergerd door het feit dat gegevens die door PCS werden gebruikt, werden gedeeld met andere systemen. Gebruikers klaagden over ontbrekende contacten, onjuiste contactgegevens en andere problemen met betrekking tot gegevenskwaliteit.

Al deze problemen verergerden naarmate het verbruik toenam, tot het punt waarop de pijn in 2017 ondraaglijk was geworden. Deadlocks kwamen steeds vaker voor naarmate het databaseverkeer toenam, wat resulteerde in serviceonderbrekingen en het verlies van sommige gegevens tijdens wekelijkse back-ups. van wat we hadden”, zegt Frantisek Kaduk, Principal.NET Developer in het Skype-team. "We hebben verschillende oplossingen bedacht om met alle impasses om te gaan, zoals extra code om databaseverzoeken te beperken." "Toen de problemen verergerden, wisten we dat we een andere aanpak moesten kiezen."

Bovendien liep het team tegen een deadline aan die verband hield met de Algemene Verordening Gegevensbescherming (AVG); het systeem voldeed niet aan de AVG-criteria, dus moesten de servers voor een bepaalde datum worden afgesloten.

Het team concludeerde dat het zijn eigen gegevensopslag nodig had om een compromisloze gebruikerservaring te bieden. Hoge doorvoer, lage latentie en hoge beschikbaarheid waren allemaal vereisten waaraan moest worden voldaan, ongeacht waar gebruikers zich op de planeet bevonden.

Een natuurlijke pasvorm was een gebeurtenisgestuurde architectuur, maar het zou meer moeten zijn dan alleen een basisimplementatie die actuele gegevens vastlegde. "We wilden een betere audit trail," vervolgt Kaduk, "waarbij alle gebeurtenissen worden opgeslagen die hebben geleid tot een staatsverandering." “We moeten bijvoorbeeld een reeks gebeurtenissen kunnen herhalen om klanten die zich misdragen aan te pakken. Om cross-service/cross-shard-transacties en andere postverwerkingstaken te beheren, hebben we ook gebeurtenisgeschiedenis nodig. De gebeurtenissen documenteren wie een staatsverandering heeft geïnitieerd, wat die verandering moest bereiken en wat er als gevolg daarvan gebeurde.Als er een probleem is, neem dan contact met mij op via Bellen Skype Nederland.

Je bent ook Lees meer:-Hoe u kunt oplossen dat G Suite niet werkt op apparaten



Comments
* The email will not be published on the website.
I BUILT MY SITE FOR FREE USING