Oorspronkelijk gepubliceerd op 3 oktober 2019
Als Product Manager voor de Brightspace API heb ik de kans gehad om veel klanten en partners te ontmoeten om meer te weten te komen over de grote verscheidenheid aan integraties en oplossingen die zijn ontwikkeld. In deze periode hebben we ook gekeken naar de gebruiksgegevens van de Brightspace API. Voor degenen die mijn sessie op Fusion 2019 hebben bijgewoond, herinnert u zich misschien dat deze anekdotische en analytische gegevens mij duidelijk hebben gemaakt welke soorten API-oplossingen worden ontwikkeld (Integratie, Automatisering, Data, Aangepaste UX en Innovatie). Deze gegevens hebben ons ook geïnformeerd dat het gebruik van de Brightspace API in de loop der jaren aanzienlijk is toegenomen, iets waar we allemaal erg enthousiast over zijn.
Zoals voor elk API-product is verhoogd gebruik een tweesnijdend zwaard. Het laat ons zien dat onze API waarde biedt voor velen van u. Het nadeel is echter dat we scenario's hebben gezien van extreem hoog API-gebruik die een negatieve impact hebben gehad op de prestaties van Brightspace-servers. Pieken in zeer hoog API-gebruik hebben wel een impact op de prestaties van de server.
Ons doel als SaaS-leverancier is om u applicatiestabiliteit en uptime te bieden. Daarom hebben we besloten om actief onderzoeken hoe we kunnen samenwerken met klanten en partners om ervoor te zorgen dat het API-gebruik kan blijven groeien en tegelijkertijd prestatieproblemen voorkomen.
API Rate Logging = Nu
Ons belangrijkste initiële onderzoek is het registreren van scenario's waarin een specifieke Brightspace API-app in korte tijd een groot aantal API-aanroepen heeft uitgevoerd. De data die we tot nu toe hebben verzameld is al inzichtelijk geweest. Deze gegevens hebben ons een beter inzicht gegeven in de API-routepatronen die worden gebruikt voor oplossingen met een hoog volume. Dit heeft ons in staat gesteld om:
- Start zinvolle gesprekken met klanten over best practices voor API-ontwikkeling. Het doel van deze bijeenkomsten is om samen manieren te vinden om efficiëntere en schaalbare API-oplossingen te ontwikkelen.
- Identificeer mogelijkheden om de efficiëntie van bestaande API's te verbeteren.
- Onderzoek de ontwikkeling van bulk API's die het aantal inkomende API-aanroepen zouden verminderen.
- Bedenk wat een acceptabel aantal API-aanroepen is dat door een app wordt uitgevoerd.
API-snelheidsbeperking = Nabije toekomst
Alle bovenstaande punten helpen D2L bij het bepalen van manieren om onze klanten en partners in staat te stellen geweldige Brightspace-oplossingen te blijven ontwikkelen met behoud van de stabiliteit van Brightspace. Het laatste punt is een belangrijk punt, omdat we geloven dat we kunnen bepalen wat een acceptabel aantal API-aanroepen zou zijn voor een goed ontworpen applicatie.
Naarmate onze API Rate Logging verbetert, zullen we deze gegevens gebruiken om een drempel voor API-gebruik voor "gepast gebruik" te bepalen. Deze drempel is gebaseerd op het hebben van een minimale impact op bestaande oplossingen en het voorkomen dat oplossingen een negatieve invloed hebben op de prestaties van Brightspace. Ons plan is om dit te gebruiken als onderdeel van een API Rate Limiting-oplossing. Een dergelijke oplossing zou:
- Blokkeer API-verkeer dat de drempelwaarde voor acceptabel gebruik overschrijdt
- Een ontwikkelaar informeren wanneer API-verkeer is geblokkeerd
- Informeer een ontwikkelaar over het proces dat moet worden gevolgd om API-aanroepen te mogen blijven uitvoeren
Wanneer gebeurt dit?
API Rate Logging is in oktober 2019 ingeschakeld voor alle D2L-klanten.
API-snelheidsbeperking is op 16 december 2019 ingeschakeld voor alle nieuwe D2L-klanten.
API-snelheidsbeperking is ingeschakeld voor alle bestaande D2L-klanten die geen productielocaties hebben Maandag, maart 9th, 2020.
API-snelheidsbeperking is planmatig aan te zetten voor alle bestaande D2L-klanten Productielocaties op Maandag, juni 8th, 2020.
Hoe u zich kunt voorbereiden op API-snelheidsbeperking
Je Brightspace API-gebruik monitoren
Bekijk de code die u al hebt geschreven om te zien of u het aantal oproepen dat u voert kunt verminderen. Gebruikt u API-aanroepen om statische gegevens op te halen die voor u beschikbaar zouden zijn via datasets? Zijn er nieuwere Brightspace API-routes beschikbaar die uw code efficiënter zouden maken? Overweeg om uw API-aanroepen te registreren, zodat u meer duidelijkheid krijgt over uw API-gebruikspieken.
Rol uw eigen API Throttling-oplossing uit
Werk samen met uw technische medewerkers om te bepalen of een API Gateway en/of een Enterprise Service Bus-oplossing om deze en andere redenen zinvol is.
Code voorbereiden
We zullen de komende maanden meer details delen over de implementatie van onze oplossing voor tariefbegrenzing. We zijn ervan overtuigd dat onze oplossing API-aanroepen zal blokkeren die de drempel voor acceptabel gebruik overschrijden. Wanneer de oplossing voor snelheidslimieten is geïmplementeerd, weet u dat u een API-snelheidslimietgebeurtenis hebt ervaren wanneer u een 429-antwoordbericht 'Te veel verzoeken' ontvangt. Dit antwoord bevat informatie over hoe lang u moet wachten voordat u opnieuw kunt proberen API-aanroepen te verzenden.
Stuur ons feedback
Reageer in dit artikel als je vragen hebt. Houd de Brightspace Developer Community in de gaten, want we zullen meer details publiceren naarmate deze oplossing zich verder ontwikkelt. En zoals altijd, laat ons via de Product Idea Exchange weten hoe we de Brightspace API kunnen verbeteren, zodat u uw code efficiënter kunt maken. Als u het antwoord op uw vraag niet kunt vinden, neem dan gerust contact op met uw D2L, TAM en/of CSM.
Wat moet ik nog meer weten?
Net als andere functies van Brightspace verwachten we dat API Rate Logging en Limiting zich zullen ontwikkelen op basis van feedback van klanten en data-analyse. Aangezien het belangrijkste doel van het implementeren van deze oplossingen de stabiliteit van uw Brightspace-ervaring is, zullen we doorgaan met het leveren van updates voor API Rate Logging & Limiting op basis van dit doel. Updates worden gecommuniceerd via de Brightspace Community, Valence Documentation, de 90 Day Review/Preview en via uw D2L TAM/CSM.
Aanvullende bronnen
API-tariefregistratie/-beperking - Veelgestelde vragen