gwab: why azure is so mean?
DESCRIPTION
Caso práctico de tecnología web del stack MEAN (Mongo, Express, Angular y Node) sobre Windows Azure Web Sites desarrollado enteramente en Visual Studio Online (Monaco), incluyendo casos prácticos con Web Jobs y mostrando como se comportaría el escalado automático con una prueba de carga con TFSTRANSCRIPT
![Page 1: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/1.jpg)
Why Windows Azure is so MEAN?
Click icon to add picture
Click icon to add pictureCarlos Jiménez
@CJ_Aliaga
![Page 2: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/2.jpg)
Caso práctico de despliegue de una web con Mongo, Express, Angular y Node
Y ahora en castellano…
![Page 3: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/3.jpg)
Poniendo contexto
![Page 4: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/4.jpg)
Node
Server-side JavaScript (Google V8 JavaScript Engine)
Diseñado para construir aplicaciones modulares, rápidas, eficientes y escalables
Es multiplataforma
Todas las llamadas I/O son asíncronas (non-blocking)
Event-driven. Haciendo uso del Event loop
Se ejecuta en un solo thread
![Page 5: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/5.jpg)
Node
![Page 6: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/6.jpg)
Node
![Page 7: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/7.jpg)
Express
Framework de Node.js
Todo lo que necesitamos para montar nuestra web-app
Minimalista
![Page 8: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/8.jpg)
MongoDB
Base de datos NoSQL Open Source
Orientada a documentos (BSON)
Muy rápida
Consultas ricas sobre los documentos
Soporte para índices
Escalable mediante Auto Sharding
![Page 9: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/9.jpg)
Framework MVC de JavaScript
Aplicaciones SPA
Directivas y controladores
Angular
![Page 10: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/10.jpg)
Arquitectura de la aplicación
SERVER
CLIENT
expressjs
VIEW CONTROLLER MODEL
B
![Page 11: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/11.jpg)
Windows Azure
![Page 12: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/12.jpg)
QuéPlataforma de Cloud Computing que incluye:
Servicios webAlmacenamientoSitios webMáquinas virtualesServicios móvilesGestión de identidadServicios multimedia…
+Tienda de servicios
Mobile Services
Cloud Services Storage
Active Directory+
Websites
Media services
Virtual Machines
![Page 13: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/13.jpg)
No hay una cuota fija, se paga en función del uso realizado
Suscripción MSDN
Límite de gasto
Cuánto
![Page 14: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/14.jpg)
Windows Azure Websites
![Page 15: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/15.jpg)
DefiniciónAlojamiento de sitios web
Entorno estable, escalable y seguro
Galería de plantillas (WordPress, Umbraco, DotNetNuke, Drupal, Django…)
![Page 16: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/16.jpg)
Opciones de despliegueCon la tecnología que ya estés usando (.NET, PHP, Node.js y Python) +Java!!Desde:
Visual StudioRepositorio local (Git)Repositorio remoto (GitHub, TFS)FTPVisual Studio Online (Monaco)
![Page 17: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/17.jpg)
CreaciónWindows Azure Websites
![Page 18: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/18.jpg)
La localización al crear el website determina en qué datacenter estarán las máquinas que lo alojen
La decisión al elegir la localización puede influir en los tiempos necesarios para completar peticiones y cargar datos
Localización
Click icon to add picture
![Page 19: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/19.jpg)
Entorno de prueba en el que alojar los cambios que realicemos en nuestra aplicación antes de pasar a producción
Se puede publicar fácilmente lo que tenemos en este entorno al entorno de producción
Staged publishing
![Page 20: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/20.jpg)
Podemos configurar nuestro website para poder ser editado desde Visual Studio Online
Una vez activado (ojo que está en preview!) tendremos disponible la opción para arrancarlo en el panel principal del website
Editar con Monaco
Click icon to add picture
![Page 21: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/21.jpg)
Visual Studio Online: MonacoWindows Azure Websites
![Page 22: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/22.jpg)
MongoDB entra en escenaWindows Azure Websites
![Page 23: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/23.jpg)
Web JobsWindows Azure Websites
![Page 24: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/24.jpg)
Ejecutar programas o scripts en nuestro website de 3 formas:
On demand o por petición (manualmente)
Continuamente
ProgramadoUna vezRecurrente
Para qué
![Page 25: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/25.jpg)
Subimos un fichero .zip que contenga un archivos con las siguientes extensiones válidas de scripts ejecutables:
.cmd, .bat o .exe (windows cmd)
.ps1 (powershell)
.sh (bash)
.php (php)
.py (python)
.js (node)
Cómo
![Page 26: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/26.jpg)
Disponemos de un sistema de logs que nos aporta información sobre la ejecución de los scripts
Depuración
Click icon to add picture
![Page 27: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/27.jpg)
Configuración avanzadaWindows Azure Websites
![Page 28: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/28.jpg)
Podemos configurar el escalado de máquinas que alojarán nuestro website
Día/noche entre semana y fin de semana, o un momento concreto
Número de instancias al que escalar y porcentaje de CPU usado para producir este escalado
Escalado
![Page 29: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/29.jpg)
Podemos configurar el escalado de máquinas que alojarán nuestro website
Día/noche entre semana y fin de semana, o un momento concreto
Número de instancias al que escalar y porcentaje de CPU usado para producir este escalado
Escalado
![Page 30: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/30.jpg)
Pruebas de carga
![Page 32: GWAB: Why Azure is so MEAN?](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5591988c1a28abdf668b4774/html5/thumbnails/32.jpg)