Azure API Management: come ci aiuta a gestire le API aziendali

Azure API Management è una piattaforma di Microsoft progettata per aiutare le aziende a pubblicare, gestire, proteggere e monitorare le loro API e offre strumenti avanzati per creare gateway API che facilitano l'interazione tra i servizi backend e le applicazioni client, semplificando la distribuzione di API interne e pubbliche. Con le sue funzionalità di gestione, il servizio permette alle organizzazioni di ottimizzare l'esperienza degli sviluppatori, migliorare la sicurezza delle API e garantire un'integrazione fluida con l'ecosistema esistente. In questo articolo, daremo uno sguardo più da vicino a cos’è, come funziona e quali sono i piani messi a disposizione per usufruire di Azure API Management.

Cosa troverai in questo articolo

  • Azure API Management: un’introduzione
  • Cos’è una API e cosa si intende per API management
  • Azure API Management: come funziona?
  • Azure API Management vs. Application Gateway
  • Azure API Management Pricing: modello di prezzo e piani disponibili
Azure API Management: come ci aiuta a gestire le API aziendali

Azure API Management: un’introduzione

La transizione ai servizi basati su cloud da parte delle aziende e delle organizzazioni moderne apre una nuova modalità e necessità di pubblicazione e consumo dei dati, per abilitare nuovi servizi, esperienze digitali e applicazioni, sia per uso interno che esterno, il che porta a una crescente dipendenza dalle API.

Per affrontare questa situazione, è importante disporre di strumenti efficaci per gestire queste API e applicazioni e il loro intero ciclo di vita in modo più centralizzato e sicuro ed è qui che entra in gioco Azure API Management: il servizio completamente gestito da Microsoft che consente di creare, pubblicare e gestire le API per le proprie applicazioni.

API Management è un'offerta PaaS (Platform as a Service) che fornisce un modo sicuro per pubblicare e gestire le API create dai servizi di backend on-premise o basati su cloud e funge da strato intermedio tra le applicazioni di backend che contengono il codice dietro gli endpoint API e i consumatori degli endpoint API.

Ma come funziona? Quali sono i vantaggi che offre? Vediamolo nelle prossime sezioni.

Gestire le API aziendali nel cloud e in locale con Azure API Management

Cos’è una API e cosa si intende per API management

Prima di cominciare, prendiamoci un attimo per spiegare a chi non mastica troppo bene il linguaggio tecnico che cos’è nel pratico una API.

Una API, o Interfaccia di Programmazione delle Applicazioni (Application Programming Interface), è un insieme di regole e protocolli che permette a diverse applicazioni software di comunicare tra loro. Le API definiscono i metodi e i dati che gli sviluppatori possono utilizzare per interagire con un servizio, un sistema operativo o un'altra applicazione, senza bisogno di conoscere i dettagli interni di come il servizio è implementato.

Le API vengono utilizzate dagli sviluppatori software per diverse finalità, come ad esempio:

  1. Accesso a Servizi Web: Permettono di interagire con servizi web come social media, servizi di pagamento, mappe, ecc.
  2. Integrazione di Sistemi: Facilitano l'integrazione tra diverse applicazioni e sistemi, permettendo loro di condividere dati e funzionalità.
  3. Automazione di Processi: Consentono di automatizzare operazioni che altrimenti richiederebbero intervento manuale.
  4. Estendibilità del Software: Offrono agli sviluppatori la possibilità di estendere le funzionalità di un software attraverso plugin o moduli aggiuntivi.

Dato il modo in cui lo sviluppo software si è evoluto nel panorama contemporaneo, la comprensione e il corretto sviluppo di API sono diventati parte fondamentale del portfolio di esperienze per qualsiasi sviluppatore, a prescindere che egli lavori front-end o back-end.

Ma il lavoro dello sviluppatore non si ferma alla sola creazione dell’API e qualunque developer che abbia lavorato a un progetto sul web sa bene che, una volta completato lo sviluppo, sorgono altre attività necessarie per il corretto supporto del suddetto progetto.

