Azure App Service, Web App y Slots

Azure App Service es uno de los servicios PaaS que ofrece Microsoft Azure. Para desplegar aplicaciones, como por ejemplo aplicaciones Web, tenemos opciones como:

  • Crear VM en Azure (IaaS) y en ellas instalar IIS, .NET, SQL Server, … En la cual los administradores gestionamos todo.
  • Usar la plataforma Web App Service o como se denominaba antes Web Site, que forma parte de App Service, en la que podemos desplegar directamente aplicaciones. Los administradores no somos responsables de gestionar las VMs que ofrecen los servicios, pero sí de dimensionar la infraestructura para el servicio que se quiere ofrecer.

Si queremos desplegar una aplicación Web, debemos saber que implica al menos la creación de dos recursos, que son la propia Web App (el recurso en el que se ejecuta la aplicación) y el App Service Plan (Otro recurso que define propiedades como región, tamaño, cuenta de almacenamiento para los datos…)

Un App Service Plan puedo desplegarlo en 5 tiers o niveles distintos:

  • Free: recursos compartidos.
  • Shared: recursos compartidos.
  • Basic: recursos virtuales para mí.
  • Standard: recursos virtuales para mí.
  • Premium: recursos virtuales para mí.
  • Isolated (aislado): Microsoft proporciona recursos físicos en exclusiva para ese App Service Plan. Solo para nosotros, no se comparte.

tiers

Fuente Microsoft.

Slots y Swap de Slots

Perfecto, ya podemos hacernos una idea de que es un App Services, pero ¿Qué es un slot? ¿Qué puedo hacer con un slot?

Pues bien, una característica muy interesante de las Web Apps son los famosos slots de despliegue que comentaba. Es similar al production/staging de los Cloud Services, pero mucho más potente, pues podremos tener 5 (4 + 1) slots diferentes en la versión Standard donde por defecto, ya se crea un slot de producción y hasta 20 podemos tener en la versión Premium como veis en la imagen anterior.

Cuando desplegamos una aplicación sobre un objeto web App, podemos tener varias versiones de aplicación de las que una puede ser por ejemplo la versión V.1 que tengamos en producción y otra versión V.2 que tengamos en entorno de pruebas para depurarla antes de sacarla a producción; aquí viene una gran utilidad: no es necesario crear un App Service Plan para cada versión, ni tampoco varias Web Apps dentro de un mismo App Service Plan ya que, dentro de un Web App podemos crear (dependiendo del SKU como he dicho) varios Slots de despliegue, de forma que cada uno de ellos contenga una versión de la aplicación desplegada y en otra contemos con una versión diferente que deseemos probar antes.

Y aquí llega otro punto importante… bien, tenemos los slots con diferentes versiones, en producción y el test por ejemplo… ¿Y ahora? Pues ahora usamos la característica de Swap Slot (intercambio de slots); una vez probada en un slot de test la aplicación en cuestión, podemos intercambiar rápidamente un slot con otro y sacar a producción la que ya tenemos revisada.

Resumen

En resumen, Azure Web Apps nos proporciona todo lo necesario para el mantenimiento de varios slots de despliegue en aplicaciones web. Esta característica nos facilitará la tarea de desarrollo, test, despliegue y mantenimiento de nuestra aplicación en la nube:

  • De 5 o 20 slots diferentes: En función del SKU podemos crear slots de desarrollo, de test, producción…rápidamente.
  • Alta disponibilidad y 0 tiempo de caída: el intercambio entre slots no pierde peticiones durante el mismo, es una redirección de tráfico y además no hay tiempo de caída ya que el intercambio se hace con la aplicación ya funcionando.
  • Múltiples lenguajes: Se puede usar con Java, Python, PHP…

Para que podáis ver la sencillez con la que podemos hacer esto desde el portal de Azure y desde Powershell (no podemos olvidarnos de la herramienta que tantas veces nos ha salvado) os dejo el siguiente videotutorial en el que os lo enseño como hacerlo sobre usando un SKU Standard y os dejo también los comandos PowerShell para lograrlo desde la consola en el mismo vídeo.

https://web.microsoftstream.com/video/0ada8644-da62-4ce9-927f-856232964bec

Espero que os haya ayudado el post y el vídeo, saludos y muchas gracias.

 

Autor/a: Borja Jiménez García

Curso: Microsoft MCSA Windows Server 2016 + Microsoft MCSE Cloud Platform & Infrastructure

Centro: Tajamar

Año académico: 2017-2018

LinkedIn: https://www.linkedin.com/in/borja-jimenez/

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.