Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Soluzioni API su Google Cloud Platform

By Kefeng DengOct 18, 20226 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

Come scegliere una soluzione API centralizzata per le Sue applicazioni Google Cloud? Mettiamo a confronto ApigeeX, Cloud Endpoints e API Gateway per aiutarLa a fare la scelta giusta.

Cloud Endpoints, API Gateway e ApigeeX a confronto

Da quando sono entrato in DoiT International come senior cloud architect, i clienti mi chiedono spesso come scegliere una soluzione API centralizzata su GCP per le proprie applicazioni. Lasciando da parte il prodotto enterprise ApigeeX, tra Cloud Endpoints e API Gateway quale conviene scegliere? E qual è la differenza principale tra le due soluzioni?

All'inizio del 2017 Google ha annunciato la disponibilità generale di Cloud Endpoints, caratterizzato da un proxy locale al server costruito sugli stessi servizi. Inizialmente Cloud Endpoints si appoggiava all'Extensible Service Proxy (ESP) V1, un data plane basato su nginx, per supportare l'ambiente flessibile di AppEngine, GCE e GKE. Nel 2019 Google ha rilasciato ESP v2, basato su Envoy, per supportare un numero maggiore di servizi serverless come Cloud Function, Cloud Run e l'ambiente standard di AppEngine. Sebbene ESP v1 sia ormai considerato superato, supporta ancora AppEngine Flexible e la configurazione personalizzata di Nginx, cosa che ESP v2 non fa.

Inoltre, dato che Cloud Endpoints è un servizio di gestione API distribuito e auto-gestito con diverse voci a pagamento, Google ha rilasciato un altro servizio di gestione API, API Gateway, che per certi aspetti può essere visto come un'evoluzione di Cloud Endpoints.

Google offre Apigee anche in diverse varianti gestite, tra cui ApigeeX, ospitato su Google Cloud, e ApigeeEdge, ospitato su Apigee Cloud.

In questo articolo Le spiegherò come orientarsi nella scelta della soluzione API più adatta.

Protocolli supportati

Quali protocolli Le servono? È la prima domanda da porsi.

La specifica OpenAPI consente di definire l'API proxy in tutte e tre le piattaforme. Tutte supportano infatti API HTTPS RESTful e, allo stesso modo, gRPC.

Se invece ha bisogno di WebSocket o SOAP, ApigeeX è l'unica piattaforma percorribile.

Integrazione con i servizi di backend

Cloud Endpoints, API Gateway e ApigeeX possono integrarsi con i servizi di Google Cloud Platform come Cloud Functions, Cloud Run, GKE e AppEngine, oltre che con funzioni e servizi non Google, ad esempio AWS Lambda, Azure Functions e servizi API on-premise.

ApigeeX resta però l'unica scelta possibile se il backend utilizza SOAP. ApigeeX è in grado di generare un'interfaccia RESTful per il servizio SOAP di backend, permettendoLe di esporre un servizio SOAP come API proxy. Supporta inoltre una modalità pass-through che inoltra la richiesta SOAP in arrivo direttamente al servizio di backend.

Un'altra funzionalità interessante di ApigeeX è il supporto degli script personalizzati: consente di implementare funzioni custom in JavaScript e di distribuirle sul portale ApigeeX. All'interno di questi script si può accedere all'oggetto DOM della pagina del portale tramite l'evento JavaScript `onLoad` quando l'utente arriva sulla pagina e tramite l'evento JavaScript `onUnload` quando l'utente la abbandona.

Al momento della stesura di questo articolo, sia Cloud Endpoints sia ApigeeX supportano i nomi di dominio personalizzati. Anche API Gateway supporta i domini personalizzati, ma la funzione è ancora in preview.

Sicurezza

Le chiavi API sono la soluzione standard per proteggere le API. Cloud Endpoints, API Gateway e ApigeeX supportano tutti l'autenticazione tramite chiave API.

Trattandosi inoltre di servizi gestiti da Google, supportano anche l'autenticazione tramite service account. (L'autenticazione tramite service account utilizza la chiave privata del service account per firmare un JWT sicuro e invia le richieste API con il JWT firmato).

Oltre a questi due metodi, Cloud Endpoints supporta l'autenticazione Firebase e Auth0, mentre ApigeeX supporta OAuth2.

Vale la pena ricordare che tutte e tre le soluzioni di gestione API possono essere protette con un rate limit, così da regolare il traffico tra le API e i servizi di backend e prevenire attacchi DOS sulle Sue applicazioni.

