Header Ads Widget

Ticker

6/recent/ticker-posts

¿Qué es la orquestación de API?

 



El espacio API está en constante evolución. A medida que las necesidades de los usuarios finales aumentan tanto en complejidad como en frecuencia, continúan surgiendo nuevas estrategias de desarrollo de software. Cuando se trabaja con API, no es raro ver una red de sistemas manejando un solo propósito. De hecho, durante la era moderna de las arquitecturas de microservicios , esto se ha convertido en el paradigma de diseño de jure , con cada API operando una pequeña fracción de la máquina mucho más grande.

Teniendo esto en cuenta, ¿cómo nos aseguramos de que esos sistemas funcionen de manera eficaz e inteligente en conjunto? Hoy, vamos a buscar una solución a ese problema en forma de orquestación .

¿Qué es la orquestación de API?

En esencia, la orquestación de API es el acto de integrar dos o más aplicaciones en una única oferta unificada. Normalmente, esto se utiliza para fusionar llamadas a API en una única interfaz, automatizar procesos o fusionar varias API internas desde la perspectiva de la experiencia del usuario.

Construyamos un caso en el que la orquestación pueda tener sentido. Imagínese que una ciudad del futuro ha decidido construir un sistema de alquiler de bicicletas . Este sistema permite a los usuarios alquilar bicicletas por una tarifa modesta; sin embargo, si el usuario se registra previamente y proporciona evidencia de que son residentes de la ciudad, este alquiler está subsidiado y es gratuito. Un sistema así sería bastante complejo. Desde la perspectiva del usuario, tendría que admitir varias API distintas y tendría que poder verificar el estado de identificación a través de algo como escanear la banda magnética en una licencia de conducir.

Profundizando más, necesitaríamos algunas API específicas para admitir una especie de sistema de seguimiento de mantenimiento para garantizar que las bicicletas dañadas sean reparadas. Además, debería haber una API de almacenamiento , una API de pago y varias otras. Más concretamente, todo este sistema debería presentarse en una interfaz limpia sin que el usuario tenga que pasar por muchos obstáculos.

Si no hubiera una orquestación detrás de escena, cada paso de esto sería innecesariamente complejo y la experiencia del usuario se fragmentaría en múltiples máquinas y pantallas. Sin embargo, con la orquestación, el usuario puede usar una única interfaz , con todo lo demás ocurriendo sin problemas, oculto detrás de una sola entrada AP I.

Suena bien. ¿Como funciona exactamente?

Lea también: Intercambio de datos en IoT

¿Como funciona?

Si bien hay muchas soluciones diferentes que pueden caer bajo el paraguas de la orquestación, usaremos nuestro ejemplo para construir cómo se vería una implementación de orquestación efectiva. En nuestro ejemplo, tenemos varias API muy específicas que deben coordinarse en conjunto para proporcionar un único servicio. El método más eficaz para sincronizarlos es utilizar una única API de orquestación para unir todo.

Antes de comenzar, debemos tener en cuenta que la clave para este tipo de implementación es el uso intensivo de la federación . Hemos hablado en profundidad de la federación antes , pero en pocas palabras, la federación es un método de interacción confiable. Una colección de servicios, generalmente bajo el control de una sola entidad, puede desarrollar un sistema federado en el que cada elemento de los sistemas confía en los esquemas de autenticación y autorización de sus respectivos servicios en todo el sistema mayor. En nuestro caso, tenemos algunos esquemas de autenticación y autorización segmentados que podemos aprovechar para brindar una experiencia unificada, siempre que la API de orquestación maneje el envío y la recepción de cada elemento de esos esquemas individuales.

Primero, enumeremos los sistemas que necesitamos orquestar:

  • La API de front-end : esta es la API con la que el usuario está interactuando y servirá como el punto de entrada principal al servicio orquestado y el recopilador de respuestas de API internas.
  • La API de verificación de ID : esta API deberá aceptar las credenciales de la API de front-end y comparar los datos con los recursos disponibles públicamente. En nuestro caso, para proteger la privacidad, este sistema deberá estar habilitado, por lo que la API interactuará con los sistemas de almacenamiento de bases de datos y una aplicación de sitio web que permite a los usuarios registrar su estado.
  • La API de gestión de bicicletas : esta API necesita comunicarse con otros quioscos y conectarse a una base de datos que almacena el estado de cada bicicleta registrada. Esto permite la gestión del inventario, pero también se relaciona con un subconjunto de funciones que toma nota de las bicicletas que necesitan reparación a través de informes de usuario proporcionados por el usuario y visitas de mecánicos de rutina.
  • La API de almacenamiento : esta API sería necesaria para impulsar el sistema de almacenamiento mecánico que mantiene las bicicletas encerradas y seguras.

Los elementos en juego en nuestro escenario de orquestación de API

Entonces, ¿cómo sería la API de orquestación? Primero, la API necesitaría usar identidades federadas de los componentes individuales del sistema. Lo haría utilizando un token de autenticación generado de confianza en todo el sistema. En cada etapa de las interacciones de esta API de orquestación, este token se utilizará para garantizar que la información, las solicitudes y las validaciones provienen de un sistema confiable y, como tal, se pueden utilizar en cada API.

Relacionado:  Cómo controlar la identidad del usuario dentro de microservicios

