¿Qué es la gestión de API?

Hola a todos! Amigos, el 21 de febrero, lanzamos el curso "Backend PHP Developer" . En previsión del lanzamiento del curso, queremos compartir con ustedes la traducción de un material interesante. ¡Disfruta leyendo!

En octubre, en la conferencia NGINX Conf 2018, anunciamos un nuevo módulo de control API para el controlador NGINX . Con este producto, estamos fortaleciendo nuestra posición como la puerta de enlace API más implementada de la industria: millones de sitios ya están utilizando NGINX Open Source y NGINX Plus para transferir de manera segura el tráfico entre las aplicaciones del servidor y los consumidores API proporcionados por estas aplicaciones.



Pero el manejo eficiente de las solicitudes de los clientes es solo un aspecto de una API exitosa (aunque extremadamente importante). También debe administrar sus API a lo largo de todo su ciclo de vida, incluida la definición y publicación, y la protección y administración del tráfico. Debe realizar un seguimiento y solucionar problemas de rendimiento para garantizar la satisfacción del cliente y analizar el tráfico para maximizar el valor comercial. La administración integral de API es esencial para la rápida adopción y el éxito continuo de sus API.



La administración de API cubre todo el ciclo de vida de sus API
(En la figura: comenzando desde arriba en sentido horario - Definición y publicación, Seguridad, Gestión del tráfico (puerta de enlace API), Monitoreo y soporte continuos, Análisis de la cantidad de acceso a la API. Adaptación (portal de desarrollo);
en el centro - API Management)

Al igual que muchos de nuestros clientes, es posible que los conceptos y la terminología exagerados en torno a las soluciones API sean bastante desalentadores. En este blog, discutimos conceptos clave de API y exploramos la relación de la administración de API con las puertas de enlace de API.

Conceptos clave