Dopo la pubblicazione delle API, nel momento in cui cominciano a essere consumate, è infatti necessario iniziare a prendere alcune decisioni importanti: come farle scalare, come proteggerle, come analizzarne l’utilizzo per poter definire dei limiti sulla frequenza con cui è possibile chiamarle, quali API sono a uso interno e quali a uso esterno. Per non parlare poi dell’integrazione di elementi come sicurezza, logs e tante altre funzionalità direttamente nel codice dei propri servizi.

Una lunga serie di preoccupazioni questa che necessiterebbe di una soluzione completa per poter gestire tutti questi aspetti in modo efficace e sicuro, come un sistema di gestione delle API (API Management), ovvero una piattaforma che facilita la creazione, la pubblicazione, la gestione e la protezione delle API all'interno di un'organizzazione.

Questi sistemi offrono strumenti per definire e monitorare le interfacce API, applicare politiche di sicurezza e controllo accessi, gestire la documentazione e le chiavi di accesso, e monitorare le prestazioni e l'uso delle API oltre a funzionalità per scalare il servizio e garantirne la qualità, come il caching, il bilanciamento del carico e la gestione degli errori.

Sai che aiutiamo i nostri clienti nella gestione dei loro tenant Azure?

Abbiamo creato il team Infra&Security, verticale sul cloud Azure, per rispondere alle esigenze dei clienti che ci coinvolgono nelle decisioni tecniche e strategiche. Oltre a configurare e gestire il loro tenant, ci occupiamo di:

  • ottimizzare i costi delle risorse
  • implementare procedure di scaling e high availability
  • creare deployment applicativi tramite le pipeline di DevOps
  • monitoring
  • e soprattutto security!

Con Dev4Side, hai un partner affidabile in grado di supportarti sull'intero ecosistema applicativo di Microsoft.

Azure API Management: come funziona?

Qui, entra in scena Azure API Management. Come già accennato nella nostra introduzione, il servizio consente a developer e aziende di sviluppare, pubblicare, proteggere, monitorare e gestire le API con un unico sistema, semplificando ogni fase del ciclo di vita delle API, dalla progettazione al monitoraggio.

Il servizio, che astrae tutta l'architettura e la complessità del backend per facilitarne l’uso per i consumatori, consente di utilizzare un singolo endpoint HTTPS per accedere a tutte le API che si trovano dietro di esso.

I developer, utilizzando API Management, saranno in grado di gestire le API indipendentemente da dove sono ospitate, siano essi ambienti on-premise o cloud e il servizio offre una piattaforma integrata che garantisce una governance e prestazioni uniformi, estremamente vantaggiose per strategie multi-cloud e cloud ibrido permettendo l’implementazione delle proprie API attraverso diverse configurazioni infrastrutturali.

Inoltre, mette a disposizione strumenti per monitorare le prestazioni delle API, raccogliere log, e analizzare l'uso delle API tramite Azure Monitor e Azure Application Insights che possono aiutare gli sviluppatori a identificare possibili problemi di prestazioni e a ottimizzare l'uso delle API.

Possiamo suddividere API Management in tre componenti principali di cui diamo una breve descrizione nell’elenco qui sotto:

  • API Gateway: il primo punto di contatto per ogni richiesta e funge da facciata che instrada la richiesta al backend corretto. Fornisce inoltre il modo necessario per centralizzare e avere una configurazione coerente per la sicurezza, la memorizzazione nella cache, il throttling (la limitazione intenzionale della velocità di trasferimento dei dati su una rete, spesso per gestire la congestione o per imporre politiche di utilizzo equo tra gli utenti) e il routing (il processo di determinazione del percorso che i pacchetti di dati devono seguire attraverso una rete per raggiungere la loro destinazione). Applica le diverse politiche centralizzate per le quote di utilizzo e i limiti, verificando i token JWT e i token API, e così via.
  • Piano di gestione: offre pieno accesso alle capacità del servizio. È l'interfaccia di gestione delle risorse sul portale di Azure che può essere utilizzata anche mediante interfacce a riga di comando come Powershell, Azure CLI, ecc.
  • Portale per sviluppatori: un portale globale personalizzabile dove è possibile esplorare tutte le API disponibili, verificare la loro documentazione e imparare come integrarle e utilizzarle.

