Header Ads Widget

Ticker

6/recent/ticker-posts

5 beneficios de usar la virtualización para probar su API

 

API de prueba de virtualización apis nórdica doerrfeld-01

Los entornos simulados no son un concepto ajeno al desarrollo web. Especialmente para las interfaces de programación de aplicaciones (API) que pueden necesitar crear una simulación de su servicio con fines de prueba , la virtualización es una opción que puede ir más allá de su explorador de API o GUI promedio.

Tras el lanzamiento de mejora del explorador de API de Dropbox , ahora Amazon ha anunciado recientemente una función de integración simulada a su puerta de enlace API. La virtualización lleva las pruebas simuladas un paso más allá, permitiendo que las llamadas a la API y las respuestas simuladas se codifiquen en la etapa inicial del desarrollo de la aplicación, lo que permite tanto a los proveedores de API como a los desarrolladores de API medir el rendimiento de manera bastante detallada antes de un lanzamiento oficial de la API.

Y a medida que el desarrollo de la API web se vuelve más iterativo y cambia constantemente (según Michael Wawra de Twilio, su API nunca está realmente terminada ), algunos proveedores están impulsando la simulación como la solución para ayudar a mantener ágil una plataforma API completa.

¿Qué es la virtualización de servicios?

virtualización de servidores apis nórdicos

En el mundo de la programación, la virtualización de servicios es un método para abstraer el comportamiento de las aplicaciones impulsadas por la nube. “Burlándose de los esteroides”, la virtualización no solo se burla de una función específica, sino que emula el mismo rendimiento que lo haría un producto final. Las operaciones de desarrollador pueden usar servicios virtuales para comenzar las pruebas funcionales, de integración y de rendimiento desde el principio, en lugar de después del lanzamiento oficial de un producto.

¿Por qué virtualizar un producto? En el caso de los productos físicos, puede significar evitar una retirada importante del mercado. En su charla con las API nórdicas, Matti Hjelm hace referencia a los fallidos Fun Snacks de LEGO. Hecho con forma de ladrillos LEGO , los padres se enfurecieron con LEGO por enseñar a los niños a comer cosas que parecen idénticas a los ladrillos LEGO normales.

En retrospectiva, los Fun Snacks de LEGO carecían de las pruebas de usuario adecuadas Para los servicios web, la virtualización puede ayudar de manera similar con ese aspecto de garantía de calidad y simular el comportamiento real, capturar información y utilizar la retroalimentación para reemplazar o cambiar componentes, con suerte para evitar el peligro de asfixia para desarrolladores y usuarios finales.

¿Qué es la virtualización de API?

La virtualización de API le permite aislar componentes y simular API externas no basadas en la red. Esta simulación de comportamiento en tiempo de ejecución utiliza una herramienta en lugar del mcCoy real: una copia virtual de su API que refleja el comportamiento de la versión de producción final.

En el software web, un producto terminado sin errores es un sueño. En cambio, ocurren ciclos de desarrollo rápidos (y continuos) que necesitan pruebas inmediatas. A continuación, describiremos cinco beneficios que la virtualización de API puede aportar.

1: Prueba de falla en un entorno seguro

¿Quiere ver cómo funcionan los mensajes de error? ¿Cómo funcionan los límites de tarifas? Desde la perspectiva del usuario, una API virtual se ve y se comporta como un servicio real. Sin embargo, alejado del tiempo de ejecución en vivo, la virtualización se puede utilizar para simular escenarios drásticos. Utilice un emulador para simular el comportamiento del mundo real, como el tiempo de inactividad , las respuestas de API lentas o erráticas para ver cómo se comporta una aplicación cuando se enfrenta a estos dilemas.

Una gran prueba puede proporcionar información sobre lo que sucede cuando un cliente llama a una API que de repente responde de manera extraña y lo hace en un entorno neutral y sin riesgos.

Relacionado: La importancia de las métricas de API

2: Aumente la productividad del desarrollo

