Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

79
#SQSummit @enriquecatala Escalabilidad horizontal y arquitecturas elásticas en Microsoft Azure Mentor [email protected] MVP – MCT – MCSE Enrique Catalá Bañuls

description

http://summit.solidq.com En esta sesión veremos problemas y soluciones a la hora de escalar arquitecturas muy exigentes. Veremos opciones para segmentar lecturas-escrituras con Replicación y AlwaysON, utilizar sistemas de cacheo con AppFabric Cache y/o Azure Cache, entornos híbridos para liberar carga con Azure. Orientaremos la sesión para que el asistente entienda las alternativas que hay y sus pros y contras de cara a su evaluación.

Transcript of Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Page 1: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

#SQSummit

@enriquecatala

Escalabilidad horizontal y arquitecturas elásticas en Microsoft Azure

Mentor

[email protected]

MVP – MCT – MCSE

Enrique Catalá Bañuls

Page 2: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

3

Agenda

1. ¿Qué podemos usar?2. AlwaysON3. Arquitecturas elásticas4. Caching 5. Autoescalado VMs6. Rendimiento CPU

Page 3: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

4

La informática en la nube definidaPosiciónamiento

Cloud computing as four deloyment models, three service models and five main features

features

Public Cloud

Hybrid Cloud

Private Cloud

Community Cloud

IaaSInfrastructure as a

Service

PaaSPlatform as a Service

SaaSPlatform as a Service

On-demand Self Service

Broad Network Access

Resource Pooling

Rapid Elasticity

Measured Service

Page 4: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

5

Modelos de Servicio

Office 365, CRM, Dynamics,

SharePoint Online

consume

SaaSServicios de

aplic. Almacenamiento,

comunicación

build

PaaSRoles, máquinas virtuales, Discos

y Redes

host

IaaS

Page 5: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Soluciones híbridas

6

DR rápido

Rápido de desplegar y manejar

Aprovechamiento elástico

Ambito global de tu app

Mejor aislamiento parcial de tus datos

Manual o automático

A nivel complete o de punto del tiempo

Se mide el uso de la BBDD y se realiza autónomamente por ti

Page 6: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

7

Tecnologias soportadasTecnología

SQL Server

Cero pérdida de datos

Ámbito Nº secundarios

Failover automático

Leer de secundarios

Availability Groups

2012+ Si* DB(s) 4 -> 20128 -> 2014

Yes(w/ additional cluster member)**

Si

Database Mirroring

2008 R22012

Si* DB 1 Yes(w/ Witness)**

Limited(database snapshots)

LogShipping

2005+ No DB Ilimitadas No Limited(standby state)

Replicacion

2008+ No Articulos

***Ilimitadas

No Si

Page 7: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

8

Tamaños de VM

Cores Memoria Temp

Ancho de band

a

Discos de

datos

IOPs total

SQL Standard

Coste/ hora

ExtraSmall

1 - Shared 768 MB 20 GB 5 1 500 €0,015/h

Small 1 1.75 GB 70 GB 100 2 1000 €0,068/h

Medium 2 3.5 GB 135 GB 200 4 200

0 €0,135/h

Large 4 7 GB 285 GB 400 8 400

0 €0,269/h

ExtraLarge 8 14 GB 605

GB 800 16 8000 €0,537/h

A5 2 14GB 605 GB 200 4 200

0€0,298/h

A6 4 28 GB 285 GB

1,000 8 400

0 €0,596/h

A7 8 56 GB 605 GB

2,000 16 800

0 €1,192/h

A8 8 2.6 Ghz

56 Gb 1600 Mhz

382 Gb

1,000

40,000**

16 8000 €1,183/h

A9 16 2.6 Ghz

112 Gb1600 Mhz

382 Gb

1,000

40,000**

16 8000 €3,65/h

Page 8: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

9

Bajada de precio en SQL VMsSQL Standard (a fecha de 12-05-2014)

2013 2014 (basic) 2014 (standard)

ExtraSmall €0.425/hr €0,014/hr €0,015/hr

Small €0.477/hr €0,056/hr €0,068/hr

Medium €0.544/hr €0,111/hr €0,135/hr

Large €0.678/hr €0,221/hr €0,269/hr

ExtraLarge €1.356/hr €0,441/hr €0,537/hr

A6 €1.17/hr €0,596/hr €0,596/hr

A7 €2.339/hr €1,192/hr €1,192/hr

Page 9: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

10

Agenda

1. ¿Qué podemos usar?2. AlwaysON3. Arquitecturas elásticas4. Caching 5. Autoescalado VMs6. Rendimiento CPU

Page 10: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

11

Diagrama arquitecturaAlwaysOn SQL Server 2012+

Windows Cluster

Availability Group

On-Premises

SecondaryPrimary

Page 11: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

12

Diagrama arquitectura

Windows Cluster

Availability Group

On-Premises

Secondary

Cloud

SecondaryPrimary

