Presentazione di InterSystems API Manager (+ webinar)

Abbiamo recentemente rilasciato InterSystems API Manager (IAM), un nuovo componente della piattaforma dati InterSystems IRIS che fornisce visibilità, controllo e gestione del traffico API web attraverso l'infrastruttura IT.

In questo articolo ti mostrerò come configurare IAM e ti mostrerò alcune delle numerose funzionalità a tua disposizione con IAM. InterSystems API Manager ti consente di:

  • Monitora l'API, scopri chi utilizza l'API, quali API sono le più popolari e quali richiedono miglioramenti.
  • Controlla chi utilizza l'API e limita l'utilizzo dell'API da semplici restrizioni di accesso a restrizioni basate su richiesta: hai un controllo personalizzabile e puoi rispondere rapidamente ai cambiamenti dei modelli di consumo delle API.
  • Proteggi le API utilizzando meccanismi di sicurezza centralizzati come OAuth2.0, LDAP o Key Token Authentication.
  • Semplifica le cose per gli sviluppatori di terze parti e offri loro un'esperienza API superiore aprendo un portale per sviluppatori dedicato.
  • Scala l'API e garantisci una latenza di risposta minima.

La gestione delle API è essenziale per la transizione verso l'architettura SOA o microservizi, semplificando l'integrazione tra singoli (micro)servizi e rendendoli disponibili a tutti i consumatori esterni e interni. Di conseguenza, le nuove API diventano più facili da creare, mantenere e utilizzare.

Se stai già utilizzando InterSystems IRIS, puoi aggiungere l'opzione IAM alla tua licenza. L'opzione IAM è gratuita per i clienti InterSystems IRIS, ma è necessario richiedere una nuova chiave di licenza a InterSystems per iniziare a utilizzare IAM.

Se non stai ancora utilizzando InterSystems IRIS e hai intenzione di provare InterSystems API Manager, contatta InterSystems.

Guida introduttiva e installazione

I clienti InterSystems possono scaricare la distribuzione IAM dal sito web WRC sezione "Distribuzione software" ed eseguirlo come contenitore Docker. Requisiti minimi di sistema:

Inizialmente, devi scaricare l'immagine Docker (Importante! L'archivio con WRC non è un'immagine Docker, devi decomprimerlo, c'è un'immagine Docker all'interno):

docker load -i iam_image.tar

Questo comando renderà l'immagine IAM disponibile per un utilizzo successivo sul tuo server. IAM viene eseguito come contenitore separato, quindi puoi scalarlo indipendentemente da InterSystems IRIS. L'esecuzione di IAM richiede l'accesso a InterSystems IRIS per scaricare una licenza.

Configura InterSystems IRIS:

  • Abilita l'applicazione web /api/IAM
  • Abilita utente IAM
  • Cambia password utente IAM

Ora avviamo il contenitore IAM. Nell'archivio troverai gli script iam-setup per Windows e Unix (e Mac). Questi script ti aiuteranno a impostare correttamente le variabili di ambiente, consentendo al contenitore IAM di stabilire una connessione con InterSystems IRIS. Ecco un esempio dello script in esecuzione su Mac:

source ./iam-setup.sh 
Welcome to the InterSystems IRIS and InterSystems API Manager (IAM) setup script.
This script sets the ISC_IRIS_URL environment variable that is used by the IAM container to get the IAM license key from InterSystems IRIS.
Enter the full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
Enter the IP address for your InterSystems IRIS instance. The IP address has to be accessible from within the IAM container, therefore, do not use "localhost" or "127.0.0.1" if IRIS is running on your local machine. Instead use the public IP address of your local machine. If IRIS is running in a container, use the public IP address of the host environment, not the IP address of the IRIS container. xxx.xxx.xxx.xxx               
Enter the web server port for your InterSystems IRIS instance: 52773
Enter the password for the IAM user for your InterSystems IRIS instance: 
Re-enter your password: 
Your inputs are:
Full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
IP address for your InterSystems IRIS instance: xxx.xxx.xxx.xxx
Web server port for your InterSystems IRIS instance: 52773
Would you like to continue with these inputs (y/n)? y
Getting IAM license using your inputs...
Successfully got IAM license!
The ISC_IRIS_URL environment variable was set to: http://IAM:****************@xxx.xxx.xxx.xxx:52773/api/iam/license
WARNING: The environment variable is set for this shell only!
To start the services, run the following command in the top level directory: docker-compose up -d
To stop the services, run the following command in the top level directory: docker-compose down
URL for the IAM Manager portal: http://localhost:8002

Come puoi vedere, il nome completo dell'immagine, l'indirizzo IP, la porta IRIS InterSystems e la password per l'utente IAM sono tutto ciò che ti serve per iniziare.

