Presentació d'InterSystems API Manager (+ seminari web)

Recentment hem llançat InterSystems API Manager (IAM), un nou component de la plataforma de dades InterSystems IRIS que proporciona visibilitat, control i gestió del trànsit de l'API web a tota la infraestructura de TI.

En aquest article, us mostraré com configurar IAM i mostraré algunes de les moltes capacitats que teniu disponibles amb IAM. InterSystems API Manager us permet:

  • Superviseu l'API, entengueu qui utilitza l'API, quines API són les més populars i quines necessiten millorar.
  • Controleu qui utilitza l'API i limiteu l'ús de l'API des de simples restriccions d'accés fins a restriccions basades en sol·licituds: teniu un control personalitzat i podeu respondre ràpidament als canvis en els patrons de consum de l'API.
  • Assegureu les API mitjançant mecanismes de seguretat centralitzats com ara OAuth2.0, LDAP o l'autenticació de testimoni de clau.
  • Faciliteu-ho als desenvolupadors de tercers i proporcioneu-los una experiència d'API superior obrint un portal dedicat per a desenvolupadors.
  • Escaleu l'API i assegureu-vos una latència de resposta mínima.

La gestió d'API és essencial per a la transició a l'arquitectura SOA o de microserveis, simplificant la integració entre (micro)serveis individuals, posant-los a disposició de tots els consumidors externs i interns. Com a resultat, les noves API són més fàcils de crear, mantenir i consumir.

Si ja esteu utilitzant InterSystems IRIS, podeu afegir l'opció IAM a la vostra llicència. L'opció IAM és gratuïta per als clients d'InterSystems IRIS, però heu de sol·licitar una nova clau de llicència a InterSystems per començar a utilitzar IAM.

Si encara no feu servir InterSystems IRIS i teniu previst provar InterSystems API Manager, poseu-vos en contacte amb InterSystems.

Primers passos i instal·lació

Els clients d'InterSystems poden descarregar la distribució IAM des del lloc web CMR secció "Distribució de programari" i s'executa com a contenidor Docker. Requisits mínims del sistema:

Inicialment, heu de descarregar la imatge de Docker (Important! L'arxiu amb WRC no és una imatge de Docker, l'heu de desempaquetar, hi ha una imatge de Docker a dins):

docker load -i iam_image.tar

Aquesta ordre farà que la imatge IAM estigui disponible per al seu ús posterior al servidor. IAM s'executa com un contenidor independent, de manera que podeu escalar-lo independentment d'InterSystems IRIS. L'execució d'IAM requereix accés a InterSystems IRIS per descarregar una llicència.

Configura InterSystems IRIS:

  • Habiliteu l'aplicació web /api/IAM
  • Habilita l'usuari IAM
  • Canviar la contrasenya d'usuari IAM

Ara comencem el contenidor IAM. A l'arxiu hi trobareu guions iam-setup per a Windows i Unix (i Mac). Aquests scripts us ajudaran a establir les variables d'entorn correctament, permetent que el contenidor IAM estableixi una connexió amb InterSystems IRIS. Aquí teniu un exemple de l'script que s'executa a 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

Com podeu veure, el nom complet de la imatge, l'adreça IP, el port IRIS d'InterSystems i la contrasenya per a l'usuari IAM són tot el que necessiteu per començar.

En lloc d'executar un script, podeu establir les variables d'entorn manualment:

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

Запуск

Ara iniciem IAM executant l'ordre:

docker-compose up -d

Aquesta ordre organitza els contenidors IAM i assegura que tot funcioni correctament. L'estat dels contenidors es comprova mitjançant l'ordre:

docker ps

Obriu la interfície d'administració al vostre navegador localhost:8002.

Presentació d'InterSystems API Manager (+ seminari web)

De moment està buit perquè és un node completament nou. Canviem-ho. IAM admet el concepte d'espais de treball per dividir les API en mòduls i/o ordres. Aneu a l'espai de treball "predeterminat" que utilitzarem per als nostres experiments.

