Presentación de InterSystems API Manager (+ webinar)

Recentemente publicamos InterSystems API Manager (IAM), un novo compoñente da plataforma de datos InterSystems IRIS que ofrece visibilidade, control e xestión do tráfico da API web en toda a infraestrutura de TI.

Neste artigo mostrarei como configurar IAM e demostrarei algunhas das moitas capacidades que ten dispoñibles con IAM. InterSystems API Manager permítelle:

  • Supervisa a API, comprende quen usa a API, cales son as máis populares e cales requiren melloras.
  • Controla quen usa a API e limita o uso da API desde simples restricións de acceso ata restricións baseadas en solicitudes: tes un control personalizado e podes responder rapidamente aos patróns de consumo cambiantes da API.
  • Protexa as API mediante mecanismos de seguridade centralizados como OAuth2.0, LDAP ou Autenticación de token de clave.
  • Facilita aos desenvolvedores de terceiros e ofrécelles unha experiencia de API superior abrindo un portal dedicado para desenvolvedores.
  • Escala a API e asegura unha latencia de resposta mínima.

A xestión de API é esencial para a transición á arquitectura SOA ou microservizo, simplificando a integración entre os (micro)servizos individuais, facéndoos dispoñibles para todos os consumidores externos e internos. Como resultado, as novas API son máis fáciles de crear, manter e consumir.

Se xa está a usar InterSystems IRIS, pode engadir a opción IAM á súa licenza. A opción IAM é gratuíta para os clientes de InterSystems IRIS, pero debes solicitar a InterSystems unha nova clave de licenza para comezar a usar IAM.

Se aínda non está a usar InterSystems IRIS e está a pensar en probar InterSystems API Manager, póñase en contacto con InterSystems.

Iniciación e instalación

Os clientes de InterSystems poden descargar a distribución IAM desde o sitio web WRC sección "Distribución de software" e execútase como un contedor Docker. Requisitos mínimos do sistema:

Inicialmente, cómpre descargar a imaxe de Docker (Importante! O arquivo con WRC non é unha imaxe de Docker, cómpre desempaquetala, hai unha imaxe de Docker dentro):

docker load -i iam_image.tar

Este comando fará que a imaxe IAM estea dispoñible para o seu uso posterior no seu servidor. IAM execútase como un contedor separado, polo que pode escalalo independentemente de InterSystems IRIS. A execución de IAM require acceso a InterSystems IRIS para descargar unha licenza.

Configurar InterSystems IRIS:

  • Activa a aplicación web /api/IAM
  • Habilitar usuario IAM
  • Cambiar o contrasinal do usuario IAM

Agora imos comezar o contedor IAM. No arquivo atoparás guións iam-setup para Windows e Unix (e Mac). Estes scripts axudaranche a establecer as variables de ambiente correctamente, permitindo que o contedor IAM estableza unha conexión con InterSystems IRIS. Aquí tes un exemplo do script que se executa en 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

Como podes ver, o nome completo da imaxe, o enderezo IP, o porto IRIS de InterSystems e o contrasinal para o usuario de IAM son todo o que necesitas para comezar.

En lugar de executar un script, pode configurar as variables de ambiente manualmente:

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

Lanzamento

Agora imos lanzar IAM executando o comando:

docker-compose up -d

Este comando organiza os contedores IAM e garante que todo estea a funcionar correctamente. O estado dos contedores verifícase mediante o comando:

docker ps

Abre a interface de administración no teu navegador localhost:8002.

Presentación de InterSystems API Manager (+ webinar)

Está baleiro polo momento porque é un nodo completamente novo. Imos cambiar iso. IAM admite o concepto de espazos de traballo para dividir as API en módulos e/ou comandos. Vaia ao espazo de traballo "predeterminado" que usaremos para os nosos experimentos.

Presentación de InterSystems API Manager (+ webinar)

