Las API tienen el poder de interrumpir la cadena de suministro tradicional. Permiten una velocidad más rápida de funciones, abren canales innovadores y ayudan a satisfacer las crecientes expectativas de los usuarios. “Las API están creando nuevos modelos para desarrolladores para el perímetro. Está aportando un entorno de desarrollo completamente nuevo ”, dice Vijoy Pandey, vicepresidente de Cisco.
Sin embargo, existen algunos desafíos para un enfoque de API moderno. Es decir, los problemas de estabilidad y seguridad plagan las API y plantean obstáculos importantes para la transformación digital si no se controlan.
Recientemente, me reuní con Pandey para discutir cómo las empresas deberían evolucionar su enfoque hacia las API. Pandey, que supervisa una división de incubación interna en Cisco, tiene un gran enfoque en el progreso de la forma en que los desarrolladores administran sus estructuras API. Según Pandey, la arquitectura API requerirá una inversión continua en conectividad, seguridad y monitoreo.
Las expectativas del cliente impulsan la adopción de API
¿Qué está alimentando el interés por las API? Por un lado, el futuro del trabajo es híbrido, dice Pandey. De hecho, esta nueva era ya está sobre nosotros . Un trabajo más distribuido significa una mayor digitalización, herramientas SaaS y operaciones basadas en la nube, todo lo cual contribuye a un aumento en el uso de API web.
Los consumidores finales ahora interactúan con casi todas las marcas a través de un intermediario digital. Las expectativas digitales son altas y los estudios muestran que las aplicaciones solo tienen una oportunidad de ganarse la confianza del usuario . “La aplicación moderna es el rostro de la marca. Este no era el caso hace una década ”, dice Pandey. “La experiencia que tiene un cliente en una aplicación definirá cuál es la confianza y la reputación de la marca”.
La fluidez del uso de un servicio digital puede dictar rápidamente qué negocio apoyará un usuario. Por ejemplo, considere dos tipos de aplicaciones bancarias para una solicitud de préstamo. En uno, ingresa manualmente todos sus detalles por adelantado: el monto del préstamo, su información financiera, W2 y presiona ‘Guardar’. Luego, el sistema dice que le devolverán la llamada una vez que un representante haya tenido tiempo de revisar su material. Sin embargo, en una segunda aplicación, el sistema completa automáticamente los campos sincronizándolos con sus cuentas financieras. Busca su historial y determina la aprobación de un préstamo en el acto. Es obvio qué aplicación prefieren los usuarios que buscan una respuesta rápida.
Este escenario describe la importancia de la alta conectividad, la disponibilidad y el rendimiento para la experiencia del usuario. Tenemos la tecnología para permitir una transacción de este tipo, pero construir un proceso tan automatizado es imposible sin la alineación digital correcta. “Esa es la razón por la que creo que un mundo en el que las API son prioritarias es de crucial importancia”, dice Sandey. Al sincronizar con API internas y externas, los desarrolladores pueden elegir las capacidades existentes para evitar reinventar la rueda. Esto impulsa el rápido desarrollo necesario para ofrecer una alta velocidad de funciones.
Aumento de la complejidad en un mundo impulsado por API
Debido a la necesidad de una mayor velocidad de funciones, estamos viendo un aumento de varias API para alimentar cada subsistema, lo que aumenta la complejidad en todos los ámbitos. Por ejemplo, considere la tecnología requerida para construir un retiro de cajero automático completamente sin contacto (muy necesario durante la pandemia). Aquí, el viaje del cliente es relativamente simple: busque el cajero automático más cercano, conduzca hasta el cajero automático, autentíquese, ingrese la cantidad y retire el efectivo. Si bien esto es sencillo para el usuario, el back-end implica varias llamadas API y sincronización entre hardware y software.
- Interfaz : debe interactuar con las API móviles a través de un SDK de iOS o Android. La cámara y el uso compartido de la ubicación deben estar activados.
- Back-end : back-end de AWS en la nube. Nube única para almacenar la aplicación.
- Interactuar : debe interactuar con las API de los proveedores de SaaS, extraer datos del cliente de Salesforce y utilizar la API de reconocimiento facial, calculando la proximidad de los usuarios para mejorar la autenticación.
- Transaccional : debe aprovechar la infraestructura bancaria central para validar la transacción. Probablemente este sea todavía un proceso de mainframe.
- API de Edge local: es necesario comunicarse con la sucursal local y confirmar la consistencia de efectivo del cajero automático.
- Actualización : Por último, el sistema debe actualizar el sistema local, de borde, Salesforce, AWS y el front-end antes de liberar el efectivo.
3 declaraciones de problemas para API
Cuando la tecnología funciona como por arte de magia, es fácil dar por sentado lo que ocurre debajo de nuestras manos. Y como puede ver en el ejemplo anterior, ¡se necesitan muchas conexiones API para crear una función simple!
Vemos una explosión de API detrás de cada aplicación. Sin embargo, para que este nuevo ecosistema prospere, Sandey reconoce tres desafíos principales para la arquitectura impulsada por API: conectividad, seguridad y monitoreo.
1. Conectividad
El consumo de API es bastante variable. Los desarrolladores primero deben descubrir la API correcta para cada tarea. Después de eso, deben descubrir cómo consumir la API y si usa políticas consistentes. Por último, deben admitir una capa de red para garantizar que los sistemas puedan comunicarse entre sí. Sin un tejido conectivo consistente, la integración de API podría volverse peligrosa.
En términos de consistencia, muchos estilos de diseño de API diferentes abarrotan el mercado. Hay REST, GraphQL, gRPC y otros estilos de comunicación, como Kafka y PubSub. También hay diferentes formas de definir y documentar las API, a saber, OpenAPI y AsyncAPI. Estos matices pueden hacer que el uso de una API en comparación con la otra sea bastante diferente.
“Incluso con la capa de API nativa de la nube moderna, existe disparidad y heterogeneidad”, comenta Sandey. “Hay toda una táctica ahí fuera”. Según Sandey, mejorar la coherencia de la comunicación con puntos finales de medios y puntos finales de datos, así como llevar el bus impulsado por eventos a un mundo nativo de la nube, serán elementos necesarios para aumentar la coherencia de la conectividad API.
2. Seguridad
Cuando su pila está construida con API, su perímetro está esencialmente a una llamada de API del mundo externo. “Todo el tiempo de ejecución de cada aplicación moderna es Internet de par en par”, dijo Sandey. “Todas las API están en todas partes”. No es de extrañar que Gartner prediga que para 2022, las API serán el vector de ataque más frecuente.
Sandey describe dos tipos de API en el desarrollo moderno y cómo requieren una respuesta de seguridad única:
- Desarrollado y expuesto internamente : una función se genera y expone internamente como una API. Este servicio podría escribirse utilizando código monolítico y exponerse con un contenedor de API. O podría ser un microservicio nativo de la nube diseñado explícitamente para que el desarrollador pueda volver a utilizarlo. Independientemente, es imperativo proteger las API internas a través del análisis de código. Para detectar vulnerabilidades, Pandey recomienda herramientas como Portshift para proporcionar análisis de seguridad para activos internos. Además, Pandy recomienda soluciones como AppDynamics para una gama más amplia de protección.
- SaaS externo basado en la nube : con el auge de los dispositivos móviles y la nube, más activos se ubicarán fuera de la organización. Los proyectos de software se vinculan continuamente a software como servicio externo, como Twilio, Salesforce, Shopify o Stripe a través de llamadas a la API. Sandey cree que un motor de puntuación de reputación podría ayudar a evaluar estos servicios para mejorar el control de seguridad sobre dichas API.
Desarrollar un puntaje de reputación, especialmente para API de terceros, podría mejorar las métricas y la seguridad. “¿Hay secuencias de comandos cruzadas? ¿Los certificados son nuevos? ¿Cumple con el RGPD? ” preguntas Sandey. Sugiere que los puntajes de reputación de API podrían integrarse en un canal IDE o CI / CD local. Esto informaría a los desarrolladores de las repercusiones en la seguridad desde el principio, lo que ayudaría a la seguridad de la API a “desplazarse hacia la izquierda”.
3. Monitoreo
Tener una visión holística de todo el viaje digital es esencial para detectar cuellos de botella y depurar. Es parte del mantra actual sobre la disminución del tiempo medio de recuperación (MTTR). Sin embargo, la monitoreo de pila completa que va más allá de las llamadas API sigue siendo un área que requiere madurez.
“Primero, la industria quería saber ‘qué está sucediendo’, luego ‘dónde está sucediendo’. Ahora, queremos saber ‘¿por qué está sucediendo?’ Dijo Pandey. “No se puede llegar al por qué antes de tener un rastreo. Creo que el rastreo será la forma de facto de hacer monitoreo en el futuro “.
“Un rastro representa el viaje completo de una solicitud o acción a medida que se mueve a través de todos los nodos de un sistema distribuido”, define Samuel James . Sin embargo, el rastreo no puede funcionar correctamente de forma aislada. El rastreo completo también debe ser escalable y deliberado, considerando todas las capas y recorridos en la web para exponer los problemas.
Por ejemplo, Pandey describe cómo los desarrolladores detrás de una aplicación bancaria notaron una alta latencia de tráfico entre dos instancias en la nube. Mediante el uso de un sistema de monitoreo robusto, rastrearon el problema hasta una instancia de memoria que se comportaba mal en una ubicación local en un centro de datos privado. “Se necesita una capacidad de observación completa para ver todo eso”, dice Pandey.
Pensamientos finales
En el clima digital acelerado de hoy, la experiencia de la aplicación es realmente lo que genera fe en una marca. A menudo, la responsabilidad de crear esta confianza recae sobre los hombros del desarrollador. “¿Quién es responsable? Es el desarrollador de la aplicación”, dice Sandey. “Se están asegurando de que todo esto sea seguro. Están bajo una presión extrema “.
Las API son una respuesta para aliviar esta presión. Sin embargo, el nuevo paradigma de API plantea nuevos riesgos de seguridad. En lugar de utilizar bibliotecas de código internas, una aplicación puede estar interactuando con una gran cantidad de API basadas en la nube, cuya reputación no siempre es segura. Los estilos de API dispares dificultan las conexiones. Además, los equipos no siempre tienen una visión completa de los cuellos de botella detrás de las llamadas web.
En el futuro, es probable que veamos una inversión continua en áreas como conectividad, seguridad y monitoreo para mantener API estables. Además, a medida que aumenta la confianza en la integración, estos rasgos se volverán más esenciales para respaldar el desarrollo continuo de aplicaciones. Porque, como describe Sandey, “si no está impulsando funciones, una marca sufre”.
Por Bill Doerrfeld