Page 12: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Diagrama arquitectura

13

Windows Cluster Windows Cluster

Availability Group Availability Group

Primary Secondary

On-Premises (NY) On-Premises (NJ)

Secondary

Cloud

Page 13: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

14

Diagrama arquitectura

Windows Cluster

Availability Group

Cloud On-Premises

SecondarySecondaryPrimary

Page 14: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

15

AlwaysOn

On-premises network

Domain controller

VPN tunnel (Windows Azure Virtual Network)Asynchronous

commit

Primary replica

Secondary replica

Synchronous commit

Run backups

Run BI reports

Page 15: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

16

DEMOElasticidad con AlwaysOn híbrido

Page 16: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 17: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 18: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 19: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 20: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 21: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 22: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 23: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 24: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 25: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 26: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 27: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 28: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 29: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 30: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 31: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 32: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 33: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 34: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 35: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 36: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 37: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 38: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 39: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014
Page 40: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

41

Agenda

1. ¿Qué podemos usar?2. AlwaysON3. Arquitecturas elásticas4. Caching 5. Autoescalado VMs6. Rendimiento CPU

Page 41: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

42

Diagrama arquitecturaElasticidad

DBreplica1

Replica1 Replica2 Replica n

DBreplica2 DBreplica3

Azure Republicador(opcional)

Transactional replication

SYNC

WANSQL1 (onpremise)

ON PREMISE Azure

Nodos secundarios replicación

Capa de base de datos, suscriptores (5s-15s delay)

SQL Standard Edition

Nodo publicador Instancia OnPremise que

contiene los datos maestros a replicar mediante replicación transaccional

Page 42: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

43

DEMOConfigurar entorno

Icon de tecnologíaIcon de tecnologíaIcon de tecnología

Page 43: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

44

Grupo de afinidad

Page 44: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

45

Network Service

Page 45: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

46

Infraestructura

Page 46: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

47

Dominio Active Directory

Page 47: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

48

Añadir el rol de Active Directory

Page 48: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

49

Añadir DNS

Page 49: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

50

Añadir republicador

Page 50: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

51

DEMOElasticidad flexible

Icon de tecnologíaIcon de tecnologíaIcon de tecnología

Page 51: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

52

• Las VM no pueden ser basic*• Usa VPN o encripta tu conexión• Automatiza los despliegues con

sysprep y scripts

Conceptos clave

Page 52: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

53

Agenda

1. ¿Qué podemos usar?2. AlwaysON3. Arquitecturas elásticas4. Caching 5. Autoescalado VMs6. Rendimiento CPU

Page 53: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

54

IaaS y VMs

Fault DomainRack_01

Fault DomainRack_02

Grupo de Disponibilidad

Grupo de Disponibilidad

Page 54: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Windows Azure Caching concepts

Microsoft Azure Cache is a family of distributed, in-memory, scalable solutions that enable you to build highly scalable and responsive applications by providing super-fast access to your data.Microsoft Azure Cache is available in the following flavors.– Azure Redis Cache (Preview) – Managed Cache Service – In-Role Cache 

Page 55: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Managed Cache Service

Azure Managed Cache Service is based on the AppFabric Cache engine. It also gives you access to a secure, dedicated cache that is managed by Microsoft. A cache created using the Managed Cache Service is also accessible from applications within Azure running on Azure Web Sites, Web & Worker Roles and Virtual Machines. For more information

Page 56: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Using Managed Cache

// Cache client configured by settings in application // configuration file. DataCacheFactoryConfiguration config =

new DataCacheFactoryConfiguration("default"); DataCacheFactory cacheFactory = new DataCacheFactory(config); DataCache defaultCache = cacheFactory.GetDefaultCache();

// Put and retrieve a test object from the default cache. defaultCache.Put("testkey", "testobject"); string strObject = (string)defaultCache.Get("testkey");

Page 57: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

In-Role CachingBased on the AppFabric Cache engine.

Allows you to perform caching by using a dedicated web or worker role instance in an application deployed to Microsoft Azure Cloud Services.

This provides flexibility in terms of deployment options and size but you manage the cache yourself. 

//add string object to cache with key "Key0" myCache.Add("Key0", "object added with Key0");

//add or replace string object in cache using key "Key0" myCache.Put("Key0", "object replaced or added using Key0"); //remove object in cache using key "Key0"myCache.Remove("Key0");

Page 58: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Use Cloud Caching: the Right Reasons

Speed of access to dataAzure SQL databaseAzure storageRemote storage and servicesAvoiding hitting rate limitsUp to 5,000 entities/messages/blobs per second per accountUp to 500 messages per second from a single queueUp to 500 entities per second from a single table partition

Page 59: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

60

Using Caching in your applications

Stores session state in shared memoryRequired for Web FarmsFaster than SQLSimple configuration change to your web app Enables session state to be cached across a clusterUses cache-aside, not RT+WB (session is Activity Data)TIP: Use HA to reduce the chances of sessions state loss

