GWAB: Why Azure is so MEAN?

Preview:

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

Citation preview

Why Windows

Azure is so

MEAN?

Carlos

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 web

Almacenamiento

Sitios web

Máquinas virtuales

Servicios móviles

Gestión de identidad

Servicios 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 Studio

Repositorio local (Git)

Repositorio remoto (GitHub,

TFS)

FTP

Visual Studio Online

(Monaco)

Creación

Windows 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

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

Visual Studio Online: Monaco

Windows Azure Websites

MongoDB entra en escena

Windows Azure Websites

Web Jobs

Windows Azure Websites

Ejecutar programas o

scripts en nuestro

website de 3 formas:

On demand o por

petición

(manualmente)

Continuamente

Programado

Una vez

Recurrente

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

Configuración avanzada

Windows 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

Recommended