Conociendo la puerta de enlace API local 3Scale
GESTIÓN DE API
La gestión de las interfaces de programación de aplicaciones (API) es un tema candente.
Las discusiones generalmente incluyen la mención de frases como "exposición de los
datos de sus clientes", "monetizar sus activos subyacentes" u "ofrecer servicios de valor
agregado a su base de clientes".
Si tiene "activos" o datos que cree que pueden ser útiles para otros terceros o clientes
finales, o si está siendo impulsado por cambios regulatorios o presión del mercado,
entonces un API Gateway debe formar parte de su estrategia de solución.
Una puerta de enlace API permite a una organización exponer sus API internas como API
externas públicas para que los desarrolladores de aplicaciones puedan acceder a las
funciones de datos y sistemas de la organización. Las capacidades de una puerta de
enlace API incluyen: gestión de las API, control de acceso, portal para desarrolladores y
funcionalidad de monetización.
Hay una serie de ofertas en el mercado y en esta publicación nos enfocamos en la oferta
de 3Scale, uno de los últimos participantes en el espacio local. 3Scale, que fue adquirida
por Red Hat, ha tenido una oferta de administración de API como software como servicio
durante varios años y ahora ha tomado esta oferta y la ha empaquetado para su uso
dentro de la empresa.
La buena gente de 3Scale nos dio acceso a la primera versión beta y le dimos un examen
detallado. En nuestra evaluación, observamos cómo instalarlo, cómo funciona con Red
Hat OpenShift y describimos algunos de los casos de uso interesantes que permite.
También compartimos algunas ideas y consejos principales.
¿QUE TAN FÁCIL ES DE INSTALAR?
La plataforma 3Scale viene con varias opciones de implementación, una de las cuales es
una opción local. Para esta implementación, 3Scale utiliza el entorno Red Hat OpenShift.
La facilidad de integración entre la plataforma 3Scale y OpenShift demuestra que Red Hat
ha trabajado mucho para que la API Gateway funcione en un entorno contenedorizado. La
plataforma 3Scale en sí se implementa dentro de los contenedores de OpenShift y resultó
relativamente fácil de instalar y ejecutar.
La arquitectura del clúster OpenShift que utilizamos era un simple maestro único y un solo
nodo minion, como se muestra a continuación.
CONFIGURACIÓN BÁSICA
Los servidores, que se configuraron con Red Hat Enterprise Linux (RHEL) 7.3 instalado,
tienen su propio dominio y los puntos finales y portales API están contenidos en él.
Sugerencia: al copiar la clave ssh, asegúrese de que se copia al host que generó la
clave.
De lo contrario, no puede ssh para sí mismo y el instalador observa un error.
CONSEJOS DE CONFIGURACIÓN
Una vez completada la instalación, el siguiente paso fue obtener acceso a la consola.
Esto nos obligó a editar el archivo de configuración maestro (/etc/origin/master/master-
[Link]). Para nuestros propósitos (y dado que somos un grupo extremadamente
confiable), utilizamos la política AllowAll detallada aquí.
Después de la edición, reinicie el maestro ejecutando:
systemctl restart [Link]
La consola OpenShift está disponible en https: // vm-ip-address (1): 8443 / console /.
Para administrar OpenShift desde la línea de comandos, simplemente inicie sesión en el
nodo maestro OpenShift como root. Una vez más, la política AllowAll significa que puede
iniciar sesión con cualquier combinación de nombre y contraseña, pero para mantener la
coherencia, debe usar el mismo nombre de usuario todo el tiempo.
Luego puede crear un proyecto para la implementación de 3Scale. Después de esto,
3Scale se puede implementar dentro de los contenedores asignados por OpenShift.
(1) Esta es la dirección IP del nodo maestro.
3Scale REQUISITOS
3Scale tiene los siguientes requisitos previos:
Una instalación funcional de OpenShift 3.3 o 3.4 con almacenamiento persistente
Una versión actualizada de la CLI de OpenShift
Un dominio, preferiblemente comodín, que se resuelve en el clúster OpenShift
Acceso al catálogo de contenedores de Red Hat.
(Opcionalmente) un servidor SMTP en funcionamiento para la funcionalidad de
correo electrónico.
La implementación de 3Scale requiere volúmenes persistentes y, por lo tanto, deben
asignarse dentro de OpenShift antes de implementar 3Scale. Para nuestra
implementación, los volúmenes persistentes se configuraron utilizando recursos
compartidos NFS.
DESPLIEGUE
Una vez que el almacenamiento persistente se configuró para 3Scale, la implementación
fue sencilla. Se nos proporcionó un archivo de plantilla para la aplicación que solo
requería que proporcionáramos el dominio como parámetro.
Implementación implicada en ejecución
oc new-app --[Link] --param WILDCARD_DOMAIN=[Link]
y viendo los registros para cualquier problema.
Después de unos 25 minutos, la aplicación estaba en funcionamiento y pudimos iniciar
sesión.
Un último paso de configuración fue configurar el servidor SMTP, se trataba simplemente
de definir y exportar variables a la configuración de OpenShift.
PUERTA DE ENTRADA API 3SCALE: CASO DE USO DE MUESTRA
Para ejercer la plataforma, necesitábamos un caso de uso para implementar y una API
para exponer. Decidimos que un caso de uso de Internet de las cosas (IoT) tenía mucho
sentido, ¡sobre todo porque es un tema muy candente en este momento!
Con eso en mente, permítete ser transportado en un viaje a través del tiempo y el
espacio, a un mundo donde la contaminación del aire se controla activamente en todas
partes y realmente se hace algo al respecto. Y considere el siguiente escenario:
Existen varios dispositivos de IoT que monitorean los niveles de contaminación y
calidad del aire en un área geográfica determinada.
Puede haber varias marcas y tipos diferentes de dispositivos de monitoreo, por
ejemplo, niveles de monóxido de carbono, dióxido de nitrógeno, partículas, etc.
Se podría implementar una arquitectura de microservicio en la plataforma Beta IoT.
Cada microservicio podría procesar su propia API específica.
El 3Scale API Gateway sería responsable de ofrecer estas API a terceros públicos
a través de Internet para su consumo.
La puerta de enlace API de 3Scale también sería responsable de administrar el
acceso externo a estas API de microservicio y de proporcionar autenticación y
autorización, así como políticas de inyección. La plataforma 3Scale también podría
proporcionar el autoescalado de recursos de microservicio junto con el entorno
OpenShift.
Las aplicaciones de terceros, que consumen las API públicas, podrían usar esta
información para proporcionar, por ejemplo, un Tablero web de niveles de
contaminación o una aplicación móvil para los teléfonos inteligentes de los
usuarios.
Caso de uso de SmartCity IoT
De acuerdo con esto, escribimos una serie de historias de usuarios y escenarios sobre el
uso de la API. Para implementar nuestra API IOT, que la plataforma 3Scale iba a
"presentar" al mundo exterior, desarrollamos un servicio web básico escrito como una
aplicación de matraz de Python. La aplicación se almacenó en GitHub para facilitar la
implementación en OpenShift. En lugar de crear un proyecto completamente nuevo, la
aplicación Python de ejemplo OpenShift se bifurcó y cambió. Este es el repositorio de
GitHub que utilizamos.
¿QUÉ OBTENÉS POR TUS TARIFAS?
La plataforma 3Scale le permite configurar límites de velocidad para su API. La
documentación de 3Scale sobre los límites de velocidad está aquí.
Los límites de tarifas se establecen por plan por aplicación. Esto significa que cada
aplicación tiene un conjunto de planes y cada plan tiene la capacidad de establecer
múltiples límites en cada método. Esto se realiza mediante el Portal de administración,
donde se pueden configurar tarifas específicas. Las tarifas funcionan esencialmente
contando el número de llamadas realizadas en un método API durante un período de
tiempo y luego midiendo esto contra el límite configurado en el portal para una aplicación
determinada. Es posible evitar que un método se use en un plan.
Ejemplos de límites de velocidad son:
10 llamadas a métodos cada minuto
1000 llamadas al método todos los días
20 llamadas de método cada minuto con un máximo de 100 en una hora
Cuando se excede un límite, el método devuelve una respuesta Prohibida 403 y, si se
selecciona, genera alertas por correo electrónico y el panel de control 3Scale.
AUTENTICACIÓN
API Gateway se puede configurar para usar nombre de usuario / contraseña o
autenticación OAuth v2.0 de aplicaciones. La configuración de nombre de usuario /
contraseña es bastante simple, pero la autenticación OAuth es un poco más complicada.
Puede reutilizar el servicio de redis del sistema existente y establecer REDIS_HOST o
REDIS_URL en la configuración de implementación de APIcast (consulte la referencia). Si
la puerta de enlace se implementa en un proyecto diferente al de la plataforma 3Scale
AMP, deberá utilizar una ruta.
ANALÍTICA
La función de análisis de la plataforma le permite configurar métricas para cada una de
sus llamadas al método API, la configuración se realiza a través del panel de la
plataforma. La plataforma graficará y mostrará la siguiente información:
cantidad de visitas a su API, las visitas pueden ser llamadas a la API o dividirse en
métodos individuales en la API
Cantidad en MB o GB de datos cargados y descargados a través de la API
calcular el tiempo asociado con las llamadas a la API
recuento de la cantidad de registros u objetos de datos que se devuelven o el
almacenamiento total en disco utilizado por una cuenta.
PORTAL DE DESARROLLADOR
El Portal del desarrollador permite a los usuarios personalizar la apariencia de todo el
Portal del desarrollador para que coincida con cualquier marca específica. Tiene acceso a
casi todos los elementos del portal, por lo que básicamente puede modificarlos para
adaptarse a su propio entorno.
Hay que decir que la documentación sobre cómo se personaliza el portal podría ser mejor,
pero si usted es un desarrollador web experimentado, probablemente será sencillo.
INTEGRANDO CON SWAGGER
Swagger es una interfaz estándar independiente del lenguaje para las API REST que
permite que tanto humanos como computadoras descubran y comprendan las
capacidades del servicio sin acceso al código fuente o la documentación. 3Scale permite
que se cargue documentación swagger para las API que se van a exponer.
Utilizamos este editor en línea para crear la documentación de swagger para la API IOT.
La especificación se puede ver aquí.
Los archivos anteriores son la documentación básica para la API, pero requieren
actualización para su uso en 3Scale y debe hacer referencia a esta documentación. El
host debe cambiar al igual que la configuración de los esquemas, y la clave de usuario
debe agregarse. Para agregar el archivo, siga las instrucciones aquí.
Sugerencias: Uno de nuestros hallazgos al trabajar con la documentación de
swagger fue que era válido
Los certificados de seguridad deben instalarse para la plataforma 3scale. Cuando
no lo son
las solicitudes swagger-generated curl devolvieron un error.
DOCUMENTACIÓN
Se pueden hacer algunas mejoras en la documentación. Por ejemplo, para proporcionar
un contexto general o una visión general de la arquitectura. Esto sería un beneficio como
punto de partida para proporcionar al usuario una mejor comprensión de los diferentes
componentes "debajo del capó". Algunos de los detalles que deben modificarse (como las
páginas web del Portal del desarrollador) podrían explicarse mejor, con ejemplos para las
tareas más comunes. Dado que estábamos trabajando en la primera versión Beta del
producto, vamos a suponer que las mejoras de documentación estarán en su lugar antes
de la disponibilidad general.
LO QUE NO HICIMOS
Debido al tiempo y las presiones del proyecto, no realizamos pruebas de estabilidad, HA o
rendimiento. Así que solo podemos continuar con lo que se ha publicado en otro lugar.
3Scale ha declarado que llevan a cabo pruebas de rendimiento para proporcionar datos
de referencia para dimensionar la infraestructura para las tasas API dadas. El mecanismo
de facturación no estaba disponible para probar, por lo que no pudimos configurar ningún
plan de facturación para clientes. Por lo tanto, no pudimos probar las opciones de
monetización para nuestra API ficticia.
CONCLUSIÓN
Nuestra experiencia de usar tanto la plataforma OpenShift como el 3Scale API Gateway
fue positiva e informativa. Es relativamente sencillo instalar OpenShift y 3Scale y obtener
una API simple en funcionamiento. Hay muchas características "listas para usar" que son
útiles (y quizás esenciales) si va a implementar una puerta de enlace API dentro de su
propia premisa. También hay un buen grado de flexibilidad dentro de la plataforma para
establecer tarifas, integrarse a backends y personalizar sus portales.