Jump to section

Cos'è e a cosa serve un gateway API?

Copia URL

Un gateway API è uno strumento di gestione delle API che si situa tra un client e una raccolta di servizi back end. In questo caso, il client è l'applicazione sul dispositivo dell'utente, mentre i servizi di back end sono quelli che si trovano sui server di un'azienda.Il termine API, acronimo di Application Programming Interface (interfaccia di programmazione delle applicazioni), indica un insieme di definizioni e protocolli per la creazione e l'integrazione di applicazioni software.

Un gateway API è un componente della distribuzione delle applicazioni (l'insieme dei servizi che forniscono l'applicazione all'utente) e funge da proxy inverso per accettare tutte le chiamate API, aggregare i vari servizi necessari a gestirle e restituire i risultati appropriati. In breve, un gateway API è un software che intercetta le chiamate API dell'utente e le invia al servizio di back end più pertinente.

La maggior parte delle API aziendali vengono distribuite tramite gateway API. Di solito, i gateway API gestiscono attività comuni utilizzate su un sistema di servizi API, come autenticazione utente, gestione dei limiti di frequenza e statistiche.

Di base, un servizio API accetta una richiesta remota e restituisce una risposta. Ma quando si ospitano API su larga scala, gli scenari che si possono verificare sono svariati e gestirli può essere complesso.

  • Per evitare che le API vengano sovraccaricate o usate senza le debite autorizzazioni, hai implementato un servizio di autenticazione e limitazione della frequenza. 
  • Per capire in che modo le persone usano le tue API, hai aggiunto strumenti di analisi e monitoraggio.
  • Se hai monetizzato le API, vorrai collegarle a un sistema di fatturazione.
  • Se hai adottato un'architettura basata sui microservizi significa che una singola richiesta potrebbe richiedere chiamate a decine di applicazioni diverse.
  • Nel tempo, aggiungerai alcuni nuovi servizi API e ne eliminerai altri, ma dovrai garantire ai tuoi clienti di poterli reperire sempre nello stesso posto.

Offrire ai tuoi clienti un'esperienza semplice e affidabile, a prescindere da questa complessità, è l'aspetto più impegnativo. Un gateway API ti offre un modo per disaccoppiare l'interfaccia del client dall'implementazione back end. Quando un client invia una richiesta, il gateway API la suddivide in più richieste, le indirizza dove necessario, elabora delle risposte e tiene traccia di ogni operazione.

Il gateway API è una componente del sistema di gestione delle API. Intercetta tutte le richieste in entrata e le invia attraverso il sistema di gestione delle API, che elabora una serie di funzioni necessarie.

In base al tipo di implementazione, il gateway API eseguirà svariate funzioni distinte. Tra le più comuni troviamo autenticazione, routing, limitazione di frequenza, fatturazione, analisi, policy, avvisi e sicurezza. Di seguito vengono illustrati i vantaggi offerti dai gateway API:

Bassa latenza

Le richieste in entrata vengono distribuite, mentre le attività più comuni come il caching e la decrittazione di SSL vengono eseguite altrove, in questo modo i gateway API perfezionano l'instradamento del traffico ed equilibrano il carico dei servizi di back end per ottimizzare le prestazioni e l'utilizzo delle risorse. Il carico dei server e l'utilizzo della larghezza di banda sono così ridotti al minimo, come la necessità di ulteriore capacità server e di banda, ottenendo una migliore esperienza utente.

Gestione del traffico

I gateway API si avvalgono di diversi meccanismi per controllare la frequenza e il volume delle richieste in entrata, riuscendo così a limitare e gestire il traffico, ottimizzando le prestazioni e l'utilizzo delle risorse.

  • Le policy di limitazione della frequenza specificano il numero massimo di richieste consentite in un determinato periodo (ad esempio al secondo, al minuto o all'ora) per client o chiave API, evitando così che i servizi di back end siano sovraccaricati.
  • Le policy di limitazione delle richieste stabiliscono regole e limiti per regolamentare il traffico delle richieste, ad esempio frequenza massima delle richieste, limiti di burst e quote consentiti.
  • Le policy di controllo delle operazioni simultanee indicano il numero massimo di connessioni o richieste che i server di back end possono gestire nello stesso momento.
  • Le policy sulle interruzioni monitorano lo stato e la reattività dei server di back end e bloccano temporaneamente o ridirigono il traffico dai servizi non funzionanti o lenti per evitare errori a cascata e mantenere la stabilità generale del sistema.
  • Il bilanciamento dinamico del carico dai gateway API monitora continuamente lo stato dei server e adatta il traffico reindirizzandolo in tempo reale per gestire i picchi di domanda, ridurre al minimo i tempi di risposta e aumentando al massimo il throughput.

Utilizzo ottimizzato dell'infrastruttura di rete globale

I gateway API sono in grado di adattare in modo dinamico le risorse dell'infrastruttura per rispondere ai diversi modelli di traffico e alle richieste dei carichi di lavoro. Grazie ai gateway API le aziende possono ottimizzare l'utilizzo delle risorse e ridurre al minimo i costi dell'infrastruttura, coprendo solo quelli per le risorse effettivamente utilizzate.

Efficienza in termini di costi

I gateway API svolgono un ruolo fondamentale nella gestione dei costi per la distribuzione delle applicazioni e per l'integrazione delle API: offrono infatti una piattaforma centralizzata per l'organizzazione del traffico API, applicano policy di sicurezza, implementano regole di gestione del traffico e favoriscono l'integrazione con i servizi di back end. Consentono inoltre un consumo su più livelli dei servizi, poiché i diversi tipi di API possono intervenire in maniera significativa sui costi in diversi modi.

  1. Flessibilità. Le API HTTP, più generiche e in grado di utilizzare qualsiasi metodo HTTP, garantiscono semplicità e flessibilità nel momento dello sviluppo, riducendo i potenziali costi in eccesso. Le API REST, che rispondono a convenzioni e principi architetturali specifici, potrebbero invece essere più difficili da progettare e implementare, potenzialmente aumentando i costi di sviluppo.
  2. Infrastruttura. Le API HTTP, grazie alla loro flessibilità, potrebbero avere costi infrastrutturali più contenuti, mentre le API REST potrebbero richiedere componenti o servizi per l'infrastruttura aggiuntivi, per supportare le funzionalità offerte, risultando potenzialmente più costose.
  3. Scalabilità. Le API HTTP, scalabili orizzontalmente aggiungendo server o istanze, potrebbero offrire opzioni di scalabilità più economiche, in particolare negli ambienti cloud con funzionalità di regolazione della scalabilità automatiche. Le API REST, d'altro canto, potrebbero avere requisiti più complessi per la scalabilità tenendo conto delle considerazioni su statelessness, caching e architettura distribuita. Potrebbero inoltre richiedere risorse e servizi per l'infrastruttura aggiuntivi, per raggiungere la stessa scalabilità orizzontale, ma a un costo potenzialmente maggiore.

Interazione dei gateway API con Kubernetes

Una soluzione basata su Kubernetes, come Red Hat OpenShift, è il modo più efficiente di eseguire la containerizzazione e l'orchestrazione delle applicazioni. Un gateway API può quindi essere un componente fondamentale che, svolgendo le attività indicate di seguito, riesce a gestire e indirizzare il traffico verso i diversi servizi di un cluster Kubernetes.

  • Funge da controller delle richieste in ingresso, intercetta il traffico HTTP in entrata sul cluster e lo reindirizza verso i servizi appropriati in base a regole e configurazioni definite.
  • Utilizza l'individuazione dei servizi basata su DNS di Kubernetes per rilevare e instradare il traffico ai servizi di back end senza che sia necessaria una configurazione manuale. In questo modo l'integrazione con i servizi nativi di Kubernetes avviene senza complicazioni e vengono semplificati scalabilità dinamica, individuazione dei servizi e gestione del failover all'interno del cluster.
  • Implementa policy di gestione del traffico avanzate per controllare il flusso verso i servizi distribuiti su Kubernetes.
  • Applica le policy di sicurezza come quelle relative ad autenticazione, controlli degli accessi, autorizzazione e crittografia per proteggere i servizi distribuiti su Kubernetes da accessi non autorizzati e minacce informatiche.
  • Garantisce osservabilità e monitoraggio ottenendo modelli di traffico, metriche delle performance e frequenza di errori per i servizi distribuiti su Kubernetes, come registrazione delle richieste, raccolta delle metriche e tracciamento distribuito.
  • Permette l'integrazione con le service mesh, come Istio e Linkerd, per aumentare ulteriormente le capacità e fornire funzionalità aggiuntive come traffico in ingresso, protezione dell'edge e gestione del traffico a livello globale, allo scopo di garantire la massima interoperabilità tra servizi Kubernetes e client esterni.

Nelle organizzazioni che hanno adottato un approccio DevOps, gli sviluppatori usano i microservizi per creare e distribuire applicazioni in modo rapido e iterativo. Le API rappresentano la modalità di comunicazione dei microservizi più diffusa.

Inoltre, uno sviluppo cloud moderno, incluso il modello serverless, dipende dalle API per il provisioning dell'infrastruttura. Un gateway API ti consente di implementare funzioni serverless e gestirle.

In generale, il ruolo delle API acquista maggiore importanza parallelamente alla crescente necessità di integrazione e interconnettività. L'aumento della complessità e dell'utilizzo di un'API giustificano l'imprescindibilità di un gateway API.

Red Hat offre soluzioni di gestione API complete, ottimizzate, modulari ed esclusivamente open source, che utilizzano standard open e sono disponibili on premise, nel cloud o in ambienti ibridi. Grazie all'impegno di Red Hat nell'open source e al suo modello di sviluppo unico, le soluzioni Red Hat vengono sottoposte a test accurati da parte di una community diversificata: ingegneri Red Hat, clienti, provider di hardware e software indipendenti e partner. Red Hat offre due soluzioni per la gestione delle API:

  • Red Hat OpenShift API Management, un servizio di gestione delle API in hosting e gestito, distribuito come componente aggiuntivo di Red Hat OpenShift Dedicated, un servizio completamente gestito della piattaforma di applicazioni Kubernetes enterprise Red Hat OpenShift.
  • Red Hat® 3scale API Management, una piattaforma di gestione delle API che rende semplice condividere, proteggere, distribuire, controllare e monetizzare le tue API. 3scale API Management offre scalabilità e supporta l'architettura ibrida: on premise, nel cloud o in una combinazione dei due.

Approfondisci

Articolo

Cos'è un'API?

API è l'abbreviazione di interfaccia di programmazione delle applicazioni (application programming interface), un insieme di definizioni e protocolli per la creazione e l'integrazione di software applicativi.

Articolo

Cos'è un gateway API?

Un gateway API è uno strumento di gestione delle interfacce di programmazione delle applicazioni (API) che si situa tra un client e una raccolta di servizi back end.

Articolo

Perché rivolgersi a Red Hat per la gestione delle API

Le soluzioni API di Red Hat rendono l'infrastruttura informatica agile e riutilizzabile, anche grazie all'interfaccia di gestione che consente di misurare e monitorare tecnologie e processi sfruttandone la scalabilità.

Scopri di più sulle API