Implementación continua en Azure con Visual Studio y GitHub
Tags: azure, git, github, visualstudio
Published: 2019-10-25 20:00:09

###**Implementación continua**###
 
Al hablar de implementación continua hacemos referencia a la siguiente definición:

*“La entrega continua es la habilidad de llevar cambios nuevos de cualquier tipo (características, configuraciones, correcciones, y experimentos) a producción o a las manos del usuario, sin peligro y rápidamente”*. Jez Humble. 

Esta definición nos quiere decir que tenemos diversas ventajas al hacer uso de implementación continua, entre estas:

  • Automatización del proceso de publicación de software.
  • Mejorar la productividad de desarrollo. 
  • Encontrar y arreglar los errores con mayor rapidez.
  • Entregar las actualizaciones a los usuarios con mayor rapidez. 

Para entender estos conceptos rápidamente y de forma sencilla, realizaremos el proceso de implementación continua de una aplicación web cuyo desarrollo se realiza desde Visual Studio 2019, para luego asociar este proyecto a un repositorio de GitHub y con ese repositorio realizar implementación continua hacia Azure Web App donde se alojará nuestra aplicación. 

**Proyectos web soportados en App Service**

Antes de revisar nuestro ejemplo de implementación, algo muy importante mencionar son los tipos de proyectos con los que podemos realizar implementación continua con Azure Web App, en este caso, Azure soporta los siguientes frameworks para el desarrollo web:

• .NET	
• Node.js
• PHP	
• Java
• Python
• HTML
• Docker

En este caso, nuestro ejemplo será una aplicación web realizada a través del framework: ASP.NET Core 2.2 desde Visual Studio 2019. De todas formas, para cualquier tipo de proyecto y/o cualquier IDE de preferencia, el proceso será similar.

#PARTE 1: Asociar proyecto en Visual Studio con GitHub#

**Carga de trabajo .NET Core 2.2 en Visual Studio**

