You are on page 1of 103

Herramientas Cloud

Creacin rpida de entornos para soluciones de negocio


Escalabilidad para gestionar picos de demanda

Aumento de actividad diaria, eficiencia y reduccin de

costes.

Por qu
el Cloud?

Por qu el Cloud?

Hosting models
Platform

(as a Service)

(as a Service)

Data

Runtime

Runtime

Middleware

Middleware

Middleware

O/S

O/S

O/S

Virtualization

Virtualization

Servers

Servers

Storage

Storage

Networking

Networking

Runtime
Middleware

Runtime

Virtualization
Servers
Storage
Networking

Scale, resilience and


management by vendor

Data

Data

Managed by vendor

Applications

You scale, make


resilient & manage

Applications

Data

Applications

You manage

(as a Service)

Applications

Software

O/S
Virtualization
Servers
Storage

Networking

Scale, resilience and


management by vendor

Infrastructure

On Premises

You scale, make resilient and manage

Business model

Azure

17, 20 24 regiones en todo el mundo en 2015

Azure
footprint
Data Centers
Regional Partners

Partners

Cmo se
diferencia
Azure?

Hyper-scale

Enterprise Grade

Hybrid

Open Source en Azure


Languages

CMS

Devices

Databases /
Apps
Operating
systems

Management

Compliance: aka.ms/AzureCompliance

Azure Services

Data
& Storage

App
Service

Web App

Virtual
Machines

Storage

Blobs

Mobile App

Cloud
Services

Tables

API App

Batch

Queues

Data Factory

Logic App

Event Hubs

API
Management

Service Fabric

Files

Operational
Insights

RemoteApp

SQL
Database

Key Vault

Notification
Hubs

Search

BizTalk
Services

Service Bus

Mobile
Engagement

Virtual
Network

ExpressRoute

DocumentDB

Backup

Azure Active
Directory

Traffic
Manager

Redis Cache

Site Recovery

Multi-Factor
Authent

DNS

StorSimple

Media & CDN

Stream
Analytics

Automation

Identity
& Access

Management

HDInsight

Machine
Learning

Scheduler

Marketplace

Application
Insights

Hybrid
Integration

Visual Studio
Online

Networking

Compute

Web
& Mobile

Analytics
& IoT

Developer
Services

Microsoft Azure Services

Media
Services

CDN

Application
Gateway

Data Lake

Data
Warehouse

The three ways to host your applications on the Microsoft Azure Platform

Alojar aplicaciones en Azure

Infraestructura como Servicio


IaaS

Plataforma como servicio


PaaS

PaaS

Azure App Service

Construye aplicaciones que escalan


Web Apps
Mobile Apps
Logic Apps
API Apps

Develop apps with


.NET | Node.js | PHP | Python | Java

Light-weight CPU Intensive Tasks


run.cmd, run.bat

run.exe

run.ps1

run.sh

run.php

run.py

run.js

Job Type: On-Demand, Scheduled, Continuous


Scale: Singleton, Multi-instance
WebJobs SDK Feature: BlobTrigger, TableTrigger, QueueTrigger,
ServicebusTrigger
Deployment: Portal, Visual Studio, CLI, Git

Demo: PaaS

Getting started
Management portal

>
_

Scripting

(Windows, Linux and Mac)

REST API
Comprehensive
Networking

Select image
and VM size
Windows Server

New disk persisted


in storage
Boot VM from new disk

Linux
General Purpose
Basic
Standard
Optimized Compute
Performance Optimized
Network Optimized

Virtual Machines

Blob
Storage

Cloud

Microsoft Azure
Certified

Demo: IaaS

SQL Database
Base de datos SQL Server completamente gestionada como

servicio
Ideal tanto para aplicaciones sencillas y complejas
Preparada para empresas, alta disponibilidad automtica
Secondary
Replica
Primary

Secondary
Replica
Secondary
Replica

SQL Database
Diseada para escalado horizontal elstico a la demanda
Capacidades robustas de Failover y Disaster Recovery
Cross Datacenter Failover

SQL Database
Soporte complete de clientes TDS y ODBC
Preparado para los lLenguajes y frameworks ms comunes

Demo: SQL Azure

Arquitectura de ejemplo
Service Bus

WAAD

Paired NS

SQL
Database
US West

User

Internet

Worker
Role/VM

Data Sync

Traffic
Manager
US East

CDN

Cache

Worker
Role/VM

NoSQL DB

Georedundancy

Big Data: conocimiento


Microsoft Azure HDInsight
Instancia de Apache Hadoop como servicio (Linux y Windows)
Gran ecosistema de herramientas: Hive, Pig, etc
Incluye HBase, Storm y Spark

Ampliado para conectar con Excel y herramientas de BI


Integracin con fuentes de datos diversas

Big Data: conocimiento