Example: ASP.NET App Session state provider

<sessionState mode="Custom" customProvider="SessionStoreProvider"> <providers> <add name="SessionStoreProvider“ type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider,

Microsoft.ApplicationServer.Caching.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35“ cacheName=“MyCache"/> </providers></sessionState>

Page 60: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Azure Redis Cache (PREVIEW)

Microsoft Azure Redis Cache (Preview) is based on the popular open source Redis Cache. It gives you access to a secure, dedicated Redis cache, managed by Microsoft. A cache created using Azure Redis Cache is accessible from any application within Microsoft Azure.

Azure Redis Cache (Preview) is available in the following two tiers.

– Basic – single node, multiple sizes.

– Standard – Two node Master/Slave, multiple sizes. Once the preview period is over, the standard tier offering will have a 99.9% SLA.

Page 61: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Azure Redis Cache

Page 62: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Azure Redis Cache (use)using StackExchange.Redis;

ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("contoso5.redis.cache.windows.net,ssl=true,password=...");

// connection referes to a previously configured //ConnectionMultiplexer IDatabase cache = connection.GetDatabase();

ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("contoso5.redis.cache.windows.net..."); IDatabase cache = connection.GetDatabase();

// Perform cache operations using the cache object... // Simple put of integral data types into the cache cache.StringSet("key1", "value"); cache.StringSet("key2", 25); // Simple get of data types from the cache string key1 = cache.StringGet("key1"); int key2 = (int)cache.StringGet("key2");

Page 63: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

64

DEMOCaching

Icon de tecnologíaIcon de tecnologíaIcon de tecnología

Page 64: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

65

Agenda

1. ¿Qué podemos usar?2. AlwaysON3. Arquitecturas elásticas4. Caching 5. Autoescalado VMs6. Rendimiento CPU

Page 65: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

66

DEMOAutoscale VM

Icon de tecnologíaIcon de tecnologíaIcon de tecnología

Page 66: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

67

Autoscale VMDos nodos, 1 parado

Page 67: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

68

Autoscale VMMáquina1

Page 68: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

69

Autoscale VMLog de operaciones

Page 69: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

70

Autoscale VMDetectado evento…aprovisionando

Page 70: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

71

Autoscale VMAprovisionando

Page 71: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

72

Autoscale VMAparece en el log

Page 72: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

73

Autoscale VMLog del evento

Page 73: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

74

Agenda

1. ¿Qué podemos usar?2. AlwaysON3. Arquitecturas elásticas4. Caching 5. Autoescalado VMs6. Rendimiento CPU

Page 74: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

75

Rendimiento CPUBenchmark simple

MáquinaPuntuación

single-threadPuntuación multi-

thread Descripción

Portatil Enrique Catalá

1911 4826 Intel i7 1.73Ghz

Entorno Web Role (A3)

1068 3729 AMD Opteron 4171 2.1Ghz

Entorno VM A3 (4cores)

1066 3635 AMD Opteron 4171 2.1Ghz

Entorno VM A4 (8cores)

1072 6617 AMD Opteron 4171 2.1Ghz

Entorno VM A7 (AMD)

1077 5622 AMD Opteron 4171 2.1Ghz

Entorno VM A7 (Intel)

1115 6680Intel Xeon E5-2660 2.2Ghz

Entorno A9 2460 10580 Intel Xeon E5-2670 2.6Ghz

Page 75: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

Rendimiento CPU

76

Azure

OnPremise

Azure

OnPremise

Azure

OnPremise

Page 76: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

77

Rendimiento CPUTambién a nivel SQL

Page 77: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

78

Solución IaaS real (eLearning)

VNET eLearning Corporativo PYME (con HA

CS-BE

FRONT-END SUBNET BACK-END SUBNET

CS-LAMS_Eng

CS-Moodle_LMS

AS_DCAD

AS_Cluster_SQL_AO

AS_FE_MOOD

AS_FE_LAMSAG

80

80

Page 78: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

79

Arquitecturas elásticas en SQL • De serie con AlwaysOn• “sin límite” con replicaciónElasticidad flexible• Web y worker roles• VMSCaché

ConclusiónAzure mola…pero úsalo para lo que necesitas

Page 79: Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ Summit 2014

80

Power BI para usuarios de negocio

80

Curso onlineClases virtuales presenciales14, 15, 16, 21, 22 y 23 de JulioDe 16 a 20 h

Máster en BI 4ª Edición (Inicio Octubre 2014)- Clases presenciales virtuales- 450 horas (60 ECTS) - SolidQ – UPM

- Clases + trabajo práctico + proyecto- Beca de hasta 1.300 € para los primeros inscritos.

Máster en Big Data & Analytics1ª Edición (Inicio Octubre 2014)- Clases presenciales virtuales- 1 año (60 ECTS) UMA

- Clases + trabajo práctico + proyecto

Información e inscripción: http://university.solidq.com / [email protected]