La API de administración tiene sus propios conceptos y terminología:

  • API internas : las API internas están disponibles solo para otras aplicaciones (y sus desarrolladores) dentro de la empresa, pero no para usuarios externos. Las API internas ayudan a abrir datos y fomentan la colaboración entre unidades funcionales dentro de la empresa. Aquí hay un buen ejemplo: antes de proporcionar asistencia a los clientes, el equipo de soporte técnico de la empresa debe determinar si el cliente tiene un contrato de soporte válido. Esta información ya está almacenada en un sistema de gestión de relaciones con clientes (CRM) empresarial como Salesforce. En lugar de duplicar información en su propia base de datos, la aplicación de atención al cliente llama a la API CRM interna.
  • API externas: las API externas están disponibles para usuarios fuera de su empresa. Proporcionan herramientas para crear asociaciones con desarrolladores externos, así como todo su ecosistema comercial de proveedores, distribuidores, revendedores e incluso clientes. Las API externas también permiten a las empresas generar nuevas fuentes de ingresos utilizando modelos comerciales innovadores. Los mapas de Google son un buen ejemplo. Muchos sitios web y aplicaciones de terceros incorporan un mapa de Google para ayudar a los usuarios finales a identificar la ubicación de una tienda u obtener indicaciones. El acceso al mapa para el usuario final no cuesta nada, pero después de un cierto número de clics, Google cobra una tarifa desde el sitio o la aplicación por cada llamada a la API.
  • Definición y publicación . Las soluciones de administración de API proporcionan una interfaz intuitiva para definir API significativas, incluida la ruta base (URL), los recursos y los puntos finales.

    • Los recursos son fundamentales para cualquier definición de API; son una abstracción de información sobre la cual la API realiza operaciones. Ejemplos de recursos son documentos e identificaciones de clientes. Se llama a la API para obtener esta información.
    • Los puntos finales indican dónde se encuentran los recursos. Las API tienen una URL base a la que se agregan rutas de punto final. Todos los puntos finales de la API hacen referencia a la URL base.

  • Por ejemplo, en el punto final de la API, https://app.enterprise.com/v1/inventory/ , /v1 es la ruta base, y /inventory es el recurso.
  • Las soluciones de administración de API permiten a los autores de API publicar API en una variedad de entornos, como los destinados a la producción, prueba o preparación. Esto garantiza la coherencia para cada entorno y evita la configuración incorrecta. Las soluciones también automatizan la creación de nuevas API y la modificación de las existentes.
  • Puerta de enlace API : como se mencionó anteriormente, las puertas de enlace API protegen y proporcionan tráfico entre su backend y los consumidores de sus API. La funcionalidad de la puerta de enlace incluye la autenticación de llamadas API, solicitudes de enrutamiento a los backends correspondientes, aplicación de límites de velocidad para evitar sobrecargar sus sistemas o mitigar los ataques DDoS, descargar el tráfico SSL / TLS para mejorar el rendimiento y manejar errores y excepciones.
  • Microgateway : muchas soluciones tienen un plano de datos centralizado y estrechamente relacionado (puerta de enlace API) y un plano de control (herramienta de administración API). Todas las llamadas a la API deben pasar por el plano de control, lo que agrega demora. La puerta de enlace API en este enfoque arquitectónico es ineficiente cuando se procesa el tráfico en entornos distribuidos (por ejemplo, tráfico dentro del servicio en un entorno de microservicio o procesamiento de tráfico IoT para admitir análisis en tiempo real). Por lo tanto, para la gestión del tráfico, cuando los consumidores y los proveedores de API están muy cerca, los proveedores de soluciones obsoletas han introducido un componente de software adicional: una micro-puerta de enlace para procesar llamadas API.
  • Análisis de API : a medida que sus API se vuelven populares, debe asegurarse de que brinden valor a sus usuarios y cumplan sus objetivos comerciales. Aquí es donde la analítica se vuelve crítica. Las soluciones de administración de API proporcionan información crítica a través de visualizaciones (como paneles e informes) de métricas y uso de API, y le informan (como ejemplos) qué API se usan con más frecuencia o menos frecuencia, cómo cambia el tráfico de API con el tiempo y qué desarrolladores son los mejores consumidores de API. El análisis de API permite al propietario de un negocio de API, a veces llamado "Administrador de Producto API", obtener información sobre el rendimiento de un programa API.
  • La analítica también es importante para la resolución de problemas. Las soluciones de administración de API proporcionan una comprensión profunda del rendimiento de cada API. Estas métricas permiten a los equipos de infraestructura y operaciones rastrear y resolver problemas de rendimiento y seguridad. Aquí hay ejemplos de preguntas que puede responder un analista:

    • ¿Cuál es el estado y el tiempo de actividad de todas mis instancias de puerta de enlace API?
    • ¿Cuándo vemos ralentizaciones para una API?
    • ¿Cuándo ocurren los errores HTTP para una API?
    • ¿Cuál es el estado y el tiempo de actividad de todas mis instancias de la puerta de enlace API?
    • ¿Cuándo observamos ralentizaciones para la API?
    • ¿Cuándo ocurren los errores de HTTP para una API?

  • Seguridad API : la seguridad es un aspecto crítico de la infraestructura API. Sin una protección confiable, cualquiera puede acceder a sus datos y API e introducir un comportamiento malicioso llamando a una solicitud a una API insegura. La API de seguridad incluye los siguientes elementos:

    • Autenticación : la autenticación se refiere al proceso de determinar de manera confiable la identidad de la persona que llama. Las claves API son un mecanismo estándar para autenticar e identificar a los suscriptores que desean acceder a la API. Las soluciones de administración de API proporcionan a los proveedores de API una interfaz para generar claves de API, que luego se pueden transmitir a desarrolladores de terceros para su uso en llamadas de API. OAuth es un mecanismo de autenticación ampliamente utilizado.
    • Autorización : la autorización se refiere al proceso de determinar qué privilegios o niveles de acceso se otorgan a un usuario. Una forma de autorizar a los usuarios es a través de JSON Web Tokens (JWT). Los JWT son tokens de acceso que reclaman (los reclamos son terminología JWT para privilegios individuales). Por ejemplo, un JWT presentado por una aplicación cliente puede incluir una aserción que permita el acceso a un recurso específico. Si la aplicación cliente intenta acceder a otros recursos, se devuelve un error HTTP 403 Prohibido.
    • Control de acceso basado en roles (RBAC) : RBAC se refiere a la definición de roles de usuario con privilegios específicos. Por ejemplo, los empleados de Infraestructura y Operaciones generalmente no son responsables de crear y publicar una API, sino solo de monitorear y solucionar problemas. Por lo tanto, se les asigna un rol que solo tiene estos privilegios. Del mismo modo, solo el Administrador de productos API tiene asignado un rol que tiene acceso a análisis de API.
    • Límite de velocidad: el límite de velocidad se refiere a la imposición de un límite en la cantidad de solicitudes que el agente solicitante puede realizar durante un cierto período de tiempo (por ejemplo, 10,000 solicitudes por segundo). Los límites de velocidad evitan la sobrecarga de sus sistemas de back-end y ayudan a mitigar los ataques DDoS. La solución de administración de API proporciona una interfaz para determinar los límites de velocidad que luego aplica la puerta de enlace de API. Los límites de velocidad también le permiten ofrecer niveles de servicio de varios niveles (por ejemplo, los clientes Gold pueden hacer 10,000 solicitudes por segundo, y los clientes Silver pueden hacer 5,000).

  • Portal para desarrolladores . El portal para desarrolladores es un sitio en línea donde publica recursos que lo ayudan a adaptar rápidamente sus consumidores de API, como un catálogo de API externo, documentación completa y ejemplos de código. El portal para desarrolladores también permite a los desarrolladores externos registrar sus aplicaciones y recibir claves API y JWT. Algunas soluciones también proporcionan un mecanismo de interacción entre los desarrolladores que usan su API. Un portal de desarrollador bien diseñado es fundamental para el éxito de su programa API.