Azure API Management funziona quindi fornendo uno strato tra i client delle API e i servizi API back-end a cui accedono. Quando un client invia una richiesta a una API gestita da API Management, la richiesta viene prima inviata al gateway di API Management.

Il gateway è responsabile dell'applicazione delle politiche di sicurezza, della limitazione della velocità e di altre politiche sull'API. Se la richiesta è consentita dal gateway, viene quindi inoltrata al servizio API back-end. Il servizio API back-end elabora la richiesta e invia una risposta al gateway di API Management, che a sua volta invia la risposta al client.

Parlando di politiche di sicurezza, Azure API Management fornisce vari meccanismi per proteggere le API, come autenticazione e autorizzazione tramite OAuth 2.0, JWT (JSON Web Tokens), chiavi API e altre tecniche di sicurezza. Inoltre, offre la possibilità di configurare il controllo degli accessi per garantire che solo gli utenti autorizzati possano accedere alle API.

Per capire meglio quali sono le funzionalità del servizio, vediamo come può aiutare i tre tipi di utenti a cui si rivolge.

Panoramica dei componenti di Azure API Management

API consumer

L'API consumer è l'utente dell'API che può essere un altro sviluppatore o un'applicazione che integra e utilizza le funzionalità esposte dall'API provider. Questi utenti usano le API per accedere ai servizi, ai dati o alle funzionalità offerte dall'API provider, costruendo applicazioni o servizi che dipendono da queste interfacce per funzionare correttamente.

Per i consumatori di API, Azure API Management fornisce un modo conveniente per accedere e utilizzare le API gestite dal servizio. Quando un consumatore di API vuole utilizzare un'API gestita dal servizio deve solitamente seguire questi passaggi:

  • Trovare l'API: Il consumatore può scoprire l'API navigando nel portale per sviluppatori, un portale web fornito da API Management che elenca tutte le API disponibili. Il consumatore può anche utilizzare l'API REST di API Management per scoprire le API in modo programmatico.
  • Ottenere le credenziali API: Per utilizzare un'API, il consumatore deve generalmente fornire una forma di credenziali, come una chiave API o un token OAuth. Il consumatore può ottenere queste credenziali iscrivendosi a un account API Management e creando un'applicazione nel portale per sviluppatori.
  • Inviare una richiesta: Il consumatore può quindi inviare una richiesta all'API effettuando una richiesta HTTP al gateway di API Management, utilizzando l'endpoint dell'API e le credenziali API. La richiesta viene inoltrata al servizio API back-end, che elabora la richiesta e invia una risposta al gateway di API Management.
  • Ricevere una risposta: Il gateway di API Management invia quindi la risposta al consumatore. Se la richiesta è andata a buon fine, la risposta includerà i dati o le funzionalità richieste. Se c'è stato un errore, la risposta includerà un codice di errore e un messaggio.

API provider

L'API provider è l'entità che sviluppa e mette a disposizione l'API, definendo le sue funzionalità, i punti di accesso e la documentazione necessaria per il suo utilizzo.

Per i fornitori di API, Azure API Management offre un insieme di strumenti e servizi per costruire, pubblicare e gestire le API. Quando un fornitore di API vuole utilizzare API Management per gestire le proprie API si ritrova generalmente a seguire i passaggi elencati qui:

  • Creare un'istanza del servizio API Management: Il fornitore di API deve creare un'istanza del servizio API Management nel portale di Azure. Questo crea un ambiente API Management dedicato che il fornitore può utilizzare per gestire le proprie API.
  • Definire l'API: Il fornitore deve specificare l'endpoint dell'API, le operazioni supportate dall'API e i formati delle richieste e delle risposte. Il fornitore può utilizzare il portale API Management o l'API REST del servizio per definire l'API.
  • Configurare la sicurezza: Il fornitore configura la sicurezza per l'API specificando i metodi di autenticazione e autorizzazione che l'API utilizzerà. API Management supporta una varietà di metodi di autenticazione e autorizzazione, inclusi chiavi API, OAuth e certificati.
  • Impostare le politiche: Il fornitore può utilizzare le politiche per specificare regole e comportamenti per l'API. Ad esempio, il fornitore può utilizzare politiche per impostare limiti di velocità, trasformare richieste e risposte o memorizzare nella cache le risposte.
  • Pubblicare l'API: Il fornitore può rendere l'API disponibile nel portale per sviluppatori, permettendo agli sviluppatori di scoprire, apprendere e interagire con le API.

