Sviluppo di prodotti SaaS
Che cos'è il Rate Limiting delle API SaaS?
Che cos'è il Rate Limiting delle API SaaS?
L'API SaaS di un'applicazione basata su cloud limita il numero di chiamate API a un servizio per un determinato periodo per un dispositivo client, utente, IP, chiave o tenant. Il client è configurato per inviare un numero specifico di richieste. Questo tipo di limitazione API ha implicazioni per la capacità dell'infrastruttura di servizio, poiché aiuta anche a limitare l'accesso degli utenti e supporta la gestione della spesa cloud.
All'interno dei meccanismi di limitazione della frequenza (rate limiting), il monitoraggio dei messaggi ‘429 Too Many Requests’ è una pratica comune, che si verifica quando i server li trasmettono ai client dopo che la loro soglia di richieste è stata raggiunta. In molti casi, i server utilizzano l'intestazione “Retry-After” per informare i client sul ritardo raccomandato tra un nuovo tentativo di richiesta e l'altro.
Come funziona la limitazione della frequenza delle API (API Rate Limiting)?
| Algoritmo | Comportamento |
| Finestra fissa | Semplice, ma può creare picchi ai confini della finestra |
| Finestra scorrevole | Più equo, a costo di maggiore coordinazione e memoria |
| Token bucket | Consente burst controllati pur imponendo una velocità media |
| Leaky bucket | Regola l'output per la consistenza della velocità |
In cosa differiscono il Rate Limiting e il throttling delle API?
| Tecnica | Per |
| Throttling | Appianare i picchi |
| Limitazione della frequenza | Garantire equità e proteggere le risorse condivise |
Perché il Rate Limiting delle API è essenziale per i fornitori SaaS?
Ecco cosa fa specificamente il rate limiting:
- È associato alla gestione di potenziali problemi operativi del sistema che possono derivare da un elevato volume di richieste provenienti da un'origine imprevista.
- Previene attività come il web scraping o l'hacking a forza bruta.
- Gestisce i costi derivanti dall'autoscaling o dall'utilizzo delle risorse da parte dei sistemi a valle.
Quali sono le best practice lato client per gestire i Rate Limits delle API?
- Seguire le istruzioni fornite negli header Retry-After.
- Provare il backoff esponenziale con una componente casuale.
- “Accodare” le richieste o distribuire il carico in caso di elevata concorrenza.
- È possibile implementare un token bucket per la gestione del traffico e delle code lato client per carichi di lavoro che richiedono parallelismo.
Il meccanismo di ritentativo è associato agli effetti di thundering-herd e all'affidabilità sotto carico.
Quali strumenti, framework o pattern di progettazione sono raccomandati per l'implementazione del rate limiting delle API?
Una soluzione tipica prevede vari livelli: API gateway, piattaforma di sicurezza edge e sistema di controllo dei servizi o delle quote. I seguenti modelli potrebbero essere applicabili:
- Limiti per chiave
- Limiti per tenant
- Limiti specifici per endpoint
- Piani a livelli
Un approccio a livelli è spesso il migliore per il SaaS, la protezione edge, il throttling del gateway e le regole aziendali a livello di applicazione.
Come possono i fornitori SaaS comunicare efficacemente i ritardi del Rate Limit agli utenti?
Nei casi in cui il rate limiting contribuisca a un numero maggiore di contatti da parte dei clienti per il personale di supporto, è consigliabile spiegare la base delle limitazioni delle richieste. Si dovrebbe consigliare ai fornitori di:
· Utilizzare codici di stato HTTP distinti.
· Mostrare le intestazioni Retry-After e rate-limit.
· I limiti specificati nei documenti devono essere comunicati agli sviluppatori.
· Laddove fattibile, visualizzare le statistiche di utilizzo del cliente o la loro quota rimanente.
L'esperienza utente prevede messaggi di errore leggibili dall'uomo, metadati leggibili dalla macchina e un'opzione self-service per le richieste di aumento della quota.
Quali sono i limiti del Rate Limiting delle API e quali strategie complementari esistono?
La limitazione della frequenza gestisce abusi, costi ed equità, ma la sua efficacia nella risoluzione di problemi nei sistemi distribuiti può avere dei limiti. L'integrazione della limitazione della frequenza con altri controlli merita considerazione:
- Quote
- WAF o protezione dai bot
- Autenticazione e idempotenza
- Monitoraggio
Conclusione
Rate limiting SaaS API è una misura vitale utilizzata per salvaguardare infrastruttura cloud, mantenere il servizio attivo e disponibile e monitorare le operazioni. Questo metodo utilizza vari algoritmi con throttling e si basa sulla comunicazione con il client e sull'adeguamento corretto dei limiti.