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.
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.
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:
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.
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:
Con Dev4Side, hai un partner affidabile in grado di supportarti sull'intero ecosistema applicativo di Microsoft.
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:
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.
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:
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:
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:
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.
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:
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.
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:
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:
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.
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.
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.
I componenti principali includono il gateway API, il piano di gestione e il portale per sviluppatori.
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.
I piani variano da Developer (per test) a Premium (per ambienti di produzione su larga scala), ciascuno con diverse funzionalità e livelli di supporto.
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).