Application developer

Per gli sviluppatori di applicazioni, Azure API Management offre un modo conveniente per accedere e utilizzare le API nelle loro applicazioni, consentendo loro di fare quanto segue:

  • Accedere alla documentazione delle API: Il portale per sviluppatori fornisce una documentazione dettagliata per ciascuna API, inclusa l'informazione sull'endpoint dell'API, le operazioni supportate dall'API, i formati delle richieste e delle risposte, e qualsiasi parametro o intestazione richiesti. Gli sviluppatori possono utilizzare questa documentazione per comprendere come usare l'API e per risolvere eventuali problemi che possono sorgere.
  • Testare le API: Il portale per sviluppatori include anche una console di test integrata, che permette agli sviluppatori di inviare richieste di test all'API e visualizzare le risposte. Questo può essere utile per verificare che l'API funzioni come previsto e per effettuare il debug di eventuali problemi.
  • Eseguire analisi: API Management include una serie di strumenti per monitorare e analizzare l'uso delle API, le prestazioni e gli errori. Gli sviluppatori possono utilizzare questi strumenti per tracciare l'uso delle loro API, identificare eventuali problemi che potrebbero influire sulle prestazioni e raccogliere e analizzare i dati di utilizzo. Questo può essere utile per comprendere come vengono utilizzate le API e per identificare opportunità di ottimizzazione e miglioramento.

Azure API Management vs. Application Gateway

A causa della mole di servizi offerti da Azure, molti utenti e sviluppatori alle prime armi si ritrovano ad avere il problema comune del capire quale servizio è meglio di altri per soddisfare le proprie esigenze. Uno dei fraintendimenti più comuni è quello che vede API Management confuso con servizi che, seppur molto simili sulla carta, in realtà svolgono funzioni differenti e, per certi versi, complementari a quelle di API Management.

Uno degli esempi più eclatanti è quello di Azure Application Gateway, un servizio di bilanciamento del carico offerto da Microsoft Azure, progettato per gestire il traffico delle applicazioni web.

A differenza dei bilanciatori di carico tradizionali, che operano a livello di trasporto, l'Application Gateway funziona a livello applicativo, permettendo una gestione più avanzata e specifica delle richieste HTTP e HTTPS e include funzionalità come l'instradamento basato su URL, il bilanciamento del carico, la terminazione SSL/TLS, il Web Application Firewall (WAF) per proteggere le applicazioni da attacchi comuni, e l'integrazione con altri servizi Azure.

Abbiamo visto che Azure API Management fornisce un API Gateway, quindi perché introdurre una nuova risorsa che fa quasi lo stesso lavoro?

Perché, in primis, non fanno lo stesso lavoro. API Management, come abbiamo già visto, è progettato per gestire e pubblicare le API, offrendo funzionalità come la sicurezza, l'autenticazione, la gestione delle chiavi e il monitoraggio delle API e permette di controllare e ottimizzare come le API vengono utilizzate dagli sviluppatori e dalle applicazioni. Azure Application Gateway, invece, è un bilanciatore di carico basato su applicazioni che gestisce il traffico HTTP/HTTPS verso le proprie applicazioni web.

Panoramica di come funziona Application Gateway

Per utilizzare una metafora, si può immaginare API Management come il responsabile del servizio clienti di un ristorante e Application Gateway come il Maître. Il primo si preoccupa che i clienti possano ordinare facilmente, che le loro richieste siano trattate correttamente e che ci siano delle regole chiare su come gestire gli ordini speciali o le richieste di sicurezza. Il secondo si occupa invece di indirizzare i clienti ai tavoli disponibili, assicurandosi che il flusso dei clienti sia gestito in modo ordinato e che il ristorante non sia troppo affollato in una sola area.