Microsoft Azure Machine Learning
Plataforma de Machine Learning para todos
Servicio cloud completamente gestionado para la
construccin de soluciones de anlisis predictivo
Elstico, pago por uso con costes muy bajos de
operacin
Extensible con Power BI, HDInsight y otros datos cloud
Extensible mediante R y Python

Demo: Azure ML

Visual Studio Online


Insights

Code

Agile

Deploy
Build

Test

Integracin completa del portal


Abierto a productos de terceros

Internet of Things
Event Hubs
Notification Hubs
Stream Analytics

Machine Learning

Con los servicios de IoT en Azure, puedes


monitorizar tus recursos para mejorar la
eficiencia, impulsar la innovacin y aprovechar
el anlisis avanzado de datos para transformar
tu compaa con nuevos modelos de negocio
y fuentes de ingresos.

HDInsight
Power BI for Office 365

Azure Stream Analytics

Getting Started

Stream Analytics is integrated with


the Azure Portal.

A new stream analytics job can be


created using the New Job creation
wizard.

The storage is used only for storing


monitoring data

Note that this wizard creates the


job but does not start it

Currently supported input Data Streams


are Azure Event Hub and Azure Blob
Storage. Multiple input Data Streams are
supported.

Advanced options lets you configure how


the Job will read data from the input blob
(which folders to read from, when a blob
is ready to be read, etc).

Reference data is usually static or changes


very slowly over time.
Must be stored in Azure Blob
Storage.
Cached for performance

The serialization format and the encoding for the


for the input data sources (both Data Streams
and Reference Data) must be defined.

Currently three formats are supported: CSV,


JSON and Avro.

For CSV format a number of common delimiters


