Rozwój produktów SaaS

Co to jest limitowanie żądań API w SaaS?

Autor: Oleksandra Butenko, Copywriterka

Sprawdzono przez: Marta Dozorska, Wiceprezes ds. Produktu

Czym jest ograniczanie szybkości API w SaaS?

Co to jest limitowanie żądań API w SaaS?

API SaaS aplikacji chmurowej ogranicza liczbę wywołań API do usługi na określony czas dla urządzenia klienta, użytkownika, adresu IP, klucza lub dzierżawcy. Klient jest skonfigurowany do wysyłania określonej liczby żądań. Ten rodzaj ograniczania API ma wpływ na pojemność infrastruktury usługi, ponieważ pomaga również w ograniczaniu dostępu użytkowników i zarządzaniu wydatkami na chmurę.

W mechanizmach ograniczania liczby żądań, monitorowanie komunikatów ‘429 Too Many Requests’ jest powszechną praktyką, występującą, gdy serwery przesyłają je do klientów po przekroczeniu ich progu żądań. W wielu przypadkach serwery używają nagłówka “Retry-After”, aby poinformować klientów o zalecanym opóźnieniu przed ponownym wysłaniem żądań.

Jak działa ograniczanie liczby żądań API?

Algorytm Zachowanie
Stałe okno Proste, ale może powodować nagłe skoki aktywności na granicach okien
Przesuwne okno Sprawiedliwszy, kosztem większej koordynacji i pamięci
Kubełek tokenów Pozwala na kontrolowane serie żądań przy jednoczesnym utrzymaniu średniego wskaźnika
Cieknący kubełek Dostosowuje wyjście dla spójności wskaźnika

Czym różnią się limitowanie szybkości API i dławienie?

Technika dla
Dławienie Wygładzanie impulsów
Ograniczanie liczby żądań Egzekwowanie sprawiedliwości i ochrona współdzielonych zasobów

 

Dlaczego limitowanie żądań API jest niezbędne dla dostawców SaaS?

Oto co konkretnie robi limitowanie szybkości:

  • Jest to związane z rozwiązywaniem potencjalnych problemów operacyjnych systemu, które mogą wyniknąć z dużej liczby żądań pochodzących z nieprzewidzianego źródła.
  • Zapobiega działaniom takim jak web scraping lub ataki brute-force.
  • Uwzględnia koszty wynikające z autoskalowania lub zużycia zasobów przez systemy niższego poziomu.

Jakie są najlepsze praktyki po stronie klienta dotyczące obsługi limitów szybkości API?

  1. Postępuj zgodnie z instrukcjami zawartymi w nagłówkach Retry-After.
  2. Zastosuj wykładniczy backoff z losowym komponentem.
  3. “Kolejkuj” żądania lub rozłóż obciążenie przy wysokiej współbieżności.
  4. Możesz zaimplementować bufor tokenów do zarządzania ruchem i kolejkami po stronie klienta dla obciążeń, które wymagają równoległości.
Pamiętaj:

Zachowanie ponawiania prób jest związane z efektami hordy i niezawodnością pod obciążeniem.

Typowe rozwiązanie obejmuje różne warstwy: bramę API, platformę bezpieczeństwa brzegowego oraz system kontroli usług lub limitowania. Mogą mieć zastosowanie następujące wzorce:

  • Limity na klucz
  • Limity na dzierżawcę
  • Limity specyficzne dla punktu końcowego
  • Plany wielopoziomowe
Uwaga:

Warstwowe podejście jest często najlepsze dla SaaS, ochrony brzegowej, ograniczania przepustowości bramy oraz reguł biznesowych na poziomie aplikacji.

 

Jak dostawcy SaaS mogą skutecznie komunikować użytkownikom opóźnienia związane z limitowaniem przepustowości?

W przypadkach, gdy ograniczanie szybkości zapytań prowadzi do większej liczby kontaktów klientów z pracownikami obsługi, zaleca się wyjaśnienie podstaw ograniczeń żądań. Dostawcom należy doradzić, aby:
· Używać odrębnych kodów statusu HTTP.
· Wyświetlać nagłówki Retry-After i rate-limit.
· Limity określone w dokumentach należy przekazać deweloperom.
· Tam, gdzie to możliwe, wyświetlać statystyki użytkowania klienta lub jego pozostały limit.

 

Pamiętaj:

Doświadczenie użytkownika obejmuje czytelne dla człowieka komunikaty o błędach, metadane czytelne maszynowo oraz opcję samoobsługową dla wniosków o zwiększenie limitu.

Jakie są ograniczenia limitowania przepustowości API i jakie istnieją strategie uzupełniające?

Limitowanie zapytań zarządza nadużyciami, kosztami i sprawiedliwością, jednak jego skuteczność w rozwiązywaniu problemów w systemach rozproszonych może mieć ograniczenia. Integracja limitowania zapytań z innymi kontrolami wymaga rozważenia:

  • Limity
  • WAF lub ochrona przed botami
  • Uwierzytelnianie i idempotentność
  • Monitorowanie

 

Wniosek

Limitowanie zapytań SaaS interfejsów API jest kluczowym środkiem stosowanym do zabezpieczenia infrastrukturę chmury, zapewniać ciągłość działania i dostępność usługi oraz monitorować operacje. Metoda ta wykorzystuje różne algorytmy z dławieniem (throttling) i opiera się na komunikacji z klientem oraz odpowiednich korektach limitów.

Gotowy do rozpoczęcia?

Doskonale rozumiemy Twoją sytuację. Podzielmy się naszym ponad 20-letnim doświadczeniem i sprawmy, aby Twoje globalne marzenia stały się rzeczywistością.
Obraz mozaikowy
pl_PLPolski