Categorías: Azure

Publicar una Aplicación ASP.NET 5 con Docker desde Visual Studio

En el anterior artículo te hablé sobre Docker y de sus ventajas e inconvenientes respecto otro tipo de soluciones. En el post de hoy, quiero abordar el concepto de Docker desde el punto de vista del desarrollo. ¿Cómo puedes sacarle todo el jugo? ¡Te lo cuento!


La gran ventaja que te ofrece Docker es que el desarrollo realizado está totalmente aislado del sistema donde reside el contenedor. Seguro que en más de una ocasión, te has encontrado con una incidencia por un error que se ha producido debido a una actualización de una librería (bien porque colisiona con otro desarrollo o bien por una actualización del sistema). Con Docker… ¡Esto no ocurre! Ya que dentro del contenedor solo va a residir el contenido que necesite nuestro desarrollo.

Otra de las grandes ventajas que te proporciona Docker es que hace que tu desarrollo se pueda ejecutar en cualquier entorno, independientemente del sistema sobre el que se está ejecutando. Por ello, es posible acceder a un mayor número de clientes y usuarios potenciales de nuestros desarrollos.

En este artículo quiero enseñarte cómo publicar una aplicación Asp.NET 5 dentro de un contenedor Linux que reside en Azure. Aunque, debido a la evolución de ASP.NET, éste se puede ejecutar en cualquier entorno (sea o no Microsoft).

Requisitos

  • Visual Studio 2015
  • Subscripción de Azure

En primer lugar, debes instalarte una extensión para poder trabajar con Docker desde Visual Studio. Esta extensión se llama Visual Studio Tools 2015 for Docker:

Una vez instalada la extensión, el siguiente paso es crear la Aplicación que vayas a alojar dentro del contenedor Docker. Una vez tengas preparada la aplicación, ubícate en el fichero del proyecto, aprieta el botón derecho y publica la aplicación.

De la misma forma que si publicaras en un WebSite de Azure, ahora dispones de la posibilidad de publicar dentro de un Docker. Selecciona:

Se mostrará una pantalla en la que podrás seleccionar las máquinas virtuales que tengas en tu suscripción, o bien crear una nueva donde alojar el contenedor.

En este caso, selecciona la opción de crear una nueva. Dentro de los datos se solicita: suscripción de Azure, DNS, imagen (Windows 2016, diferentes versiones de Ubuntu y de Core OS), tamaño de la VM (cores y tamaño de RAM). En esta ocasión, escoge una máquina Ubuntu con 1 Core y menos de 1Gb de RAM.

Este proceso aprovisionará una máquina en Azure. Este proceso tardará mínimo un par de minutos.

Una vez ya tengas creada la infraestructura (el contenedor donde va a residir la aplicación), establece la conexión donde vas a alojar tu desarrollo. Dentro de los parámetros que vas a configurar, estará el puerto donde va a estar escuchando tu contenedor y el puerto Host. Selecciona el 80, ya que va a ser una aplicación WEB.

Ahora ya puedes publicar la aplicación en el contenedor y (si todo ha ido correctamente) podrás acceder a la App desde cualquier navegador Web:

Conclusión

Desde mi punto de vista, Docker es una utilidad de la que se va hablar mucho. Hace unos años este concepto parecía de ciencia ficción, pero en un futuro muy cercano va a ser clave en nuestro día a día.

La principal ventaja que ofrece Docker es el aislamiento, la colisión de diversas aplicaciones o que ayuda a solventar la atadura a determinado sistema operativo que sufren muchas organizaciones.

Sin embargo, estos contenedores hay que saber administrarlos y hay que saber que aplicaciones se van a incorporar dentro de un contenedor. Por ello, hay escenarios en los que un contenedor Docker no es la solución, como por ejemplo un desarrollo en SharePoint. Lo que no quiere decir que Docker sólo sea útil para desarrollos simples. Dependiendo de la solución y del entorno, se planteará una opción u otra.

Tabla de contenidos

Compartir
Publicado por
Adrián Díaz

Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continuas navegando, estás dando tu consentimiento para aceptar las cookies y también nuestra política de cookies (esperemos que no te empaches con tanta cookie 😊)