Header Ads Widget

Ticker

6/recent/ticker-posts

Virtualización, Sandboxes y Playgrounds para una API saludable

 

API-playground-sandboxes-virtualización

Una API es tan buena como se la conoce. Poner una API en manos de un desarrollador, demostrar el poder de su solución y proporcionar un entorno en el que puedan probar y manipular datos de forma controlada y supervisada es quizás uno de los héroes anónimos más importantes de la publicación de API.

Tener una demostración funcional e impresionante para su API es una gran idea , ya que proporciona una forma para que los usuarios potenciales identifiquen sus puntos finales y prueben su propio código para ver cómo se comporta la API. Esto no solo aumenta su comprensión de su producto, sino que también aumenta su confianza en que su solución es el camino a seguir: el llamado factor "sorpresa".

En este artículo, revisaremos los tipos de demostraciones de API , específicamente qué es una API Sandbox, Playground y Virtualization, así como los beneficios entre cada una. Mostraremos algunos ejemplos de su implementación en portales de desarrolladores seleccionados y demostraremos lo importantes que son en realidad.

La barrera del usuario / consumidor

Hay un factor importante que los desarrolladores a menudo pasan por alto y que es clave para las demostraciones de API de calidad : la barrera de usuario / consumidor . Esta es la barrera que tiene un consumidor potencial al adoptar su producto o solución. Cerrar esta brecha es la faceta más importante de una transacción comercial en el espacio de la API , ya que literalmente determina si tiene o no negocio y uso.

Esta barrera puede ser muy difícil de cruzar a veces, incluso cuando la API hace algo sorprendente. El principal problema aquí es que el mercado está saturado : si presentara, digamos, el primer reactor de fusión económico, no tendría problemas para conseguir usuarios, porque es un mercado pequeño con una gran demanda. Sin embargo, al desarrollar una API, encontrará dificultades para comunicar que su cliente de correo electrónico hace las cosas mejor, que su traductor de datos es más rápido en la codificación, etc.

¿La solución? Saque una página de la industria de los videojuegos y publique una demostración ; demuestre su producto de forma limitada y controlada. Las diferencias en el nivel de control es donde obtenemos nuestros tres temas de hoy.

Es importante tener en cuenta a medida que avanzamos en este tema que no estamos discutiendo el desarrollo de una  demostración de feria comercial , o una demostración para mostrar proyectos favoritos o características interesantes que los desarrolladores disfrutan personalmente; este es un gran potencial comercial , e independientemente de su elección entre estas tres soluciones, deben comunicar y demostrar el valor fundamental y la función de su API.

Únase a nosotros para la Cumbre de la Plataforma 2016

Sandbox de API

Si bien sus funcionalidades difieren, las soluciones presentadas aquí también se ubican en una línea bastante bien definida, desde la mayoría del control hasta el control de arrendamiento. Las diferencias entre una API Sandbox, Virtualization y Playground son esencialmente un control deslizante entre la mayor parte del control y la mayor supervisión al menor control y la menor supervisión.

Algunas características clave de una API Sandbox: a menudo alberga una interfaz de usuario interactiva y pulida, a menudo se combina con una supervisión minuciosa y, a menudo, se limita solo a un conjunto de funciones proporcionadas y señaladas como listas para ser probadas por el proveedor.

En consecuencia, una API Sandbox se puede definir mejor como así: una plataforma que permite a los usuarios y no usuarios realizar y ver los resultados de llamadas simples en un enfoque de jardín cerrado y amurallado. Si bien los usuarios registrados obviamente serían el mejor de los casos, cualquiera puede usar un sandbox ya que el sistema en sí no maneja volúmenes significativos de información privada o importante y, por su propia naturaleza, está aislado del resto del ecosistema API.

Eso no quiere decir que, aunque está cerrado, los datos que genera no se utilizan para la pista de desarrollo. De hecho, los datos generados a partir de la caja de arena son infinitamente útiles y permiten que un entorno de prueba se comparta públicamente con los usuarios mientras se desarrolla la API en sí.