La inyección de dependencias es una situación complicada y, a largo plazo, los desarrolladores no pueden utilizar simulacros de escritura. La virtualización de API permite reducir las redundancias en el ciclo de desarrollo y enfatizar un proceso de integración continua más fluido.

Etapas de madurez del software de escritorio

Según Matti Hjeml de SmartBear , se puede decir que el software de escritorio típico tiene un ciclo de vida de desarrollo compuesto por estas etapas:

  • 1: La etapa tecnológica. Desarrolla su funcionalidad principal con una interfaz de usuario (UI) simple y ordenada.
  • 2: Para mantenerse por delante de la competencia o en respuesta a las consultas de los clientes, se agregan funciones. El diseño puede convertirse en una segunda prioridad en esta etapa, lo que genera un desorden en la interfaz de usuario.
  • 3: Los clientes piden simplicidad en respuesta a una interfaz de usuario desordenada.
  • 4: El software se convierte en una mercancía y se integra con otro software, complementos u otras herramientas mediante el uso de elementos integrables, complementos, SDK, etc.

Etapas del mercado de API

Hjmel ve un ciclo de desarrollo muy similar dentro del mercado de API:

  • 1: Conjunto de características únicas, ¿difícil de usar?
  • 2: agregue funciones para mantener a los competidores atrás
  • 3: Mejore DX para que los desarrolladores de terceros sigan regresando

Un aspecto importante de la etapa tres, mejorar la experiencia del desarrollador , es servir la API con los entornos de prueba adecuados Ya sea con documentación interactiva, sandbox o API virtual, tener una forma de probar una API es un engranaje importante para complementar su ecosistema de desarrolladores.

3. Las pruebas de rendimiento aisladas ahorran dinero

En la práctica normal de desarrollo de aplicaciones, puede simular otras API, pero en el proceso se vuelve demasiado independiente, utilizando un código simulado que imita la API que no tiene control sobre usted mismo. Al virtualizar su propia API, los proveedores de la plataforma de API pueden eliminar este tipo de dolores de cabeza y permitir que se comparta más con los usuarios desarrolladores de API. Sin embargo, esto debe hacerse con tacto.

Compartir entorno de prueba

¿Por qué no comparte simplemente un entorno de prueba que se ejecuta en servidores internos con el usuario? Según Hjelm,

“El problema es que en esta nueva economía las necesidades de los usuarios son impredecibles. No es como el mundo SOA, en el que tenía el control de quiénes eran los usuarios y cuándo se les permitía usar su sistema ... No se puede predecir cuándo ni de dónde provienen las llamadas a la API y cuánto ”.

Si el uso general es impredecible, lo más probable es que la prueba también sea impredecible. El costo del ancho de banda para las pruebas aleatorias de gran tamaño puede ser una carga para el servidor de un proveedor de API. Asi que…

Fomentar las pruebas locales

Para combatir este problema, Hjelm anima a los proveedores a "crear versiones virtualizadas compartibles y distribuibles de su API". Esto puede simplificar las pruebas a nivel local y otorgar a los desarrolladores autonomía y control. Todavía muestra un compromiso activo del propietario de la plataforma en las pruebas, la integración y el desarrollo de terceros.

La ejecución de servidores de prueba puede resultar costosa y las demandas de pruebas de rendimiento son en gran parte desconocidas en la etapa inicial del desarrollo. Si se acumulan los microcostes incurridos por las llamadas a la API, un desarrollador de API podría ahorrar dinero utilizando una API virtualizada, en lugar de realizar pruebas de rendimiento en la versión de producción.

Conozca también ¿Qué hace que una API sea ágil?

4. Reducir el tiempo de comercialización

Las API son distintas de los productos normales, ya que los ingresos potenciales dependen de un ciclo de vida largo de dos productos. Primero está el ciclo de vida del producto API en sí mismo, en el que se debe planificar, desarrollar y formar un ecosistema de consumidores desarrolladores. Después de esta tremenda hazaña, las API dependen de los desarrolladores para crear aplicaciones exitosas antes de que se realicen una cantidad significativa de llamadas (y se generen ingresos para el proveedor de API).