O número de solicitudes para este espazo de traballo aínda é cero, pero terás unha idea dos conceptos básicos de IAM no menú da esquerda. Os dous primeiros elementos: Servizos e Rutas son os máis importantes:

  • O servizo é a API á que queremos proporcionar acceso aos consumidores. Así, a API REST en InterSystems IRIS é un Servizo, como é, por exemplo, a API de Google se queres usalo.
  • A Ruta decide a que servizo se deben enviar as solicitudes entrantes. Cada Ruta ten unhas condicións específicas e, se se cumpren, a solicitude envíase ao Servizo correspondente. Por exemplo, unha ruta pode coincidir coa IP, o dominio do remitente, os métodos HTTP, as partes dun URI ou unha combinación destes exemplos.

Servizo

Imos crear un servizo InterSystems IRIS, cos seguintes valores:

Campo
Valor
Descrición

nome
Vella
Nome do servizo

anfitrión
IP
Host ou ip do servidor InterSystems IRIS

porto
52773
Porto web do servidor IRIS de InterSystems

camiño
/api/atelier
Camiño raíz

Protocolo
http
Protocolo

Deixe os valores restantes como predeterminados. Fai clic no botón Create e anote o ID do Servizo creado.

Ruta

Agora imos crear unha ruta:

Campo
Valor
Descrición

camiño
/api/atelier
Camiño raíz

Protocolo
http
Protocolo

servizo.id
guía de 3
Servizo (ID do paso anterior)

Deixe os valores restantes como predeterminados. Fai clic no botón Create e anote o ID da Ruta creada. De forma predeterminada, IAM escoita as solicitudes entrantes no porto 8000. Agora as solicitudes envíanse a http://localhost:8000 e comezando por /api/atelier son redirixidos a InterSystems IRIS.

Probas

Imos tentar crear unha solicitude nun cliente REST (estou a usar Carteiro).

Presentación de InterSystems API Manager (+ webinar)

Enviemos unha solicitude GET a http://localhost:8000/api/atelier/ (non esquezas / ao final) e recibir unha resposta de InterSystems IRIS. Cada solicitude pasa por IAM que recolle métricas:

  • Código de estado HTTP.
  • Atraso.
  • Monitorización (se está configurada).

Fixen algunhas solicitudes máis (incluídas dúas solicitudes a puntos finais inexistentes como /api/atelier/est/), os resultados son inmediatamente visibles no panel:

Presentación de InterSystems API Manager (+ webinar)

Traballar con complementos

Agora que temos unha Ruta configurada, podemos xestionar a nosa API. Podemos engadir funcións que complementarán o noso servizo.

A forma máis común de cambiar o comportamento dunha API é engadir un complemento. Os complementos illan as funcións individuais e pódense conectar a IAM de forma global ou só a entidades individuais, como un Usuario (grupo de usuarios), un servizo ou unha ruta. Comezaremos engadindo o complemento Rate Limiting á ruta. Para establecer unha conexión entre o complemento e a ruta, necesitamos un identificador único (ID) da ruta.

Limitación do número de solicitudes

Fai clic en Complementos no menú da barra lateral esquerda. Podes ver todos os complementos activos nesta pantalla, pero como este servidor IAM é novo, aínda non hai complementos activos. Polo tanto, vai ao seguinte paso facendo clic en "Novo complemento".

O complemento que necesitamos está na categoría "Control de tráfico" e chámase "Limitación de taxas". Seleccionalo. Hai bastantes opcións que podes configurar aquí, pero só nos importan dous campos:

Campo
Valor
Descrición

ruta_id
ID
ID de ruta

config.minuto
5
Número de solicitudes por minuto

Iso é todo. O complemento está configurado e activo. Teña en conta que podemos escoller diferentes intervalos de tempo, como un minuto, unha hora ou un día. As opcións pódense combinar (por exemplo, 1000 solicitudes por hora e ao mesmo tempo 100 solicitudes por minuto). Escollín minutos porque facilita comprobar a funcionalidade do complemento.