In secondo luogo, chi ha detto che siano servizi mutualmente esclusivi?

Application Gateway offre infatti diverse funzionalità che, combinate con API Management, possono aggiungere un ulteriore livello di protezione e sicurezza per le proprie applicazioni sviluppate sulla piattaforma cloud di Microsoft. Per esempio:

  • Proteggere l'indirizzo IP pubblico di API Management.
  • Esporre selettivamente le API esterne e mantenere altre API come interne, permettendo di gestire applicazioni web complesse.
  • Il WAF (Web Application Firewall) può proteggere dalle vulnerabilità web più comuni, come SQL injection, cross-site scripting (XSS), HTTP request smuggling e altri tipi di minacce informatiche.

Utilizzando insieme questi due servizi, le organizzazioni possono creare una soluzione eccellente per la gestione delle loro API e applicazioni web, facilitando il lavoro dei loro sviluppatori nella creazione e gestione dei loro servizi e migliorando l'accesso e l'uso di questi servizi da parte dei consumatori.

Azure API Management Pricing: modello di prezzo e piani disponibili

il modello di pricing di Azure API Management si suddivide in diverse categorie e livelli che offrono vari piani a seconda delle necessità aziendali. Come per molti servizi cloud, il modello adottato per il pricing è quello del cosiddetto “pay-as-you-go”, ovvero si paga solo per le risorse che si consumano effettivamente.

I prezzi possono variare a seconda della regione e del tipo di servizio scelto e generalmente sono indicati per ora o per unità di risorsa. È quindi consigliabile consultare il sito ufficiale di Azure per le tariffe aggiornate e utilizzare il calcolatore dei costi per effettuare una stima personalizzata.

Azure API Management offre quattro principali piani di servizio. Il supporto varia a seconda del piano scelto, con i piani Premium che offrono supporto avanzato e accesso a risorse dedicate. Vediamoli un po’ più nel dettaglio nell’elenco qui sotto:

  • Developer: Questo piano è pensato per le fasi di sviluppo e test. Ha un costo più basso e fornisce tutte le funzionalità base senza SLA (Service Level Agreement) di uptime garantito. È ideale per l'uso in ambienti di sviluppo e test, ma non è consigliato per ambienti di produzione.
  • Basic: Offre un set di funzionalità limitato rispetto ai piani più avanzati ma è adatto per le piccole e medie imprese che necessitano di una soluzione di API Management senza le funzionalità avanzate. Include SLA e supporto di base.
  • Standard: Questo piano è progettato per le medie e grandi imprese e include tutte le funzionalità base, oltre a alcune avanzate come il supporto per più ambienti e la gestione avanzata delle API. Offre un SLA garantito e supporto tecnico.
  • Premium: Il piano Premium è destinato alle grandi imprese e alle organizzazioni che necessitano di funzionalità avanzate, come la connettività interna e l'accesso a reti virtuali (VNet). Include tutte le funzionalità degli altri piani, oltre a quelle specifiche dell’opzione come la possibilità di gestire API in ambienti globali e la scalabilità su larga scala.

Costruire applicazioni con un approccio API-first, con Azure API Management

Per tutti gli ambienti non di produzione, è consigliabile utilizzare il livello Developer, che supporta la maggior parte delle funzionalità a un costo contenuto. Bisogna essere consapevoli che nel livello Developer non viene fornito alcun SLA, non è disponibile la scalabilità e funziona in una sola regione. Inoltre, può elaborare un numero limitato di richieste API al secondo, sufficiente per carichi di lavoro non di produzione.