Presentació d'InterSystems API Manager (+ seminari web)

El nombre de sol·licituds per a aquest espai de treball encara és zero, però tindreu una idea dels conceptes bàsics d'IAM al menú de l'esquerra. Els dos primers elements: Serveis i Rutes són els més importants:

  • El servei és l'API a la qual volem proporcionar accés als consumidors. Així, l'API REST d'InterSystems IRIS és un Servei, com ho és, per exemple, l'API de Google si el voleu utilitzar.
  • La Ruta decideix a quin servei s'han de reenviar les sol·licituds entrants. Cada Ruta té un conjunt de condicions concretes, i si es compleixen, la sol·licitud s'envia al Servei corresponent. Per exemple, una ruta pot coincidir amb la IP, el domini del remitent, els mètodes HTTP, les parts d'un URI o una combinació d'aquests exemples.

Servei

Creem un servei InterSystems IRIS, amb els valors següents:

Camp
Valor
Descripció

nom
Sant Martí
Nom del servei

host
IP
Amfitrió o ip del servidor InterSystems IRIS

port
52773
Port web del servidor IRIS d'InterSystems

camí
/api/atelier
Ruta arrel

protocol
http
Protocol

Deixeu els valors restants per defecte. Feu clic al botó Create i anoteu l'ID del Servei creat.

Ruta

Ara creem una ruta:

Camp
Valor
Descripció

camí
/api/atelier
Ruta arrel

protocol
http
Protocol

servei.id
guia a partir de 3
Servei (ID del pas anterior)

Deixeu els valors restants per defecte. Feu clic al botó Create i anota l'ID de la Ruta creada. De manera predeterminada, IAM escolta les sol·licituds entrants al port 8000. Ara les sol·licituds s'envien a http://localhost:8000 i començant per /api/atelier es redirigien a InterSystems IRIS.

Proves

Provem de crear una sol·licitud en un client REST (estic utilitzant Carter).

Presentació d'InterSystems API Manager (+ seminari web)

Enviem una sol·licitud GET a http://localhost:8000/api/atelier/ (no oblidis / al final) i rebeu una resposta d'InterSystems IRIS. Cada sol·licitud passa per IAM que recull mètriques:

  • Codi d'estat HTTP.
  • Retard.
  • Monitorització (si està configurada).

Vaig fer unes quantes sol·licituds més (incloses dues sol·licituds a punts finals inexistents com ara /api/atelier/est/), els resultats són immediatament visibles al tauler:

Presentació d'InterSystems API Manager (+ seminari web)

Treballant amb plugins

Ara que tenim una ruta configurada, podem gestionar la nostra API. Podem afegir característiques que complementaran el nostre servei.

La manera més habitual de canviar el comportament d'una API és afegir un connector. Els connectors aïllen les funcionalitats individuals i es poden connectar a IAM de manera global o només a entitats individuals, com ara un usuari (grup d'usuaris), un servei o una ruta. Començarem afegint el connector Rate Limiting a la ruta. Per establir una connexió entre el connector i la ruta, necessitem un identificador únic (ID) de la ruta.

Limitació del nombre de peticions

Feu clic a Connectors al menú de la barra lateral esquerra. Podeu veure tots els connectors actius en aquesta pantalla, però com que aquest servidor IAM és nou, encara no hi ha cap connector actiu. Per tant, aneu al següent pas fent clic a "Nou connector".

El connector que necessitem es troba a la categoria "Control de trànsit" i s'anomena "Limitació de tarifes". Seleccioneu-lo. Hi ha bastants configuracions que podeu configurar aquí, però només ens preocupem per dos camps:

Camp
Valor
Descripció

ruta_id
ID
ID de ruta

config.minut
5
Nombre de peticions per minut

Això és tot. El connector està configurat i actiu. Tingueu en compte que podem triar diferents intervals de temps, com ara un minut, una hora o un dia. Els paràmetres es poden combinar (per exemple, 1000 peticions per hora i alhora 100 peticions per minut). Vaig triar minuts perquè és fàcil comprovar la funcionalitat del connector.