Ahora que tenemos eso fuera del camino, podemos comenzar a construir el flujo que aprovechará la API de orquestación. Cuando el usuario ingresa sus credenciales, estas deben cifrarse y enviarse como un paquete seguro a la API de verificación de ID, aprovechando la API de orquestación como intermediario.

Una vez que esta API verifica la información, se deben generar dos respuestas diferentes. Primero, la respuesta positiva al front-end para que el usuario sepa que su ID ha sido aceptada, y luego un token para la propia bicicleta, que debe enviarse a la API de almacenamiento. Una vez que el usuario recibe una respuesta positiva y una vez que la API de almacenamiento recibe una solicitud, la bicicleta puede comenzar a trasladarse al usuario. En este momento, la API de almacenamiento debe enviar un conjunto secundario de respuestas: una que le diga al usuario que la bicicleta está en camino y otra que notifique a la API de administración de bicicletas que se está "revisando" una bicicleta.

La API de administración de bicicletas puede usar imágenes de la cámara interna (activada por la API y almacenada con recursos remotos) para registrar el estado de la bicicleta vendida antes de entregarla al usuario, almacenando estos datos para uso futuro enviando los datos a través de la orquestación intermedia. API en un servicio de gestión remota.

Finalmente, la bicicleta puede venderse aprovechando la API frontal para abrir las puertas una vez que se detecta una bicicleta.

Cabe señalar aquí que en cada etapa de este proceso, hemos tenido una transformación fundamental de la solicitud de una forma a otra. Cada solicitud se ha realizado utilizando el formato de solicitud específico de las API pertinente a esa solicitud. Sin embargo, no todas las API esperan ese formato. Por ejemplo, la API de almacenamiento de bicicletas no esperará una solicitud en el formato de la API de front-end. Como tal, las solicitudes hechas en este documento se traducen esencialmente, se transforman en contenido inteligible, de modo que la solicitud permanece igual en cada entorno diferente.

Sin toda esta orquestación, lo que es un proceso de 3 pantallas podría convertirse en 10 o más avisos en múltiples interfaces. Ese es el poder y la propuesta de valor de una API de orquestación.

Lea también: Diseño de tokens para una mejor arquitectura de API

Ampliación de la funcionalidad

Con una API de orquestación que gestiona estas interacciones, podemos llevar el sistema un poco más lejos. Quizás tengamos un quiosco que no tenga bicicletas. ¿Queremos que este proceso se repita para cada solicitud a sabiendas de que el quiosco no podrá cumplir con ningún pedido? Al usar el almacenamiento en caché , podemos almacenar el estado de la API de almacenamiento en el lado del usuario, omitiendo todos los pasos de solicitud y simplemente notificando al usuario que el quiosco está vacío.

¿Qué pasa con un caso de uso en el que queremos permitir que varias personas revisen bicicletas con la misma identificación? Por ejemplo, si un usuario registra su ID y anota una familia de tres, tal vez queremos permitir que ese usuario alquile hasta tres bicicletas en una sola sesión de solicitud.

En tal caso, podemos almacenar en caché la información de identificación para reenviarla a la API de verificación, lo cual debe hacerse ya que la API de almacenamiento maneja cada bicicleta como una unidad distinta. Al almacenar las credenciales para volver a enviarlas por cada pedido específico, podemos evitar que el usuario tenga que volver a escanear su ID, volver a proporcionar las credenciales, etc.

Orquestación para otros escenarios

Alejándonos de nuestro ejemplo, puede haber situaciones en las que necesitemos información adicional para transformar nuestras solicitudes, y aquí, la orquestación agrega valor una vez más. Por ejemplo, si en cambio usáramos la orquestación de API para permitir que los estudiantes se registren en las clases, es posible que queramos tener asientos prioritarios según la fecha de registro. En tal situación, podríamos hacer que la API solicitante se quede sentada y retenga la solicitud en caché tal como la envió el estudiante mientras se obtiene el estado de la fecha de registro del estudiante.

Cuando vuelva la fecha, es posible que esa API desee utilizar el sistema de transformación para cambiar la solicitud original agregando información al campo de solicitud, cambiando la prioridad de la solicitud sin problemas. El estudiante será notificado de su prioridad y su solicitud se archivará correctamente en el orden en que se llenará. De esta manera, podemos usar tanto el almacenamiento en caché como la transformación a través del sistema de orquestación para automatizar gran parte del proceso de registro de estudiantes y asignación de asientos.

Consulte: Principales amenazas de seguridad de API en 2020: Entrevista del panel de expertos

Conclusión

La orquestación es un concepto simple, pero a menudo se ve como un paso adicional que solo agrega complejidad. En realidad, es una complejidad que en general simplifica los sistemas en ciertos casos de uso. En nuestro caso de uso, pasamos de un flujo de usuarios en diez o más pantallas a una experiencia única y unificada que ocurre en dos mensajes: escanee su identificación, solicite su número de bicicletas. Ese tipo de poder es increíble y el sistema subyacente puede conducir a todo tipo de innovaciones únicas.

¿Qué opinas de la orquestación? ¿Es más complejo de lo que estamos dejando ver, o quizás más simple de lo que lo estamos haciendo? ¡Háganos saber en los comentarios a continuación!

Publicar un comentario

0 Comentarios