Per gli ambienti di produzione, è meglio utilizzare i livelli Basic, Standard o Premium. Questi livelli offrono un SLA adeguato che soddisfa i requisiti dei carichi di lavoro di produzione. Le differenze principali tra questi livelli sono:

  • Integrazione con Azure Active Directory: È supportata nei livelli Standard e Premium, ma non nel livello Basic. Se si prevede di utilizzare le identità gestite di AAD per l'autenticazione, non bisogna scegliere il livello Basic poiché non supporta l'integrazione con quest’ultimo.
  • Rete Virtuale: È supportata solo nel livello Premium. Se si prevede di utilizzare il proprio APIM esclusivamente per uso interno all'interno dell'organizzazione, o di ospitare sia API interne che esterne nella stessa istanza di APIM, bisogna optare per il livello Premium. Il livello Premium consente di ospitare la propria istanza APIM in una rete virtuale interna, esterna o senza rete virtuale.
  • Supporto multi-regione: Questo è supportato solo nel livello Premium, che consente di avere più istanze del proprio account APIM in diverse regioni. Il supporto multi-regione è ideale se si hanno clienti in tutto il mondo che inviano richieste API. In questo caso, è meglio prevedere più istanze APIM in diverse regioni per essere più vicini ai propri clienti. Altri livelli (Basic, Standard) possono scalare a più istanze, ma tutte le istanze APIM devono essere nella stessa regione.
  • Massimo numero di richieste al secondo (RPS): Questo è il numero massimo di richieste che la tua API può gestire al secondo. A volte può essere più efficiente avere più istanze in un livello inferiore piuttosto che un'istanza in un livello superiore. Ad esempio, un'istanza APIM nel livello Premium può elaborare solo 4.000 RPS, mentre 2 istanze APIM nel livello Standard possono elaborare 5.000 RPS a un prezzo molto inferiore, supponendo che non si necessiti di supporto per la rete virtuale e multi-regione.

Conclusioni

Avere un sistema di gestione delle API efficiente e sicuro dovrebbe essere una delle principali prerogative di ogni organizzazione che desidera avere un’infrastruttura digitale all’avanguardia e Azure API Management potrebbe essere la risposta a questa necessità.

La sua integrazione fluida con altri servizi della piattaforma Azure, la capacità di scalare in base al carico e la notevole varietà di strumenti per monitorare e ottimizzare le prestazioni delle API lo rendono uno strumento di grande valore per sviluppatori e architetti IT e la soluzione completa a tutte quelle problematiche con cui i developer si trovano a fare i conti dopo la pubblicazione delle loro API.

Non ci resta dunque che concludere la nostra panoramica invitandovi a provarlo per vedere se il servizio di API Management offerto dalla piattaforma cloud di Microsoft può rappresentare la risposta giusta anche alle vostre esigenze.

FAQ su Azure API Management

Cos'è Azure API Management?

Azure API Management è una piattaforma di Microsoft che consente alle organizzazioni di creare, pubblicare, gestire e proteggere le API, facilitando l'interazione tra i servizi di backend e le applicazioni client.

Come funziona Azure API Management?

Funziona come un intermediario tra i client API e i servizi di backend, gestendo compiti come la sicurezza, la gestione del traffico e il monitoraggio delle API.

Quali sono i componenti principali di Azure API Management?

I componenti principali includono il gateway API, il piano di gestione e il portale per sviluppatori.

In cosa si differenzia Azure API Management da Azure Application Gateway?

Azure API Management si concentra sulla gestione delle API, inclusa la sicurezza e il monitoraggio, mentre Azure Application Gateway gestisce principalmente il traffico web con funzioni come il bilanciamento del carico e la terminazione SSL.

Quali piani tariffari sono disponibili per Azure API Management?

I piani variano da Developer (per test) a Premium (per ambienti di produzione su larga scala), ciascuno con diverse funzionalità e livelli di supporto.

Scopri perché scegliere il team

Infra & Sec

Il team Infra & Security è verticale sulla gestione ed evoluzione dei tenant Microsoft Azure dei nostri clienti. Oltre a configurare e gestire il tenant, si occupa della creazione dei deployment applicativi tramite le pipelines di DevOps, monitora e gestisce tutti gli aspetti di sicurezza del tenant, supportando i Security Operations Centers (SOC).