Testing en producción con Azure Web Sites

¿Recuerdas haber leído sobre nuevas funcionalidades agregadas a Facebook, Twitter, etcétera pero que sólo unos pocos han podido probar o ver? A su vez, puede pasar que esas nuevas características no lleguen a ser vistas por el resto de usuarios o por el contrario sea lanzada a nivel general en cuestión de días o semanas. Esta es una práctica que las compañías utilizan a menudo con el fin de probar cambios visuales o de funcionalidad en su aplicación, para saber si son aceptadas por sus usuarios, capturar nuevos casos de uso, etcétera.

Si trabajamos con Microsoft Azure Web Sites, podemos hacer uso de una herramienta disponible a través del nuevo portal llamada Testing in production, la cual nos permite justamente este comportamiento: definir porcentajes del tráfico de producción con el fin de derivarlo a entornos experimentales o cualquier otro uso que decidamos darle.

Configuración

Accedemos al nuevo portal a través de https://portal.azure.com/ y localizamos nuestro sitio web desde Browse > [Filter by] Websites. En la parte inferior de la información del sitio, veremos que hay un apartado llamado Testing in production donde nos avisa que todo el tráfico se está sirviendo a través del slot de producción:

Testing in production section

De lo primero que se nos advierte es que debemos tener un plan Standard antes de crear un nuevo slot:

Standar plan before adding a slot

Los slots nos permiten tener varias versiones de un mismo sitio web, como ya se explicó en un post anterior. Cada una de estas versiones tiene una configuración independiente, por lo que podemos hacer subidas a cada uno de los sitios sin afectar al resto.

Para modificar el plan, basta con acceder al apartado Pricing tier y seleccionar el modelo Standard que más se ajuste a nuestras necesidades:

Pricing tier section

Una vez actualizado el Web Hosting plan, podremos crear un nuevo slot. En este ejemplo lo he llamado new-facelift, ya que me gustaría que parte de mi tráfico probara un entorno diferente con algunos cambios visuales del sitio web:

Testing in production add slot

Para este ejemplo es más que suficiente que muestre el contenido por defecto, cuando se crea un nuevo web site o slot, con el fin de comprobar el funcionamiento de Testing in production.

El último paso es definir la cantidad de tráfico que queremos que sirva el nuevo slot y cuánto será manejado por producción como tal. Para ello, seleccionamos el slot generado y aplicamos un porcentaje:

Testing in production - Ramp up testing

Guardamos los cambios y probamos en dos navegadores distintos el acceder a la URL de producción:

Testing in production result

En la imagen anterior se puede comprobar que cada navegador está accediendo a la misma URL pero con diferente resultado.

Si queremos averiguar, o modificar, con qué entorno debe tener afinidad el usuario durante el uso de la aplicación podemos acceder a las herramientas del navegador y acceder al apartado que gestiona las cookies. En él podemos comprobar que se genera una llamada TiPMix, la cual contiene el porcentaje sobre el cual está trabajando. En este ejemplo, si el porcentaje es menor al 50% las peticiones serán atendidas por el nuevo slot y, en caso contrario, el resto será manejado por el entorno de producción:

TiPMix

Si eliminamos dicha cookie, se reasignará un nuevo porcentaje.

Espero que sea de utilidad.

¡Saludos!