Sin embargo, mediante el uso de técnicas de virtualización, este ciclo se puede reducir significativamente. Al ofrecer una API virtual en un modo de desarrollo continuo, los desarrolladores externos pueden comenzar a crear aplicaciones antes de que el punto final real esté activo . Esto podría reducir significativamente el tiempo desde que se desarrolla la API hasta que un usuario final realiza la primera llamada dentro de una aplicación de terceros.

5. Se puede utilizar la virtualización

Una API virtual debe emular la funcionalidad principal de su API normal y más. Debería poder simular un comportamiento extraño o un tiempo de respuesta lento (ocurrencias naturales) y responder con mensajes de error típicos. Debe ser fácilmente configurable, respaldando la seguridad con OAuth 2. Como dice Hjelm, diseñe su API virtual como impulsada por datos, distribuible e implementable localmente.

“Al registrar y almacenar respuestas conocidas a solicitudes predecibles, luego simular el servicio y reproducir datos conocidos (" enlatados "), API Virtualization permite que los sistemas de compilación hagan más, con resultados más rápidos y predecibles. Esto no elimina la necesidad de realizar pruebas de un extremo a otro, pero permite que el equipo tenga más confianza en cada compilación ".
Matthew Heuser

Se puede pensar que este es un proceso difícil, pero se puede implementar en unos pocos pasos. En una publicación anterior, usamos el servicio ReadyAPI de SmarBear para simular el punto final de una API REST y crear un servicio virtual en aproximadamente 20 pasos.

Puerto seguro: inconvenientes, riesgos y mitigaciones

  • Locura virtual : existe el riesgo de que la API de producción no coincida con la API virtual que se ha utilizado para las pruebas. Los equipos deben tener comprobaciones automatizadas para realizar pruebas de un extremo a otro cuando utilizan la API de producción.
  • Análisis : ¿Cómo analizo los patrones de uso? Puede utilizar Google Analytics en la aplicación.
  • Mantenimiento complejo : según Hjelm, no debería ser difícil mantener una API virtual, ya que las API ofrecen vistas simplistas de la complejidad.

"Virtualize Me": su API

Virtualizar su entorno de prueba y hacerlo a menudo y desde el principio puede acelerar los ciclos de desarrollo rápidos y aumentar la productividad interna. Algunos argumentan que el futuro verá la aparición de más entornos de simulación complejos y Sandbox-as-a-services . Como dice Kin Lane :

“Veo que surgen servicios para satisfacer esta necesidad, como ocurre con Sandbox, que es una capa de servicio del ciclo de vida de la API que creo que solo crecerá en los próximos meses. Puedo ver la necesidad de crear una caja de arena simple para cualquier API a medida que avanza, pero también puedo ver la necesidad de entornos de simulación sofisticados construidos sobre API comunes, lo que permite que algunas aplicaciones prueben escenarios más avanzados y especializados ".

Beneficios de la virtualización de API

La virtualización de API permite versiones seleccionadas rápidamente de la API para que su ecosistema de desarrolladores las emule de inmediato. Para revisar, los beneficios de la virtualización de API pueden incluir:

  • Mayor productividad general
  • Menor tiempo de comercialización
  • Un verdadero entorno para el sandboxing de terceros
  • Pruebe escenarios del mundo real sin riesgo
  • Elimina la necesidad de que los desarrolladores individuales escriban y reescriban sus propios simulacros.

Otros recursos sobre virtualización de API, Sandboxes:

  • Tutorial Creación de una API lista para servicios virtuales, API nórdicas
  • Patrones de virtualización de API
  • ¿Qué es la virtualización de API?
  • ¿Qué es una API Sandbox?
  • Virtualización de API, Sam Ramji
  • Ojalá todas las API tuvieran un entorno Sandbox de forma predeterminada, API Evangelist
  • Pilas de API virtualizadas, API Evangelist
  • Salvadera
  • Diseño de API RESTful: Virtualización de API, Brian Mulloy | Apigee
  • La virtualización de servicios como alternativa a la burla

Publicar un comentario

0 Comentarios