Invece di eseguire uno script, puoi impostare manualmente le variabili di ambiente:

ISC_IAM_IMAGE=intersystems/iam:0.34-1-1
ISC_IRIS_URL=http://IAM:<PASS>@<IP>:<PORT>/api/iam/license

Запуск

Ora avviamo IAM eseguendo il comando:

docker-compose up -d

Questo comando organizza i contenitori IAM e garantisce che tutto funzioni correttamente. Lo stato dei contenitori viene controllato utilizzando il comando:

docker ps

Apri l'interfaccia di amministrazione nel tuo browser localhost:8002.

Presentazione di InterSystems API Manager (+ webinar)

Per ora è vuoto perché è un nodo completamente nuovo. Cambiamo la situazione. IAM supporta il concetto di spazi di lavoro per dividere le API in moduli e/o comandi. Vai all'area di lavoro "predefinita" che utilizzeremo per i nostri esperimenti.

Presentazione di InterSystems API Manager (+ webinar)

Il numero di richieste per questo spazio di lavoro è ancora pari a zero, ma potrai farti un'idea dei concetti base di IAM nel menu a sinistra. I primi due elementi: Servizi e Percorsi sono i più importanti:

  • Il servizio è l'API a cui vogliamo fornire accesso ai consumatori. Pertanto l'API REST in InterSystems IRIS è un servizio, così come lo è ad esempio l'API di Google se si desidera utilizzarla.
  • Il percorso decide a quale servizio devono essere inoltrate le richieste in entrata. Ogni Percorso ha una serie specifica di condizioni e, se soddisfatte, la richiesta viene inviata al Servizio corrispondente. Ad esempio, una route può corrispondere a IP, dominio del mittente, metodi HTTP, parti di un URI o una combinazione di questi esempi.

Servizio

Creiamo un servizio InterSystems IRIS, con i seguenti valori:

Campo
Valore
descrizione

Nome
iris
Nome di Servizio

host
IP
Host o IP del server InterSystems IRIS

porto
52773
Porta web del server InterSystems IRIS

sentiero
/api/atelier
Percorso della radice

protocollo
http
protocollo

Lasciare i valori rimanenti come predefiniti. Fare clic sul pulsante Create e annotare l'ID del Servizio creato.

percorso

Ora creiamo un percorso:

Campo
Valore
descrizione

sentiero
/api/atelier
Percorso della radice

protocollo
http
protocollo

servizio.id
guida da 3
Servizio (ID dal passaggio precedente)

Lasciare i valori rimanenti come predefiniti. Fare clic sul pulsante Create e annotare l'ID del percorso creato. Per impostazione predefinita, IAM ascolta le richieste in entrata sulla porta 8000. Ora le richieste vengono inviate a http://localhost:8000 e a partire da /api/atelier vengono reindirizzati a InterSystems IRIS.

Test

Proviamo a creare una richiesta in un client REST (sto usando Postino).

Presentazione di InterSystems API Manager (+ webinar)

Inviamo una richiesta GET a http://localhost:8000/api/atelier/ (non dimenticare / alla fine) e ricevere una risposta da InterSystems IRIS. Ogni richiesta passa attraverso IAM che raccoglie le metriche:

  • Codice di stato HTTP.
  • Delay.
  • Monitoraggio (se configurato).

Ho fatto qualche altra richiesta (tra cui due richieste ad endpoint inesistenti come /api/atelier/est/), i risultati sono subito visibili nella dashboard:

Presentazione di InterSystems API Manager (+ webinar)

Lavorare con i plugin

Ora che abbiamo configurato un percorso, possiamo gestire la nostra API. Possiamo aggiungere funzionalità che completeranno il nostro servizio.

Il modo più comune per modificare il comportamento di un'API è aggiungere un plug-in. I plug-in isolano le singole funzionalità e possono essere connessi a IAM a livello globale o solo a singole entità, come un utente (gruppo di utenti), un servizio o un percorso. Inizieremo aggiungendo il plug-in Rate Limiting al percorso. Per stabilire una connessione tra il plugin e il percorso, abbiamo bisogno di un identificatore univoco (ID) del percorso.

Limitare il numero di richieste

Fai clic su Plugin nel menu della barra laterale sinistra. Puoi vedere tutti i plugin attivi in ​​questa schermata, ma poiché questo server IAM è nuovo, non ci sono ancora plugin attivi. Quindi procedi al passaggio successivo facendo clic su “Nuovo plugin”.

Il plugin di cui abbiamo bisogno si trova nella categoria "Controllo del traffico" e si chiama "Rate Limiting". Selezionalo. Ci sono alcune impostazioni che puoi impostare qui, ma a noi interessano solo due campi:

Campo
Valore
descrizione

percorso_id
ID
Identificativo del percorso

config.minuto
5
Numero di richieste al minuto

È tutto. Il plugin è configurato e attivo. Tieni presente che possiamo scegliere diversi intervalli di tempo, come un minuto, un'ora o un giorno. Le impostazioni possono essere combinate (ad esempio 1000 richieste all'ora e contemporaneamente 100 richieste al minuto). Ho scelto i minuti perché semplifica il controllo della funzionalità del plug-in.

Se invii nuovamente la stessa richiesta in Postman, vedrai che la risposta viene restituita con 2 intestazioni aggiuntive:

  • XRateLimit-Limite-minuto: 5
  • XRateLimit-minuti-rimanenti: 4

Questo dice al client che può effettuare fino a 5 richieste al minuto e può effettuare altre 4 richieste nella fascia oraria corrente.

Presentazione di InterSystems API Manager (+ webinar)

Se effettui la stessa richiesta più e più volte, alla fine esaurirai la quota disponibile e riceverai invece un codice di stato HTTP 429 con il seguente corpo della risposta:

Presentazione di InterSystems API Manager (+ webinar)

Attendi un minuto e potrai inviare nuovamente le richieste.

Si tratta di un comodo meccanismo che consente di:

  • Proteggi il backend dai picchi di carico.
  • Spiega ai clienti quante richieste possono fare.
  • Monetizza l'API.

Puoi impostare valori per diversi intervalli di tempo e quindi livellare il traffico API per un determinato periodo di tempo. Supponiamo che tu consenta 600 richieste all'ora su un percorso particolare. In media ci sono 10 richieste al minuto. Ma nulla impedisce al cliente di completare tutte le 600 richieste nel primo minuto dell'ora. Forse questo è ciò di cui hai bisogno. Potresti voler ottenere un carico più uniforme nel corso di un'ora. Impostando il valore del campo config.minute Un valore pari a 20 garantisce che gli utenti effettuino non più di 20 richieste al minuto e 600 richieste all'ora. Ciò consente piccoli picchi su un intervallo di un minuto rispetto a un flusso medio completo di 10 richieste al minuto, ma gli utenti non possono utilizzare la quota oraria per un minuto. Ora avranno bisogno di almeno 30 minuti per utilizzare tutte le loro richieste. I client riceveranno intestazioni aggiuntive per ogni intervallo di tempo specificato, ad esempio:

Intestazione HTTP
Valore

X-RateLimit-Limite-ora
600

X-RateLimit-ore-rimanenti
595

X-RateLimit-Limite-minuto
20

X-RateLimit-minuti-rimanenti
16

Naturalmente, esistono molti modi diversi per configurare i limiti delle query a seconda di ciò che desideri ottenere.

risultati

Concludo qui, penso che ci sia abbastanza materiale per il primo articolo su InterSystems API Manager. Abbiamo utilizzato solo uno degli oltre 40 plugin. Ci sono molte altre cose interessanti che puoi fare con IAM:

  • Aggiungi un meccanismo di autenticazione centrale per tutte le tue API.
  • Ridimensiona il carico utilizzando un bilanciatore del carico su più servizi.
  • Aggiungi nuove funzionalità e correzioni di bug a un pubblico di prova prima di un aggiornamento completo.
  • Fornisci agli sviluppatori interni ed esterni un portale Web dedicato che documenta tutte le API.
  • Richieste nella cache per ridurre i tempi di risposta e ridurre il carico sul backend del sistema.

riferimenti

Webinar

Ti invitiamo al webinar “API Management con InterSystems API Management”, che si svolgerà il 21 novembre alle 10:00 ora di Mosca (GMT+3).
InterSystems API Manager (IAM) è un nuovo componente della piattaforma dati InterSystems IRIS che fornisce monitoraggio, controllo e gestione del traffico da/verso le API web all'interno dell'infrastruttura IT. Al webinar dimostreremo le funzionalità chiave di InterSystems API Management:

  • Strumenti di monitoraggio del traffico API.
  • Controlli del traffico API, incluso il controllo della larghezza di banda, la limitazione del numero di chiamate API, il mantenimento di elenchi di indirizzi IP consentiti e negati, ecc.
  • Strumenti di configurazione della sicurezza API.
  • Portale per sviluppatori per la pubblicazione della documentazione API interattiva.
  • Unico punto di accesso all'API.

Il webinar è rivolto ad architetti, sviluppatori e amministratori di sistema.

È richiesta la registrazione!

Fonte: habr.com

Aggiungi un commento