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
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
Agenda
Baixa latência e alta escalaDefiniçãoOrganização do processamentoOrganização dos dados
DemosPerguntas?
Baixa Latência e Alta Escala
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)
Qual o problema?
Web RoleWeb Role
Web Role SQL Azure
(50 GB)
É melhor ter 50 bancos de 1GB do que 1 banco de 50GB!
Organização do Processamento
Processamento Síncrono
Request #1
Front End
Thread Thread
Processamento #1SQL Azure
WA Storage
Middle Tier
Processamento #1Response #1Bloqueada
Request #2 Esperando…
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
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
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);}
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);}
Padrão Assíncrono no Windows Azure
Web Role Worker Role
Storage
Worker RoleWorker Role
Web Role
Worker Role
Queue
Dados do Ponto de Vista do Cliente
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
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
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
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
Servidor Gerenciando os Dados
Melhor Local de Armazenamento?
Depende SQL Azure – Dados relacionaisBlob – Binários grandesTable – Informação estruturadaQueue – Dados temporários de processamento
Não excludentes
Particionamento Horizontal
Particionamento Vertical
Particionamento Híbrido
SQL Azure Tables BLOBs
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
demo
Processamento AssíncronoParticionamentoCDNCaching
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
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/
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
Não esqueça de preencher sua
avaliação onlinewww.teched.com.br/
avaliacao
Getthefreemobileappforyourphonehttp://gettag.mobi
perguntas?
Bruno Akira [email protected]
Rafael GodinhoArquiteto de Soluções – Windows AzureMicrosofthttp://blogs.msdn.com/rafaelgodinho@rafaelgodinho
© 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.
Top Related