[#TFSERVICE] Desplegando aplicaciones #AZURE desde Team Foundation Service 2012

image

Buenas,

hoy vamos con un ejemplo simple: crear una aplicación web y desplegarla en AZURE directamente con una build desde Team Foundation Service. (otra de las preguntas que surgió durante la charla de SecondNug de Team Foundation Service).

Asi que aquí va un formato tutorial que al final es mi ayuda personal:

1. Crear un proyecto ASP.Net MVC 4. En mi caso es un muy simple que se navega y muestra lo siguiente:

image

2. Protegemos nuestro proyecto en Team Foundation Service.

Nota: Si no tienes una cuenta, mi post sobre como crear una cuenta gratuita para probar Team Foundation Service te puede ayudar.

3. Descargamos las herramientas de desarrollo para .Net desde el .Net Developer Center de AZURE. En mi caso particular para Visual Studio 2012 RC, también están disponibles para Visual Studio 2010.

image

4. El paso siguiente consiste en ir al portal de AZURE para crear un website que es donde desplegaremos nuestro sitio web ASP.Net MVC 4. El portal se accede desde http://manage.windowsazure.com/

5. En las opciones del portal podemos crear un nuevo WebSite o un CloudService para desplegar nuestra solución. En este caso crearé un nuevo “Cloud Service” con la opción QUICK CREATE y reservando la url http://elbrunoLabs04.cloudapp.net.

image

6. Una vez creado el servicio, accedemos al mismo y ya podremos integrar el mismo con la instancia de TFS correspondiente.

7. Seleccionamos la opción “INTEGRATE SOURCE CONTROL // Set up TFS publishing”

image

8. Autorizamos la cuenta de Team Foundation Service al Cloud Service.

image

9. Seleccionamos el Team Project desde el que publicaremos los cambios a nuestro Cloud Service

image

10. En este momento se lanza el proceso de Linking entre TFS y el Cloud Service.

image

11. Y en pocos segundos se completa el Linkking entre ambos

image

12. En este punto ya podremos publicar nuestros contenidos desde el Source Control de TFS Preview hacia nuestro Cloud Service.

13. Para este ejemplo he agregado un nuevo proyecto de Cloud a la solucion y he agregado un WebRole a partir del proyecto de ASP.Net MVC 4 de la solución (“ElBruno.MVC4.Labs02”)

image

14. El siguiente paso es dejar configurado nuestro proyecto de Cloud para que pueda publicar al cloud service que hemos creado. Si bien este proceso es bastante más complejo y tiene muchas variantes dentro, lo resumie en pocos pasos.

15. Seleccionar el proyecto de Cloud, desplegar el menú contextual y seleccionar la opcion “Publish”.

16. Configuramos los pasos para la publicación en primer lugar, elegimos la suscripción de AZURE que queremos utilizar.

Nota: el paso a paso completo se puede leer aquí.

image

17. A continuación definimos las settings de nuestra aplicación. En mi caso dejaré los valores por defecto, ya que no necesito ni Remote Desktop, ni IntelliTrace, etc.

image

18. Finalmente completo la publicación a AZURE con los datos por defecto y lanzo el proceso de publicación.

image

 

19. El proceso de publicación suele tardar entre 2 y 10 minutos para un Cloud Service.

image

20. En pocos minutos ya tendremos la aplicación activa en AZURE directamente desplegada desde Visual Studio.image

21. Ahora bien, la idea con este ejercicio es tener una definición de Team Build Service que publique directamente los cambios que se suben a Team Foundation Service al Cloud Service que hemos creado. Para esto crearemos una nueva definición de build en Team Foundation Service y en la misma configuraremos lo que describo en los siguientes pasos.

22. En primer lugar voy a trabajar con una build llamada “elbrunoLabs04_CD”.

23. Luego podemos definir si la Build es para Integración Continua o para lanzarla manualmente, en este caso y como no le tenemos miedo a nada, la dejaremos en modo CI. (que traducido a AZURE nos permite hacer Continuous Deployment)

24. Una vez definido el Workspace y las opciones de build Default, llegamos a uno de los puntos más importantes de este post: la capacidad de utilizar una plantilla de Build específica para AZURE. En este punto seleccionamos la Build Process Template llamada AzureContinuousDeployment.xaml

image

25. Una vez definidos los datos básicos de la solución a compilar y los tests a ejecutar, vemos que tenemos 2 secciones especiales para AZURE. Definimos el nombre de las settings de deploy que hemos puesto en los pasos 16 a 18 y salvo que necesitemos hacer un override otro valor, la definición de build ya estaría completa.

image

26. A partir de este momento, cada vez que protejamos un archivo se lanzará un nuevo proceso de Build que automáticamente desplegará los cambios hacia el portal de azure.

image

Y listo, casi 30 pasos después ya podemos desplegar nuestras aplicaciones directamente utilizando Team Build en TFS Preview a AZURE Open-mouthed smile

Saludos @ Home

El Bruno

image image image

 

 

 

 

6 thoughts on “[#TFSERVICE] Desplegando aplicaciones #AZURE desde Team Foundation Service 2012

  1. Estaba tratando de repetir el ejemplo pero tengo algunas dudas, ojala puedas aclararlas :
    En VS2012 primero creo una solucion de una aplicacion web y luego agrego otro proyecto del tipo “windows azure cloud service” para poder publicar mi web ? tambien observo que esta ultima opcion solo esta disponible para el caso de seleccionar el .net framework 4.0 ya que si se selecciona la 4.5 no aparece ninguna opcion ? es correcto todo esto ?

    Like

  2. lo olvidaba, sabes porque la version 4.5 no trae esta ultima opcion (windows azure cloud service…) entre las plantillas de VS 2012, ya no es necesario con esta version ?

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.