Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

17 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 26 de marzo de 2019

Blogger invitado

Blogger invitado

Jorge Turrado

Apasionado de la programación, siempre buscando la manera de mejorar el día a día con el desarrollo de tecnologías .NET. Apasionado de este momento tan cambiante y fabuloso para ser desarrollador C#.
Blog: Fixed Buffer
Mi tercera entrada en Variable Not Found, ¡esto se va a convertir casi en tradición ya! Hoy vengo a hablaros sobre cómo hacer aprovisionamiento de recursos en Azure para publicar nuestra aplicación web en Azure Web App.

Para hacer esto tenemos varios caminos posibles, unos más automatizables que otros, y cuál elegiremos dependerá de nuestras necesidades:
  • A través de la interfaz web de Azure
  • Desde Visual Studio
  • Usando Azure Resource Manager (ARM).
En este artículo detallaremos, paso a paso, cómo utilizar cada una de estas opciones.

Crear la Web App a través de la interfaz web de Azure

En primer lugar está la opción más obvia, que es ir al portal de Azure y crearla desde allí, para eso, nos tenemos que identificar en Azure, y dentro del “dashboard”, pulsamos sobre “Crear un recurso”:

Crear recurso

Dentro del menú, vamos a Web App:

Opción Web App

Esto nos llevará a un nuevo menú, donde vamos a dar un nombre a nuestra aplicación, elegiremos si es Windows o Linux, así como el plan de precios:

Settings de la aplicación

Al seleccionar sobre el plan de precios, nos va a abrir un nuevo menú donde seleccionaremos algún plan ya creado, o uno nuevo, en caso de no existir ninguno, se creará uno por defecto:

Plan de precios

Al pulsar sobre “Crear nuevo”, nos lanza un último menú, donde elegir la región donde queremos que este el plan, así como el tipo de equipo donde queremos que funcione nuestra Web App:

Nuevo plan de precios
Una vez que tengamos todo seleccionado, al pulsar crear, se ejecutará la implementación de los recursos:

Implementando recursos
Una vez que termine, se puede consultar desde el panel “Todos los recursos”:

Vista de todos los recursos

Crear la Web App desde Visual Studio

Una segunda opción es utilizar la propia interfaz de publicación de Visual Studio para aprovisionar los recursos. Para ello, dentro de nuestro proyecto, vamos a publicar desde el menú contextual:

Menú contextual de publicación

Y desde ahí, en la ventana, seleccionamos “App Service” y “Crear nuevo”:



Al pulsar sobre “Publicar”, se inicia el asistente donde nos vuelve a pedir los datos de nuestro App Service:

Settings del app service

En él, podemos elegir el nombre, el grupo de recursos y el plan de hospedaje para nuestra web. Una vez que lo hayamos elegido, basta con pulsar sobre el botón “Crear” para lanzar el aprovisionamiento.

Una vez haya terminado, se lanzará la publicación, consiguiendo que nuestra web esté online. Si volvemos a comprobar en el portal, podremos ver que el Web App esta creado correctamente:

Web App creada correctamente

Crear la Web App usando ARM (Azure Resource Manager)

Una tercera opción, que además es la que usan las otras 2 por detrás, es utilizar el Azure Resource Manager (ARM). Con ARM, podemos crear mediante código plantillas de implementación de recursos, que además pueden ser versionadas junto al resto del proyecto. Mediante estas plantillas, podemos conseguir configuraciones complejas tal cual lo haríamos en la interfaz web, uniendo por ejemplo nuestra Web App con un Storage y una base de datos, consiguiendo así que las siguientes implementaciones no impliquen un montón de trabajo de creación y configuración.

Otro escenario en el que puede ser muy interesante utilizar estas implementaciones es en equipos de trabajo donde queremos que los recursos sean los mismos para todo el equipo, sin tener que preocuparnos de generar “n” espacios de trabajo iguales y asignarlos, ya que, muy cómodamente, cada persona puede generar su entorno de trabajo igual a los demás.

Para poder utilizar ARM desde Visual Studio, es necesario añadirle la carga de trabajo “Desarrollo de Azure”:

Workload Desarrollo de Azure

Una vez que lo tenemos, basta con que añadamos un nuevo proyecto a nuestra solución de tipo “Grupo de recursos de Azure”, dentro del menú “Cloud”:

Nuevo grupo de recursos

Al crearlo, nos lanzará un pequeño asistente que nos permitirá seleccionar templates predefinidas que nos puedan resultar interesantes. Estas templates se pueden modificar, añadiendo o quitando lo que nos interese, pero son una buena base desde la que partir. En nuestro caso, la plantilla es suficiente para hacer un aprovisionamiento básico para una Web App sobre Windows sin ningún añadido, ni bases de datos ni storages.

Para eso, seleccionamos las plantillas de Azure QuickStart, buscamos “101-webapp-basic-windows” y pulsamos sobre “Aceptar”:

Selección de templates

Esto nos ha creado un proyecto listo en nuestra solución con los ficheros necesarios para hacer la implementación de recursos en Azure:

Proyecto de implementación

Para lanzar el aprovisionamiento, basta con hacer clic derecho sobre el proyecto, y sobre el menú contextual, seleccionamos “Implementar -> Nuevo…”:

Nueva implementación

Esto nos lanza un último menú, donde tenemos que seleccionar el grupo de recursos donde queremos hacer el aprovisionamiento y sus parámetros. Dentro de estos parámetros, están cosas como el nombre de nuestra Web App y el tipo de máquina donde tiene que correr:

Opciones de implementación
Editar parámetros

Una vez hecho esto, pulsamos sobre “Implementar” y después de esperar a que termine, ya tendremos nuestros recursos aprovisionados.

Despliegue realizado

Publicando sobre Azure App Service

Una vez que el recurso está creado mediante cualquiera de los tres métodos, ya sólo falta poner nuestra web en ese recurso. Para ello, desde el menú de publicación de Visual Studio, seleccionamos “App Service”, y esta vez, marcamos “Seleccionar existente”:

Publicar aplicación

Al pulsar “Publicar”, se nos despliegan todos los recursos disponibles en nuestra cuenta de Azure:

Recursos disponibles

Al elegir nuestra Web App y pulsar en “Aceptar”, se creará el perfil de publicación y nuestra web será desplegada sobre el recurso que hemos seleccionado. De aquí en adelante, basta con que volvamos a publicar sobre ese perfil cada vez que necesitemos modificar nuestra web.

Es importante añadir que, con lo que hemos hecho, sólo hemos creado una web en producción, y que, si volvemos a publicar y cometemos errores, nuestra web puede quedar inaccesible o accesible con errores. Además, el tiempo que dure la publicación nuestra web estará inaccesible, por no hablar de que no es obligatorio pasar las pruebas unitarias para publicar, basta con que compile…

Si nuestra web esta en producción y queremos evitar estos posibles fallos, la mejor idea puede ser utilizar webs con diferentes Slots (Ranuras) donde la publicación se haga automáticamente después de pasar por un sistema de CI. Precisamente de esto hablo en mi entrada:
Con esto me despido, ha sido un placer volver a publicar en Variable Not Found, donde espero volver (después de un tiempo, eso sí), con alguna nueva e interesante idea.
José M. Aguilar > Como siempre, es un placer tenerte por aquí, Jorge. Ya sabes que las puertas están abiertas para cuando te apetezca de nuevo. Mientras tanto, continuaremos siguiéndote de cerca en Fixed Buffer ;)
Publicado en Variable not found.

Aún no hay comentarios, ¡sé el primero!