Si torneu a enviar la mateixa sol·licitud a Postman, veureu que la resposta es retorna amb 2 capçaleres addicionals:

  • XRateLimit-Limit-minut: 5
  • XRateLimit-Minut restant: 4

Això indica al client que pot fer fins a 5 sol·licituds per minut i que pot fer 4 sol·licituds més en la franja horària actual.

Presentació d'InterSystems API Manager (+ seminari web)

Si feu la mateixa sol·licitud una i altra vegada, acabareu esgotant la quota disponible i rebreu un codi d'estat HTTP de 429 amb el següent cos de resposta:

Presentació d'InterSystems API Manager (+ seminari web)

Espereu un minut i podreu tornar a enviar sol·licituds.

Aquest és un mecanisme convenient que us permet:

  • Protegiu el backend de les pujades de càrrega.
  • Digues als clients quantes sol·licituds poden fer.
  • Monetitzar l'API.

Podeu establir valors per a diferents intervals de temps i suavitzar així el trànsit de l'API durant un període de temps determinat. Suposem que permeteu 600 sol·licituds per hora en una ruta concreta. De mitjana hi ha 10 peticions per minut. Però res impedeix que el client completi les 600 sol·licituds en el primer minut de l'hora. Potser això és el que necessites. És possible que vulgueu aconseguir una càrrega més uniforme en el transcurs d'una hora. Configurant el valor del camp config.minute Un valor de 20 garanteix que els usuaris no facin més de 20 sol·licituds per minut i 600 sol·licituds per hora. Això permet petits pics en un interval d'un minut en comparació amb un flux total mitjà de 10 sol·licituds per minut, però els usuaris no poden utilitzar la quota horària durant un minut. Ara necessitaran almenys 30 minuts per utilitzar totes les seves peticions. Els clients rebran capçaleres addicionals per a cada interval de temps especificat, per exemple:

Capçalera HTTP
Valor

X-RateLimit-Límit-hora
600

X-RateLimit-Hora restant
595

X-RateLimit-Limit-minut
20

X-RateLimit-Minut restant
16

Per descomptat, hi ha moltes maneres diferents de configurar els límits de consulta en funció del que vulgueu aconseguir.

Troballes

Acabo aquí, crec que hi ha prou material per al primer article sobre InterSystems API Manager. Només hem utilitzat un dels més de 40 connectors. Hi ha moltes coses més interessants que podeu fer amb IAM:

  • Afegiu un mecanisme d'autenticació central per a totes les vostres API.
  • Escaleu la càrrega mitjançant un equilibrador de càrrega en diversos serveis.
  • Afegiu noves funcionalitats i solucions d'errors a un públic de prova abans d'una actualització completa.
  • Proporcioneu als desenvolupadors interns i externs un portal web dedicat que documenti totes les API.
  • Les sol·licituds de memòria cau per reduir el temps de resposta i reduir la càrrega al backend del sistema.

Referències

Webinar

Us convidem al seminari web "Gestió d'API amb Gestió d'API d'InterSystems", que tindrà lloc el 21 de novembre a les 10:00 hora de Moscou (GMT+3).
InterSystems API Manager (IAM) és un nou component de la plataforma de dades InterSystems IRIS que proporciona monitorització, control i gestió del trànsit cap a/des de les API web dins de la infraestructura de TI. Al seminari web demostrarem les capacitats clau d'InterSystems API Management:

  • Eines de vigilància del trànsit de l'API.
  • Controls de trànsit de l'API, inclòs el control de l'ample de banda, la limitació del nombre de trucades a l'API, el manteniment de llistes de llistes d'adreces IP permeses i denegades, etc.
  • Eines de configuració de seguretat de l'API.
  • Portal de desenvolupadors per publicar documentació interactiva de l'API.
  • Punt únic d'accés a l'API.

El seminari web està pensat per a arquitectes, desenvolupadors i administradors de sistemes.

Cal registrar-se!

Font: www.habr.com

Afegeix comentari