Piense en una API Sandbox en la estructura de una Sandbox de la vida real en un patio de recreo. Los padres merodeando, siempre mirando, los niños pueden jugar e interactuar, pero siempre de una manera guiada y conocida. Lo mismo ocurre con muchos programas API.

El otro gran beneficio de una API Sandbox es la mitigación de preocupaciones legales y éticas. Si bien un sistema activo sería difícil de vender para la experimentación, potencialmente por parte de usuarios no registrados, un sistema privado aislado con una supervisión estricta es mucho más fácil de vender, especialmente cuando ninguno de los datos son datos de producción en vivo.

Finalmente, una API Sandbox cuenta con la ventaja de poder controlar variables que de otra manera no serían controlables. El retraso se puede simular, las defensas contra ataques DDoS se pueden probar económicamente y el equilibrio de carga se puede realizar en un sistema reducido.

Ejemplos de Sandbox

Quizás un API Sandbox con el mayor reconocimiento de nombres, el Microsft API Sandbox es un ejemplo perfecto de este enfoque. En esta caja de arena, Microsoft le permite probar sus propias llamadas y funciones dentro del paquete de API de Microsoft Office 365.

Ejemplo: recinto de seguridad de API de Microsoft

Ejemplo: recinto de seguridad de API de Microsoft

Este Sandbox de API en particular también forma parte de una colección de entornos sandbox. A través del sitio de prueba, se puede navegar a una variedad de recursos, el más útil es el entorno de pruebas de OAuth de Microsoft , que le permite probar las consultas en un sistema seguro para ver cómo la API maneja las consultas, la recuperación y otras llamadas básicas y comunes.

El beneficio aquí es múltiple: no solo obtiene todo como se indicó anteriormente en este artículo en términos de seguridad y capacidad de prueba, sino que también obtiene el gran beneficio de permitir a los usuarios experimentar e iterar, ampliando sus conocimientos y, por extensión, las bases de todos esos con los que interactúan.

Virtualización de API

En el otro lado del control deslizante, donde se reduce el control, tiene API Virtualization . Mientras que un Sandbox cuenta con capacidad de control, un enfoque amurallado, la virtualización es lo opuesto.

Al virtualizar una API , lo que fundamentalmente está haciendo es proporcionar una copia de la propia API fuera de la red. Cuando se virtualiza, la API se ejecutará en las condiciones en las que se encuentra y como si fuera una API real. Actuará como una "imagen reflejada" de la API de producción final, lo que permitirá realizar pruebas precisas en un entorno mucho menos controlado.

Por un lado, esto es malo: los datos son más vulnerables a problemas externos, su código de API está menos controlado y, esencialmente, está alojando una API duplicada si usa la virtualización como un banco de pruebas para una pista de desarrollo. Por otro lado, esto es genial: una variante verdaderamente real de su código que no es de producción para pruebas e iteraciones, expuesta a circunstancias muy reales a las que probablemente estará expuesto.

Más concretamente, API Virtualization es más precisa que API Sandbox. Mientras que un Sandbox imita el comportamiento esperado de la API funcionando correctamente, en API Virtualization, el comportamiento adecuado se replica, al igual que el comportamiento extraño, los errores y las fallas en la Arquitectura API .

La elección entre los dos extremos (sin un enfoque de “medio camino” que se detalla más adelante en este artículo) se reduce, entonces, a una simple pregunta: ¿cuánto control se desea?

Cuando se desea o requiere una cantidad excesiva de control por el tipo y formato de datos (como es el caso de los sistemas de facturación y registros médicos), entonces un Sandbox es más apropiado. Por el contrario, si se necesita menos control pero más puntos de datos del mundo real, la virtualización es la respuesta.

Ejemplos de virtualización

Cualquier API se puede "virtualizar", pero hay una amplia variedad de proveedores que pueden realizar este proceso para un proveedor. Un ejemplo de ello es la plataforma API Gateway de Axway , que proporciona una solución de virtualización de API REST .

creación de API virtual axway