Visual Studio: [https://visualstudio.microsoft.com/es/downloads/](https://visualstudio.microsoft.com/es/downloads/)

Considerando que tenemos la siguiente carga de trabajo en Visual Studio 2019: 

![](https://thepracticaldev.s3.amazonaws.com/i/g0lheylkb4rpdhdmokla.jpg)

Lo primero que debemos hacer es instalar la extensión de GitHub para Visual Studio:

Extensión: [https://visualstudio.github.com/](https://visualstudio.github.com/)

Para ello Visual Studio debe estar cerrado para poder instalar la extensión ya que son cambios que se le realizan al IDE de Microsoft. 

**.NET Core 2.2 en Visual Studio**

Una vez en instalada la extensión en Visual Studio y con el proyecto con el que deseamos trabajar se encuentre cargado,

![](https://thepracticaldev.s3.amazonaws.com/i/9spzl5oksi55ibb59zmu.jpg)
 
Procederemos a asociar a la solución que contiene el proyecto a un repositorio en GitHub, para ello damos clic derecho en la solución y seleccionamos agregar solución al control de código fuente:

![](https://thepracticaldev.s3.amazonaws.com/i/dq0bbqvtpehe1xfuxtz7.jpg)
 
Posteriormente nos dirigimos a la vista Team Explorer y luego a la sección de Sincronización:

![](https://thepracticaldev.s3.amazonaws.com/i/aaneywlrexb9i49fs7iz.jpg) 

En este caso nos aparecen las opciones para publicar nuestro proyecto en una cuenta de Azure DevOps y en una cuenta de GitHub.

Al seleccionar Publicar en GitHub, nos pedirá iniciar sesión si es la primera vez y crear el repositorio al cual queremos asociar el proyecto:

![](https://thepracticaldev.s3.amazonaws.com/i/8m3yqrercaec5mardpcc.jpg)
 
Poco tiempo después nuestro proyecto estará asociado al repositorio que acabamos de crear. Eso lo podemos comprobar directamente desde GitHub:

![](https://thepracticaldev.s3.amazonaws.com/i/jurggj996v0hqtittjjo.jpg)

De aquí en adelante siempre que queramos guardar los cambios que realicemos podemos dirigirnos a la sección Cambios en Team Explorer:
 
![](https://thepracticaldev.s3.amazonaws.com/i/ys1k7mjrer5dive3cfp1.jpg)

Y en la sección Sincronizar confirmar los cambios de salida:
 
![](https://thepracticaldev.s3.amazonaws.com/i/ac2wpks2kbro37c5fqzp.jpg)

#PARTE 2: Implementación continua entre Azure Web App y repositorio de GitHub#

Como primer punto es necesario tener un servicio Web App en Azure, para ello podemos crearlo desde el portal de Azure en caso de que no tengamos una aplicación establecida. 

Como podemos ver en la imagen, el nombre de la aplicación también servirá para definir el nombre del dominio para poder acceder al sitio web que se desea crear. Azure nos proporciona un subdominio con azurewebsites.net. 

Asimismo, Azure nos permite especificar la pila de ejecución, en este caso seleccionamos .NET Core 2.2 que es la versión que utiliza nuestra aplicación. 

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/d090mdaao0pneh5m9ky7.jpg)

La creación de este servicio suele tomar entre 30 y 60 segundos. 

![](https://thepracticaldev.s3.amazonaws.com/i/spfluza6iept4uklr0u7.jpg)

Ahora que ya tenemos el servicio creado, nos dirigimos al recurso en el portal de Azure. En la página de la aplicación, seleccione Deployment Center (Centro de implementación) en el menú de la izquierda.

![](https://thepracticaldev.s3.amazonaws.com/i/226dt429wgu09rlsc2c3.jpg)
 
En la página del centro de implementación, seleccionamos GitHub y, a continuación, iniciamos sesión y seleccionamos en Authorize (Autorizar).

![](https://thepracticaldev.s3.amazonaws.com/i/ave247uz6poqi2reyel2.jpg)

En cuanto a GitHub, en la página para compilar el proveedor, seleccionar App Service build service (Servicio de compilación de App Service) y, a continuación, Continue (Continuar).

![](https://thepracticaldev.s3.amazonaws.com/i/jc0wmv2uw1tseu4vpgtb.jpg)
 
Luego en la página de configuración:

Desplegamos el menú y seleccionamos la *organización*, el *repositorio* y la *rama* que se desea implementar continuamente.

![](https://thepracticaldev.s3.amazonaws.com/i/74plg2qbj00kawsmlkr6.jpg)
 
Después de configurar el proveedor de compilación, revise la configuración en la página de resumen y seleccione Finish (Finalizar).

![](https://thepracticaldev.s3.amazonaws.com/i/veq00aha2tdvrzna7ii9.jpg)
 
A partir de ahora las nuevas confirmaciones del repositorio y la rama seleccionados ahora se implementan continuamente en su aplicación de App Service. Puede realizar el seguimiento de las confirmaciones y las implementaciones en la página del centro de implementación.

![](https://thepracticaldev.s3.amazonaws.com/i/9tuqo3bnd7bos9xu1ub7.jpg)
 
#**COMENTARIOS ADICIONALES**#

**Deshabilitación de la implementación continua**

Para deshabilitar la implementación continua, seleccione Disconnect (Desconectar) en la parte superior de la página Deployment Center (Centro de implementación) de la aplicación.

![](https://thepracticaldev.s3.amazonaws.com/i/s4jjiucgjjg7vsvrvg9s.jpg)

Para continuar con la implementación continua posteriormente, repetimos el proceso de asociación al repositorio de GitHub desde la página Deployment Center (Centro de implementación) de la aplicación.

**Otras fuentes de repositorios**

Adicional a GitHub, con Azure Web App también podemos realizar implementación continua desde las siguientes fuentes: 

•	Bitbucket
•	Local Git
•	OneDrive	
•	Dropbox
•	External
•	FTP