32

Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Embed Size (px)

Citation preview

Page 1: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!
Page 2: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Criando aplicações de alta escala e baixa latência com a plataforma Windows AzureCOS402

Bruno Akira [email protected]

Rafael GodinhoArquiteto de Soluções – Windows AzureMicrosofthttp://blogs.msdn.com/rafaelgodinho@rafaelgodinho

Page 3: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Assumimos que...

Você já conhece Windows AzureWeb/Worker RolesSQL AzureWindows Azure StorageWindows Azure Diagnostics

Você já fez deploy de uma aplicação no Windows Azure

Page 4: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Agenda

Baixa latência e alta escalaDefiniçãoOrganização do processamentoOrganização dos dados

DemosPerguntas?

Page 5: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Baixa Latência e Alta Escala

Page 6: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Definição de Baixa Latência e Alta Escala

Base de usuários global com baixo tempo de respostaFaz scale out para tratar requisições concorrentesAlto uso de recursos computacionais (CPU, memória, disco, rede, etc)

Page 7: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Qual o problema?

Web RoleWeb Role

Web Role SQL Azure

(50 GB)

É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Page 8: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Organização do Processamento

Page 9: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Processamento Síncrono

Request #1

Front End

Thread Thread

Processamento #1SQL Azure

WA Storage

Middle Tier

Processamento #1Response #1Bloqueada

Request #2 Esperando…

Page 10: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Processamento Assíncrono

Request #1

Front End

Thread Thread

Processamento #1SQL Azure

WA Storage

Middle Tier

Processamento #1Response #1

ContextRequest #2

Response #2

Processamento #2

Processamento #2

Page 11: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Lembrete...Todas as camadas devem ser assíncronas

Se não o gargalo somente muda de lugarSuporte nativo na plataforma

ADO.NETLINQ to SQLADO.NET Entity FrameworkWCFWindows Azure Storage.NET 4.0 Async CTP

Page 12: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Exemplo Async CTPvoid UploadImage(Stream image, CloudBlob destBlob){ AddImageToSQLAzure(destBlob.Uri); UploadImageToBlob(image, destBlob);}

async Task UploadImageAsync(Stream image, CloudBlob destBlob){ var t1 = AddImageToSQLAzureAsync(destBlob.Uri); var t2 = UploadImageToBlobAsync(image, destBlob); await TaskEx.WhenAll(t1, t2);}

Page 13: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Exemplo Async CTPvoid UploadImageToBlob (Stream image, CloudBlob destBlob){ destBlob.UploadFromStream(image);}

async Task UploadImageToBlobAsync (Stream image, CloudBlob destBlob){ await Task.Factory.FromAsync<Stream>( destBlob.BeginUploadFromStream, destBlob.EndUploadFromStream, image, null);}

Page 14: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Padrão Assíncrono no Windows Azure

Web Role Worker Role

Storage

Worker RoleWorker Role

Web Role

Worker Role

Queue

Page 15: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Dados do Ponto de Vista do Cliente

Page 16: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Cliente Acessando Dados

Saia do caminho sempre que possível Conteúdo estático e público Acesso ao Blob Storage

Media (imagens, vídeo)Binários (XAP, MSI, ZIP)

Role BlobStorage

Role

Page 17: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Shared Access SignaturesAcesso à conteúdo privado

Válido por tempo ou revogado quando necessário

Também funciona para escrita

RoleChave

Blob Storage

X Blob privado(ex.: conteúdo pago)

1. Sou o Bob e quero acessar X 2. Role gera a

Shared Access Signature (SAS)

3. Role envia a SAS via HTTPS

4. Bob utiliza a SAS para acessar X direto do Blob Storage

Page 18: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Conteúdo Próximo do UsuárioWindows Azure Content Delivery Network

Blob Storage

X

CDN

X

Poucos saltos

Muitos saltos

Ponto de Presença (POP) mais próximo

Resolução do POP mais próximo por DNS

Web RoleWeb Role

Page 19: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Processamento Próximo do Usuário

Windows Azure Traffic Manager

Traffic Manager

MonitoraçãoPolíticas

app.cloudapp.net app-us.cloudapp.net

app-eur.cloudapp.net

app-asia.cloudapp.net

Page 20: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Servidor Gerenciando os Dados

Page 21: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Melhor Local de Armazenamento?

Depende SQL Azure – Dados relacionaisBlob – Binários grandesTable – Informação estruturadaQueue – Dados temporários de processamento

Não excludentes

Page 22: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Particionamento Horizontal

Page 23: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Particionamento Vertical

Page 24: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Particionamento Híbrido

SQL Azure Tables BLOBs

Page 25: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Cache em MemóriaWindows Azure AppFabric Caching

Role

Table Storage

SQL AzureC

ache Table

Storage

SQL Azure

CL

A camada de cache ajudará na redução da latência

Page 26: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

demo

Processamento AssíncronoParticionamentoCDNCaching

Page 27: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Table

SíncronoAssíncrono

Assíncrono

ResumoBlob Storage

Chave

Privado

PúblicoCDN Público

Table

SQL Azure

AppFabric Caching

SQL Azure

SQL Azure

Traffic Mgr

Web App

Page 28: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

ReferênciasWindows Azure Platform Training Kit

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8396

Centro de Treinamento Windows Azurehttp://msdn.microsoft.com/pt-br/windowsazure/

Page 29: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Recursos

Recursos para IT Pros

Recursos para Desenvolvedores

http://technet.microsoft.com/pt-br

http://msdn.microsoft.com/pt-br

Getthefreemobileappforyourphonehttp://gettag.mobi

Getthefreemobileappforyourphonehttp://gettag.mobi

Page 30: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

Não esqueça de preencher sua

avaliação onlinewww.teched.com.br/

avaliacao

Getthefreemobileappforyourphonehttp://gettag.mobi

Page 31: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

perguntas?

Bruno Akira [email protected]

Rafael GodinhoArquiteto de Soluções – Windows AzureMicrosofthttp://blogs.msdn.com/rafaelgodinho@rafaelgodinho

Page 32: Web Role SQL Azure (50 GB) SQL Azure (50 GB) É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.