Se envía a mesma solicitude de novo en Postman, verá que a resposta se devolve con 2 cabeceiras adicionais:

  • XRateLimit-Limit-minuto: 5
  • XRateLimit-Minutos restantes: 4

Isto indica ao cliente que pode facer ata 5 solicitudes por minuto e que pode facer 4 solicitudes máis na franxa horaria actual.

Presentación de InterSystems API Manager (+ webinar)

Se realizas a mesma solicitude unha e outra vez, finalmente quedarás sen cota dispoñible e recibirás un código de estado HTTP de 429 co seguinte corpo de resposta:

Presentación de InterSystems API Manager (+ webinar)

Agarda un minuto e poderás enviar solicitudes de novo.

Este é un mecanismo cómodo que che permite:

  • Protexa o backend das sobrecargas.
  • Diga aos clientes cantas solicitudes poden facer.
  • Monetiza a API.

Pode establecer valores para diferentes intervalos de tempo e, así, suavizar o tráfico da API durante un determinado período de tempo. Digamos que permites 600 solicitudes por hora nunha determinada ruta. De media, hai 10 solicitudes por minuto. Pero nada impide que o cliente complete as 600 solicitudes no primeiro minuto da hora. Quizais isto sexa o que necesitas. Pode querer conseguir unha carga máis uniforme ao longo dunha hora. Ao establecer o valor do campo config.minute Un valor de 20 garante que os teus usuarios non fagan máis de 20 solicitudes por minuto e 600 solicitudes por hora. Isto permite pequenos picos nun intervalo dun minuto en comparación cun fluxo medio de 10 solicitudes por minuto, pero os usuarios non poden usar a cota horaria durante un minuto. Agora necesitarán polo menos 30 minutos para usar todas as súas solicitudes. Os clientes recibirán cabeceiras adicionais para cada intervalo de tempo especificado, por exemplo:

Cabeceira HTTP
Valor

X-RateLimit-Limit-hora
600

X-RateLimit-Hora restante
595

X-RateLimit-Limit-minuto
20

X-RateLimit-Minutos restantes
16

Por suposto, hai moitas formas diferentes de configurar os límites de consulta dependendo do que queiras conseguir.

Descubrimentos

Remato aquí, creo que hai material suficiente para o primeiro artigo sobre InterSystems API Manager. Só usamos un dos máis de 40 complementos. Hai moitas máis cousas interesantes que podes facer con IAM:

  • Engade un mecanismo de autenticación central para todas as túas API.
  • Escala a carga mediante un equilibrador de carga en varios servizos.
  • Engade novas funcionalidades e correccións de erros a un público de proba antes dunha actualización completa.
  • Proporcionar aos desenvolvedores internos e externos un portal web dedicado que documente todas as API.
  • As solicitudes de caché para reducir o tempo de resposta e reducir a carga no backend do sistema.

referencias

Webinar

Convidámoste ao seminario web "Xestión de API con InterSystems API Management", que terá lugar o 21 de novembro ás 10:00 hora de Moscova (GMT+3).
InterSystems API Manager (IAM) é un novo compoñente da plataforma de datos InterSystems IRIS que ofrece seguimento, control e xestión do tráfico desde/hacia as API web dentro da infraestrutura de TI. No seminario web demostraremos as principais capacidades de InterSystems API Management:

  • Ferramentas API de monitorización de tráfico.
  • Controis de tráfico da API, incluído o control do ancho de banda, a limitación do número de chamadas á API, o mantemento de listas de listas de enderezos IP permitidas e denegadas, etc.
  • Ferramentas de configuración de seguridade da API.
  • Portal de desenvolvedores para publicar documentación interactiva da API.
  • Punto único de acceso á API.

O seminario web está dirixido a arquitectos, desenvolvedores e administradores de sistemas.

É necesario rexistrarse!

Fonte: www.habr.com

Engadir un comentario