are supported: (comma (,), semi-colon(;), colon(:),
tab and space.

For CSV and Avro optionally you can provide the


schema for the input data.

SQL-like, subset of standard T-SQL syntax

Has Windowing extensions to enable processing of


a subset of events that fall within some period of
time
Can define multiple execution steps to enable scale
out and parallelism.
Queries are written directly in the Azure
Management Portal.

DML Statements
SELECT
FROM
WHERE
GROUP BY
HAVING
CASE
JOIN
UNION

Date and Time Functions


DATENAME
DATEPART
DAY
MONTH
YEAR
DATETIMEFROMPARTS
DATEDIFF
DATADD

Aggregate Functions
SUM
COUNT
AVG
MIN
MAX

Scaling Functions
WITH
PARTITION BY

Windowing Extensions
Tumbling Window
Hopping Window
Sliding Window
Duration

String Functions
LEN
CONCAT
CHARINDEX
SUBSTRING
PATINDEX

EntryStream - Data about vehicles entering toll stations


TollId

EntryTime

License
Plate

State

Make

Model

ExitStream - Data about cars leaving toll stations


Type

Weight

TollId

ExitTime

LicensePlate

2014-10-25T19:33:30.0000000Z JNB 7001

NY

Honda

CRV

3010

2014-10-25T19:33:40.0000000Z

JNB 7001

2014-10-25T19:33:31.0000000Z YXZ 1001

NY

Toyota

Camry

3020

2014-10-25T19:33:41.0000000Z

YXZ 1001

2014-10-25T19:33:32.0000000Z ABC 1004

CT

Ford

Taurus

3800

2014-10-25T19:33:42.0000000Z

ABC 1004

2014-10-25T19:33:33.0000000Z XYZ 1003

CT

Toyota

Corolla

2900

2014-10-25T19:33:43.0000000Z

XYZ 1003

2014-10-25T19:33:34.0000000Z BNJ 1007

NY

Honda

CRV

3400

2014-10-25T19:33:35.0000000Z CDE 1007

NJ

Toyota

4x4

3800

ReferenceData - Commercial vehicle registration data


LicensePlate

RegistartionId

Expired

SVT 6023

285429838

XLZ 3463

362715656

QMZ 1273

876133137

RIV 8632

992711956

SELECT VehicleCategory =
Case Type
WHEN 1 THEN Passenger
WHEN 2 THEN Commercial
ELSE THEN Other
END,
TollId, State LicensePlate, State, Make, Model, Weight,
DATEPART(mi,EntryTime) AS Mins,
DATEPART(ss,EntryTime) AS Seconds
DATEPART(ms,EntryTime) AS Milleseconds
FROM EntryStream TIMESTAMP BY EntryTime
WHERE (State = CA OR State = WA)
AND Weight < 3000
AND CHARINDEX (M, model) = 0
AND PATINDEX(%999, LicensePlate) = 5

SELECT Make
FROM EntryStream ES TIMESTAMP BY EntryTime
JOIN ExitStream EX TIMESTAMP BY ExitTime
ON
ES.Make= EX.Make
AND DATEDIFF(second,ES,EX) BETWEEN 0 AND 10
{Mazda,6}

Toll
Entry :

Toll
Exit :

{BMW,7}

{Mazda,3}

10

{Honda,2}

{Honda,2}

15

20

{Volvo,3}

{BMW,7}

25

{Volvo,3}
Time
(Seconds)

SELECT ES.TollId, ES.EntryTime, EX.ExitTime, ES.EntryTime,


ES.LicensePlate DATEDIFF(minute, ES.EntryTime, EX.ExitTime )
FROM EntryStream ES TIMESTAMP BY EntryTime

JOIN ExitStream EX TIMESTAMP BY ExitTime


ON

(EX.TollId= ES.TollId and ES.LicensePlate = EX.LicensePlate)

AND DATEDIFF(minute, ES, EX) BETWEEN 0 AND 15

SELECT ES.TollId, ES.EntryTime, ES.LicensePlate


FROM EntryStream EN TIMESTAMP BY EntryTime
LEFT OUTER JOIN ExitStream EX TIMESTAMP BY ExitTime
ON (EN.TollId= EX.TollId AND EN.LicensePlate =
EX.LicensePlate)
AND DATEDIFF(minute, EN, EX) BETWEEN 0 AND 5
WHERE EX.ExitTime IS NULL

SELECT ES.EntryTime, ES.LicensePlate, ES.TollId, RD.RegistrationId


FROM EntryStream ES TIMESTAMP BY EntryTime
JOIN RegistrationData RD
ON ES.LicensePlate = RD.LicensePlate
WHERE RD.Expired = 1

TollId

EntryTime

LicensePlate

2014-09-10 12:01:00.000

JNB 7001

2014-09-10 12:02:00.000

2014-09-10 12:02:00.000

TollId

ExitTime

LicensePlate

2009-06-25 12:03:00.000

JNB 7001

YXZ 1001

2009-06-2512:03:00.000

YXZ 1001

ABC 1004

2009-06-25 12:04:00.000

ABC 1004

SELECT TollId, ENTime AS Time , LicensePlate FROM EntryStream TIMESTAMP BY ENTime


UNION
SELECT TollId, EXTime AS Time , LicensePlate FROM ExitStream TIMESTAMP BY EXTime

TollId

Time

LicensePlate

2014-09-10 12:01:00.000

JNB 7001

2014-09-10 12:02:00.000

YXZ 1001

2014-09-10 12:02:00.000

ABC 1004

2009-06-25 12:03:00.000

JNB 7001

2009-06-2512:03:00.000

YXZ 1001

2009-06-25 12:04:00.000

ABC 1004

Event arrive at different times i.e. have unique timestamps

Events arrive at different rates (events/sec).

In any given period of time there may be 0, 1 or more events


Window 1
1

Window 2
6

Window 3
6

Time
t1

t2

t3

t4

t5

Aggregate
Function (Sum)
Output Events

18

14

t6

Windowing is a core requirement for streaming


analytic applications
Common requirement to perform some setbased operation (count, aggregation etc) over
events that arrive within a specified period of
time
Azure Stream Analytics supports three types of
windows: Hopping, Sliding and Tumbling
Every window operation outputs events at the
end of the window
The output of the window will be single event
based on the aggregate function used. The
event will have the time stamp of the window
All windows have a fixed length
All windows should be used in a GROUP BY
clause

Tumbling windows:
A 20-second Tumbling Window

Time
(secs)
1

2
8

Repeat
Are non-overlapping
An event can belong to only one tumbling window

Query: Count the total number of vehicles entering each


toll booth every interval of 20 seconds.
SELECT TollId, COUNT(*)

FROM EntryStream TIMESTAMP BY EntryTime


GROUP BY TollId, TumblingWindow(second, 20)

Hopping windows:
A 20-second Hopping Window with a 10 second Hop

Repeat

Can overlap

Hop forward in time by a fixed period

Same as tumbling window if hop size = window size


Events can belong to more than one hopping window
1

2
4

QUERY: Count the number of vehicles entering each toll booth


every interval of 20 seconds; update results every 10 seconds

2
8

SELECT COUNT(*), TollId

6
8

FROM EntryStream TIMESTAMP BY EntryTime

GROUP BY TollId, HoppingWindow (second, 20,10)


5

Sliding window:

Query: Find all the toll booths which have served more
than 10 vehicles in the last 20 seconds

Continuously moves forward by an (epsilon)


Produces an output only during the occurrence of
an event
Every windows will have at least one event
Events can belong to more than one sliding window

A 20-second Sliding Window

SELECT TollId, Count(*)


8

FROM EntryStream ES
GROUP BY TollId, SlidingWindow (second, 20)
HAVING Count(*) > 10

https://www.microsoftazurepass.com/azureu

http://research.microsoft.com/en-us/projects/azure/

http://bit.ly/azureml_login

You might also like