Administre la API NGINX: utilizando la puerta de enlace API líder en la industria

NGINX ya es la puerta de enlace API más utilizada en la industria: en nuestra encuesta reciente, el 40% de nuestros clientes informaron haber usado NGINX como una puerta de enlace API.

El nuevo módulo de control API del controlador NGINX , que se lanzará próximamente, combina la potencia y la eficiencia de NGINX Plus como una puerta de enlace API con una nueva funcionalidad de nivel de administración. El controlador NGINX permite a los equipos de Infraestructura y Operaciones y DevOps definir, publicar, proteger, rastrear y analizar la API, mientras mantiene el control sobre el desarrollo de la API. El monitoreo integral y las alertas ayudan a garantizar la disponibilidad, el rendimiento y la confiabilidad de la aplicación. El controlador NGINX proporciona una comprensión profunda de las métricas clave, lo que permite a los equipos de Infraestructura y Operaciones y DevOps evitar primero los problemas de rendimiento y solucionar rápidamente cualquier problema que surja.

Nuestro enfoque para administrar las API es diferente de las soluciones tradicionales. A diferencia de estas soluciones, la puerta de enlace API NGINX Plus (plano de datos) no requiere una conexión permanente al controlador NGINX (plano de control), por lo que el tráfico de tiempo de ejecución API está aislado del tráfico de control. El controlador NGINX elimina la necesidad de bases de datos locales o componentes adicionales que pueden crear complejidad innecesaria, demoras y puntos de falla para las puertas de enlace API NGINX Plus. Esto maximiza el rendimiento al reducir el tiempo de respuesta promedio para atender una llamada API y minimiza el volumen y la complejidad de la puerta de enlace. Separar el plano de datos del plano de control le brinda la flexibilidad de implementar tantas instancias de la puerta de enlace API como lo requiera la arquitectura de su aplicación. El controlador NGINX le brinda la libertad de elegir la implementación adecuada para las necesidades internas y externas de la API con una solución fácil, simple y de alto rendimiento que aprovecha al máximo el plano de datos NGINX Plus.

La tecnología NGINX es compatible con los portales de desarrolladores de Capital One : Devexchange . Esto permitió a Capital One escalar sus aplicaciones a 12 mil millones de operaciones por día con picos de 2 millones de operaciones por segundo con demoras de solo 10-30 milisegundos. NGINX también es compatible con el portal de Adobe para desarrolladores de Adobe I / O. Adobe I / O permite a los desarrolladores integrar, expandir y crear aplicaciones basadas en productos y tecnologías de Adobe utilizando la API. La plataforma procesa millones de solicitudes por día con un ligero retraso.

Aquí hay una traducción, ¿cómo te gusta? Estamos esperando sus comentarios y tradicionalmente los invitamos a una lección abierta , que se llevará a cabo el 11 de febrero por nuestro maestro Igor Sakhankov .

Source: https://habr.com/ru/post/439222/


All Articles