Monitoraggio

Tutte e tre le soluzioni API si monitorano facilmente su Google Cloud Platform.

Cloud Endpoints mette a disposizione un portale per creare un developer portal, all'interno del quale è possibile anche tenere sotto controllo log e metriche. API Gateway offre una dashboard con grafici più dettagliati per spiegare picchi, cali o attività anomale e consente di approfondire l'analisi tramite la tabella dei metodi.

In quanto piattaforma API di livello enterprise, ApigeeX fornisce una dashboard di monitoraggio che mostra tutte le metriche di esecuzione sia a livello di integrazione sia di task. È inoltre semplice configurare avvisi di vario tipo in ApigeeX.

Costi

Sia Cloud Endpoints sia API Gateway prevedono un free tier per un determinato numero di chiamate API: se le chiamate mensili restano sotto quella soglia, non vi è alcun addebito. Tuttavia, poiché Cloud Endpoints richiede l'esecuzione di un endpoints runtime in un servizio Google per inoltrare le richieste in arrivo, il servizio Google che ospita l'ambiente di runtime comporta costi aggiuntivi rispetto a quelli dei servizi API.

ApigeeX prevede un'opzione di valutazione che consente di distribuire e provare la piattaforma. Al termine della valutazione è necessario passare a un piano a pagamento. Se le Sue API gestiscono un numero ridotto di richieste, può optare per il piano pay-as-you-go, che non richiede impegni anticipati e prevede addebiti basati sul solo utilizzo. In alternativa, può sottoscrivere un abbonamento commerciale qualora siano necessari più ambienti per gestire volumi di richieste molto elevati.

In sintesi, ApigeeX è la soluzione API più costosa, API Gateway è una buona alternativa per scenari di larga scala, mentre Cloud Endpoints risulta più conveniente sui volumi ridotti.

Riepilogo

Cloud Endpoints e API Gateway sono piattaforme di gestione API leggere, con funzionalità analoghe, adatte alla maggior parte degli scenari. API Gateway è un servizio relativamente recente in GCP e alcune funzionalità, come il supporto dei domini personalizzati, sono ancora in preview.

La soluzione enterprise ApigeeX offre funzionalità complete, ma a un prezzo più elevato.

Cloud Endpoints

SaaS

Parziale

Prezzo

Free Tier + costo del runtime

Supporto servizi backend GCP interni

Supporto servizi backend pubblici non GCP

Protocolli supportati

HTTPS / gRPC

Supporto CORS

Dominio personalizzato

Modellazione, accesso e conversione dei messaggi

No

Autenticazione

API Key / autenticazione Firebase / Auth0 / Google ID Token / Google Service Account / autenticazione personalizzata

Specifica OpenAPI

Supporto della documentazione

Scarso

API Gateway

SaaS

Prezzo

Free Tier

Supporto servizi backend GCP interni

Supporto servizi backend pubblici non GCP

Protocolli supportati

HTTPS / gRPC

Supporto CORS

No

Dominio personalizzato

Preview

Modellazione, accesso e conversione dei messaggi

No

Autenticazione

API Key / Google Service Account

Specifica OpenAPI

Supporto della documentazione

Scarso

Apigee

SaaS

Prezzo

Pay-as-you-go, abbonamenti commerciali

Supporto servizi backend GCP interni

No

Supporto servizi backend pubblici non GCP

Protocolli supportati

HTTPS / gRPC / WebSocket

Supporto CORS

Dominio personalizzato

Modellazione, accesso e conversione dei messaggi

Autenticazione

API Key / OAuth

Specifica OpenAPI

Supporto della documentazione

Buono

Cloud Endpoints

API Gateway

Apigee

SaaS

Parziale

Prezzo

Free Tier + costo del runtime

Free Tier

Pay-as-you-go, abbonamenti commerciali

Supporto servizi backend GCP interni

No

Supporto servizi backend pubblici non GCP

Protocolli supportati

HTTPS / gRPC

HTTPS / gRPC

HTTPS / gRPC / WebSocket

Supporto CORS

No

Dominio personalizzato

Preview

Modellazione, accesso e conversione dei messaggi

No

No

Autenticazione

API Key / autenticazione Firebase / Auth0 / Google ID Token / Google Service Account / autenticazione personalizzata

API Key / Google Service Account

API Key / OAuth

Specifica OpenAPI

Supporto della documentazione

Scarso

Scarso

Buono