GWAB: Why Azure is so MEAN?

Post on 30-Jun-2015

370 views 0 download

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 TFS

transcript

Why Windows Azure is so MEAN?

Click icon to add picture

Click icon to add pictureCarlos Jiménez

@CJ_Aliaga

cjimenez@plainconcepts.com

Caso práctico de despliegue de una web con Mongo, Express, Angular y Node

Y ahora en castellano…

Poniendo contexto

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

Node

Node

Express

Framework de Node.js

Todo lo que necesitamos para montar nuestra web-app

Minimalista

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

Framework MVC de JavaScript

Aplicaciones SPA

Directivas y controladores

Angular

Arquitectura de la aplicación

SERVER

CLIENT

expressjs

VIEW CONTROLLER MODEL

B

Windows Azure

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

No hay una cuota fija, se paga en función del uso realizado

Suscripción MSDN

Límite de gasto

Cuánto

Windows Azure Websites

DefiniciónAlojamiento de sitios web

Entorno estable, escalable y seguro

Galería de plantillas (WordPress, Umbraco, DotNetNuke, Drupal, Django…)

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)

CreaciónWindows Azure Websites

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

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

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

Visual Studio Online: MonacoWindows Azure Websites

MongoDB entra en escenaWindows Azure Websites

Web JobsWindows Azure Websites

Ejecutar programas o scripts en nuestro website de 3 formas:

On demand o por petición (manualmente)

Continuamente

ProgramadoUna vezRecurrente

Para qué

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

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

Configuración avanzadaWindows Azure Websites

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

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

Pruebas de carga

Gracias!Carlos

Jiménez

@CJ_Aliaga

cjimenez@plainconcepts.com