Interfaz de Axway para crear y editar una API virtual

El mayor beneficio de virtualizar la API mediante un servicio como el proporcionado por Axway es que se pueden emular y adoptar una variedad de configuraciones de seguridad para probar el estado general de la plataforma, incluidas las siguientes que se enumeran en el sitio web oficial:

  • Clave API
  • Firma de Amazon Web Services: cadena de autorización / consulta
  • Autenticación básica HTTP
  • Política de invocación
  • OAuth (y OAuth externo)
  • Pasar por
  • SSL bidireccional

El principal beneficio aquí es obvio: en un Sandbox, mientras obtiene más control, solo puede probar la situación específica que creó para él. En la virtualización, prueba contra una variante del mundo real con amenazas e implicaciones de seguridad del mundo real.

Patios de juegos API

Un API Playground , entonces, es un enfoque "intermedio". Mientras que Sandbox es un área limitada, un sistema muy específico con reglas muy específicas, y una virtualización es un entorno de producción en todos los sentidos, excepto como un entorno de producción, un patio de juegos está justo en el medio.

Un API Playground combina los beneficios de ambos lados de ese control deslizante bastante bien: mientras obtienes más un conjunto de datos del mundo real, se controla y se amuralla de alguna manera al controlar las variables sobre las que se emula el sistema. Si simplemente desea probar su API y aprovechar los dos beneficios de las metodologías anteriores, esta es una gran solución.

Ejemplos de parques infantiles

Un gran ejemplo de este tipo de funcionalidad del sistema API es API Playground en Apigee . Diseñado específicamente como un "campo de juego para desarrolladores de API", el servicio cuenta con cuatro características principales:

  • Desarrollo de API llave en mano , que permite una implementación y desarrollo casi inmediato;
  • Simulacro de servidor, que permite respuestas API inmediatas ;
  • Prueba en vivo del código tal como está codificado;
  • Uso compartido de API mediante URL generadas de forma exclusiva para el desarrollo dentro del equipo.

Como puede ver por cómo se postula el servicio, el patio de juegos es exactamente lo que parece: un área de juegos un poco amurallada pero aún amplia. Siguiendo nuestras metáforas anteriores, donde una API Sandbox es una zona de pruebas con padres rondando, una API Virtualization sería más como una reunión de amigos en un parque. Ampliando esto, un API Playground se encuentra en algún lugar intermedio, con padres cerca y con ciertas reglas y expectativas asumidas, todo enmarcado dentro de un gran espacio abierto.

Zona de juegos API de Apigee

La zona de juegos API de Apigee permite simulaciones de llamadas API con fines de prueba

En consecuencia, la solución de Apigee está destinado a proporcionar una vida similar a la solución sin forzar al desarrollador que recurrir a pruebas de producción totalmente abierta.

Conclusión

Sabiendo todo esto, ¿qué tipo de demostración de API debería ofrecer un proveedor para ayudar a sus desarrolladores? En última instancia, todo se reduce al control deslizante del que hemos estado hablando a lo largo de esta pieza. ¿Cuánto control se necesita realmente y, en consecuencia, cuántos datos de la vida real desea?

Si se necesita control y los datos realistas no son un gran problema, como es el caso de la iteración básica y las pruebas de características, un Sandbox es una gran solución.

Por otro lado, si se necesita un control menos granular pero pruebas más realistas, como es el caso de las pruebas alfa / beta y las pruebas de estrés, entonces el enfoque de virtualización es la mejor solución. Si se necesita algo intermedio, que suele ser el caso de los equipos de desarrollo más pequeños que prueban funciones experimentales o pasan de la iteración básica inicial y las pruebas de funciones a la producción completa, entonces un patio de juegos puede ser más apropiado.

Cualquiera que sea la implementación exacta, la demostración de API será una parte vital de su centro de desarrolladores,  ya que tiene el poder de aumentar la incorporación y la usabilidad, tomando recursos de muestra desde lo conceptual hasta algo que un desarrollador pueda entender e interactuar físicamente.

Publicar un comentario

0 Comentarios