NodeJS en Azure con GIT


Introducción

Tutorial para entregar (deploy) el proyecto local de nodejs en una app de azure mediante git.

NodeJS permite ejecutar javascript del lado del servidor lo que nos da la ventaja de hacer uso de un lenguaje sencillo y muy conocido lo que ayuda en la curva de aprendizaje. Otra ventaja es la multiplataforma, la velocidad de ejecución y sobre todo la programación asíncrona con “event loop”.

http://morelosgeek.com/2012/05/nodejs-introduccion/

Azure es la plataforma de Microsoft de computación en la nube que incluye todo lo necesario para construir cualquier idea. Es de paga pero hay opciones para licencias gratuitas y de prueba. En Azure hay bases de datos, maquinas virtuales, servidores de aplicaciones, servicios de red, firewall, analytics, gestión de recursos, etc.

GIT es un programa de gestión de versiones que permite un control del código fuente de nuestros programas y colaboración entre miembros del equipo. La gestión de las versiones incluye un control de los cambios hechos, almacenamiento de las fuentes y distribución de estas con los miembros del equipo.

Con este pequeño repaso instamos al lector a adentrarse en el uso de estas herramientas si no las conocían. Ahora combinaremos tecnologías de Google, Microsoft y Linux para un pequeño proyecto.

Sírvase este tutorial como notas básicas para futuros proyectos.

Prerequisitos para seguir el tutorial correctamente:

Tener instalado NodeJS:  https://nodejs.org/

Tener instalado Git enlace: https://git-scm.com/

Tener una cuenta en Windows Azure: https://azure.microsoft.com/es-es/free/

Paso 1

Crear repositorio git D:\NODEJS\nodejs-docs-hello-world\

Si no tienes un proyecto en nodejs, puedes clonar el siguiente en el directorio D:\NODEJS:

git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git

Paso 2  Ejecutar aplicacion NodeJS en computadora local

npm start

Abrimos un navegador y en la direccion http://localhost:1337 vemos el famoso Hello World!

 

Paso 3 Lanzar Azure Cloud Shell

Open Cloud Shell en navegador https://shell.azure.com/bash

Paso 4 Crear un grupo de recursos.

En la Cloud Shell debemos crear el grupo de recursos con el comando az group create:

az group create --name myResourceGroup --location "West Europe"

El resultado debe ser algo similar a esto:

{
 "id": "/subscriptions/204b2bcb-76b5-463a-bfd1-82f8844cdc52/resourceGroups/myResourceGroup",
 "location": "westeurope",
 "managedBy": null,
 "name": "myResourceGroup",
 "properties": {
 "provisioningState": "Succeeded"
 },
 "tags": null
}

Para obtener una lista de ubicaciones(location) el comando es el siguiente:

az appservice list-locations --sku F1

Paso 5 Crear un plan de servicios

En la Cloud Shell creamos el plan de servicios bajo el esquema gratuito:

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE

El resultado deberia ser algo similar a :

{
 "additionalProperties": {},
 "adminSiteName": null,
 "appServicePlanName": "myAppServicePlan",
 "geoRegion": "West Europe",
 "hostingEnvironmentProfile": null,
 "id": "/subscriptions/204b2bcb-76b5-463a-bfd1-82f8844cdc52/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
 "isSpot": false,
 "kind": "app",
 "location": "West Europe",
 "maximumNumberOfWorkers": 1,
 "name": "myAppServicePlan",
 "numberOfSites": 0,
 "perSiteScaling": false,
 "provisioningState": "Succeeded",
 "reserved": false,
 "resourceGroup": "myResourceGroup",
...

Los esquemas son estos: https://azure.microsoft.com/en-us/pricing/details/app-service/

Paso 6 Crear WebApp

En la consola Cloud Shell debemos crear la aplicacion web con el grupo de recursos y el plan de servicios creados anteriormente. El appname sera el nombre con el que se accedera a la app, por ejemplo http://<app name>.azurewebsites.net

az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app_name> --runtime "NODE|6.9"

El resultado debe ser similar a:

{
 "additionalProperties": {},
 "availabilityState": "Normal",
 "clientAffinityEnabled": true,
 "clientCertEnabled": false,
 "cloningInfo": null,
 "containerSize": 0,
 "dailyMemoryTimeQuota": 0,
 "defaultHostName": "nodejs-darkaw-ejemplo.azurewebsites.net",
 "enabled": true, ...

Paso 7 Visitar la app en el navegador

Al introducir en el navegador la direccion http://<app name>.azurewebsites.net deberíamos ver la pagina de Microsoft Azure – Your app is up and running.

Paso 8 Crear usuario para el deployment(entrega)

En la consola Cloud Shell escribimos:

az webapp deployment user set --user-name <username> --password <password>

Este usuario es para los deployments en FTP y GIT, pueden ser diferentes de tus credenciales de Azure y puede ocuparse en otras aplicaciones. Es posible que el sistema pida una contraseña de al menos 8 caracteres, con una mayúscula y un numero. Se crea solo una vez.

Paso 9 Habilitar GIT para la webapp

En la consola Cloud Shell escribimos el siguiente comando para poder hacer deployment:

az webapp deployment source config-local-git --name <app_name> --resource-group <group_name>

el resultado debe ser la url git para hacer deploy a remoto:

{
 "url": "https://user@app-name.scm.azurewebsites.net/appname-user.git"
}

Paso 10 entregar el proyecto local a azure

Mediante git en nuestra consola o cliente git favorito agregamos el remoto:

git remote add azure <url>

Finalmente hacemos push del proyecto local nodejs a la webapp en azure:

git push azure master

Si visitamos la URL del webapp veremos el Hello World de NodeJS

Ahora cualquier cambio en nuestro equipo local podemos lanzarlo a azure con los comandos habituales de git:

git add – git commit – git push

 


Acerca de darkaw_remse

Administrador de poca monta, mi interes principal dentro de la informatica es la programacion web, entusiasta de las nuevas tecnologias en hardware y software. Sueño con tener un sitio que cobre inteligencia propia =p

Deja un comentario