Archivo de la etiqueta: Azure Web Apps

Generando el paquete de despliegue de una Web App desde la línea de comandos

Cuando queremos poner nuestro proyecto web dentro de un pipeline de Integración continua/Despliegue continuo (CI/CD por sus siglas en inglés), vamos a necesitar generar los paquetes de despliegue durante nuestro proceso de build, para luego poder usarlos desde la etapa de release.

MSBuild nos permite generarlos, usando los siguientes 4 parámetros:

/p:DeployOnBuild=true

/p:WebPublishMethod=Package

/p:PackageAsSingleFile=true

/p:PackageLocation="C:\temp\MyWeb.zip"

¿Qué significa cada parámetro? Sigue leyendo

Anuncios

Despliegue e integración continua en Microsoft Azure

Durante el MVP Summit de 2015 tuvimos la oportunidad de grabar un video con Matías Quaranta en los estudios de Channel 9, en el campus de Microsoft en Redmond.

En el video hablamos sobre la implementación de Despliegue e Integración continua en Azure Web Apps, explicando los conceptos de Ranuras de Implementación, Intercambio, Kudu y finalmente integrando notificaciones de Slack.

El Despliegue e Integración contínua es vital para cualquier equipo de desarrollo ágil, permitiendo enfocarnos en construir nuestros productos sin perder tiempo en tareas repetitivas y propensas a error.

Despliegue e integración continua en AzureVer el video en Channel 9

Saludos!

@gjbellmann

Recibiendo notificaciones de deploys de Azure Web Apps en Slack

Introducción

El servicio de Azure Web Apps tiene una gran funcionalidad: implementación contínua (continuous deployment), desde diferentes tipos de repositorios: Visual Studio Online, OneDrive, un repositorio local Git, GitHub, Bitbucket, Dropbox, o un repositorio externo. También tenemos alertas incorporadas, pero no notificaciones de las implementaciones. Ahí es cuando vienen al rescate los Web Hooks de Kudu.

Pero primero, ¿qué es Kudu?

Project Kudu es un proyecto open source, hosteado en GitHub, que es el motor detrás de las implementaciones desde Git/Mercurial, WebJobs, y varias otras cosas en Azure Web Apps. Y además, también puede correr fuera de Azure.

¿Qué son los Web Hooks?

Un Web Hook es un callback HTTP: un HTTP POST que ocurre cuando sucede algo; una simple notificación de evento vía HTTP POST. Los Web Hooks son una manera de recibir información valiosa cuando sucede, en vez de estar continuamente pidiendo datos sin estar recibiendo nada valioso la mayor parte del tiempo.

¿Cómo integramos?

En Nubimetrics, como en muchas otras startups, usamos Slack como medio de comunicación entre los miembros del equipo. Slack provee integración con otras aplicaciones y servicios, como GitHub, Bitbucket, Trello, Asana, JIRA, Google+ Hangouts, Google Drive, Dropbox y Visual Studio Online, por nombrar algunas (si estás interesado en conocer sobre el resto de las integraciones disponibles puedes visitar https://slack.com/integrations).

Pero, como verán en la lista, no hay una integración nativa con Kudu, pero aquí vienen nuevamente los Web Hooks al rescate! Slack soporta web hooks de entrada como una forma para otras aplicaciones de postear información a Slack.

Y, para hacer las cosas aún más fáciles, hay una aplicación hosteada en GitHub, escrita en Node.js y que corre en Azure, que hace esta tarea.

Todo lo que necesitamos hacer es:

  1. Ir a la configuración de nuestro equipo en Slack y configurar una integración de webhook de entrada.
  2. Implementar la aplicación desde el botón deploy.
  3. Configurar una variable de entorno llamada slackhookuri con el valor de la URI del Paso 1.
  4. Agregar la URI de nuestra Web App en los Web Hooks del portal de Kudu, al que podemos acceder desde https://{tu azure web app}.scm.azurewebsites.net/WebHooks.
  5. Y listo!!!

Conclusión

Los Web Hooks nos proveen una forma sencilla de integrar aplicaciones web. Usando simples web requests con contenido JSON podremos integrar casi cualquier cosa!

@gjbellmann