A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SETEMBRO, 2010 | SÃO PAULO. Otavio Pecego Coelho Arquiteto Chefe Microsoft Brasil Projetando Aplicativos.

Apresentações semelhantes


Apresentação em tema: "SETEMBRO, 2010 | SÃO PAULO. Otavio Pecego Coelho Arquiteto Chefe Microsoft Brasil Projetando Aplicativos."— Transcrição da apresentação:

1 SETEMBRO, 2010 | SÃO PAULO

2 Otavio Pecego Coelho Arquiteto Chefe Microsoft Brasil http://blogs.msdn.com/otavio otavioc@microsoft.com Projetando Aplicativos para a Escalabilidade - Tirando o melhor da Plataforma Windows Azure C Ó DIGO DA SESS Ã O: COS304

3 Agenda Provisionamento Dinâmico Armazenamento de Estados Upgrade de Versões Sharding SaaS: Personalização e Isolamento de Dados Cache Distância Código-Storage Filas Continuações Monitoração Grid Computing Pequenos Patterns Práticas para a Diminuição de Custos

4 Provisionamento Dinâmico

5 Via Portal Via Visual Studio csmanage /view-deployment /hosted- service:dpe_demos /slot:staging /view- deployment /name:dpe_demos Build automático: http://blogs.msdn.com/b/domgreen/archive/20 09/09/29/deploying-to-the-cloud-as-part-of- your-daily-build.aspx

6 Provisionamento via csmanage.exe

7 Armazenando Estados A A B B A?

8 Armazenando Estados

9 P1P2

10 Armazenando Estados s s s s s s

11 2) Table (Table Session Size: 64K Max) 1) Table Storage (Table + Blob) 3) SQL Azure

12 Resumo (serve para Membership, Role, Profile, Session State) CapacidadeAzure TableSQL Azure ElasticidadeSim.Limitado pelos 50GBs PreçoVariável: Transação + Armazenamento Custo fixo ao mês Remoção quando a sessão termina Não. Implementar um WorkerRole para a limpeza DesempenhoMelhor que SQL quando muitos usuários oncorrentes Melhor que SQL quando poucos usuários oncorrentes EscalabilidadeMaior escalabilidadeEscalabilidade via particionamento Referênciashttp://blogs.msdn.com/b/jnak/ archive/2009/11/19/using-the- sample-windows-azure-asp-net- providers.aspx http://blogs.msdn.com/b/sqlaz ure/archive/2010/08/04/10046 103.aspx

13 Upgrades de Versões

14 Utilizando o Upgrade Domain (UD) Passo 1: Upgrade dos roles que entendem ambas as versões Step 2: Instale a nova versão UD0UD1UD2UD0UD1UD2

15 Mudança de Esquema – Upgrade p/ Cliente V1.5 Cliente V1.5 Tem a classe com a nova propriedade Se a entidade está na versão V1 Guarda o valor default na nova propriedade Não faça upgrade da versão da entidade Cliente V1 Ignora a nova propriedade, uma vez que está usando “IgnoreMissingProperties” Partition Key Row Key Version…..Property N PK1RK11 PK2RK21 ……. 1 1 1 Cliente V1 Cliente V1 Cliente V1 Cliente V1 Cliente V1.5 Cliente V1.5 Nova Property Default Cliente V1.5 Cliente V1.5

16 Schema Change – Upgrade to V2 Cliente Cliente V2 Faz update das linhas p/ V2 (no seu primeiro uso) e começa a colocar valores reais nas novas propriedades Cliente V1.5 Se a entidade está na versão V1 Guarda o valor default na nova propriedade e não muda a versão Se a entidade está na versão V2 Usa o novo valor e faz o seu update Partition Key Row Key Version…..Property N PK1RK11 PK2RK21 ……. 1 1 1 Cliente V1 Cliente V1 Cliente V1 Cliente V1 Cliente V1.5 Cliente V1.5 Cliente V1.5 Cliente V1.5 Nova Property Default 2 Valor1 Cliente V2 Cliente V2 Cliente V2 Cliente V2 Default Valor2

17 Sharding P1P2P3

18 Sharding

19 Multi-Inquilino – Isolamento de Dados Cliente ACliente BCliente C CREATE DATABASE ClienteX AS COPY OF [source_server_name.] DBTemplate Open Cliente(X)

20 Multi-Inquilinos - Personalização TenantID Inquilino int TenantName nvarchar EmployeeId Employee int FirstName nvarchar LastName nvarchar CustomizationID Customization int Value nvarchar TypeID Type int Name nvarchar CLRType nvarchar 1 * * 1 * 1 * *

21 Multi-Inquilinos - Personalização TenantID Inquilino 1 TenantName Brazil EmployeeId Employee 1 FirstName Luis LastName Lula CustomizationID Customization 1 Value 06734-001 TypeID Type 1 Name CLRType string 1 * * 1 * 1 * * CodPostal

22 Multi-Inquilinos - Personalização TenantID Inquilino 2 TenantName USA EmployeeId Employee 1 FirstName Barak LastName Obama CustomizationID Customization 2 Value 20500 TypeID Type 2 Name CLRType string 1 * * 1 * 1 * * ZipCode Esquema Fixo Se aplica a Todos Inquilinos Customizável Por Inquilino Pode ser p/ ambos inquilinos

23 Personalização

24 Cache Ready Only Windows Azure Drives Windows Azure Content Delivery Network ReadWrite: http://cloudcache.codeplex.com/ http://code.msdn.microsoft.com/winazurememcac hed/Release/ProjectReleases.aspx?ReleaseId=3551 Futuro: AppFabric Cache

25 Lease Snapshot Windows Azure Drives

26 Windows Azure Content Delivery Network Windows Azure Blob Service Windows Azure Blob Service pic1.jpg Content Delivery Network Content Delivery Network Localização do CDN Para habilitar o CDN:  Registre CDN via Dev Portal  Container público http://sally.blob.core.windows.net/images/pic1.jpg http://sally.blob.core.windows.net/  http://guid01.vo.msecnd.net/ pic1.jpg Não disponível! pic1.jpg TTL

27 Distância Código & Dados – Code Far

28 Distância Código & Dados – Code Near

29 Filas e Processamento em Background

30 Melhores Práticas para Filas ISerializable Idempotência Mensagens Envenenadas

31 OBS: Nem sempre precisamos de Work Roles

32 Escalando a Vazão das Filas Junte itens de trabalho em Blobs agrupe vários itens de trabalho num Blob Enfilere uma mensagem que aponta para o Blob OU Use Múltiplas Filas Job Manager Responsável por adicionar e remover filas Workers Precisam determinar que filas usar Escolha aleatória via uma Lista de Filas Ou escolha centralizada no Job Manager

33 Continuação para itens que rodam durante muito tempo Diminuir retrabalho em falhas Algoritmo Quebre o item de trabalho em pedaços menores e repetitivos Guarde o progresso depois de cada passo indexando pelo item de trabalho Em caso de erro, procure o último passo daquele item de trabalho na tabela Recomece a partir do ponto de falha Cuidado c/ erros persistentes

34 Continuação para itens que rodam durante muito tempo Diminuir retrabalho em falhas Algoritmo Quebre o item de trabalho em pedaços menores e repetitivos Guarde o progresso depois de cada passo indexando pelo item de trabalho Em caso de erro, procure o último passo daquele item de trabalho na tabela Recomece a partir do ponto de falha Cuidado c/ erros persistentes

35 Monitoração e WatchDog

36 Cenário Grid Computing

37 Master Cliente Data Worker “Map” M Quantas letras ”e”’encontramos na frase “The quick brown fox jumps over the lazy dog”? M

38 Master Cliente Result Worker “Reduce ” L 3 letras ”e” encontradas

39 Web Role Cliente Data Worker Data Aplicação Cliente Job/Task Scheduler Serviço Remoto Fila Req Tabela

40 MapReduce

41 Pequenos Cuidados

42 Boa Prática: Retry

43

44 Boa prática – Diminuindo o Polling

45

46 Batch Update // loop de inserções for (int index = 0; index < newBlogs.Length; index++) { context.AddObject(newBlogs[index]); } // loop de deleções for (int index = 0; index < deletedBlogs.Length; index++) { context.DeleteObject(deletedBlogs[index]); } // loop de updates for (int index = 0; index < updatedBlogs.Length; index++) { updatedBlogs[index].Rating++; context.UpdateObject(updatedBlogs[index]); } // Operações CUD executadas num único batch. DataServiceResponse response = context.SaveChanges( SaveChangesOptions.Batch );

47 Arquitetura para Diminuição de Custos Compartilhamento de CPU Compressão: CPU X Tamanho de Memória Número de Transações – Batch Update

48 Resumo A Plataforma Azure provê alta escalabilidade e disponibilidade Existem um conjunto de Patterns de Design e Operação suportados pela Plataforma Azure Aplique os Patterns apresentados de acordo com o que o seu aplicativo necessita. Cuidado com a Falta de Arquitetura ! Cuidado com o Excesso de Arquitetura !

49 Capacidades da plataforma Windows Azure Compute Storage Data SQL Azure Data Sync Connectivity Project “Sydney” Security “Geneva” Application Services Frameworks “Dublin”“Velocity” Service Bus Access Control Table StorageBlob StorageQueueDrive Content Delivery Network COS302 | SQL Azure - Cenários de Uso, Migraçao e Operaçao COS401 | Trace, Log, Provisionamento e Monitoraçao no Azure COS201 | Plataforma Azure AppFabric - utilizando o Service Bus e o Access Control Services COS303 | Movendo Aplicativos para a Nuvem COS304 | Projetando Aplicativos para a Escalabilidade - Tirando o melhor da Plataforma Windows Azure SIA305 | Segurança no Desenvolvimento para Windows Azure DBP308 | Sincronizando dados com a nuvem através do SQL Azure Data Sync e Sync Framework 2.0 INT303 | Integrando Moodle com plataforma Microsoft COS301 | Desenvolvendo para o Azure

50

51 © 2008 Microsoft Corporation. Todos os direitos reservados. Microsoft, Windows, Windows Vista e outros nomes de produtos s ã o ou podem ser marcas registradas e/ou marcas comerciais nos EUA e/ou outros pa í ses. Este documento é meramente informativo e representa a vis ã o atual da Microsoft Corporation a partir da data desta apresenta çã o. Como a Microsoft deve atender a condi çõ es de mercado em constante altera çã o, este documento n ã o deve ser interpretado como um compromisso por parte da Microsoft, e a Microsoft n ã o pode garantir a precis ã o de qualquer informa çã o fornecida ap ó s a data desta apresenta çã o. A MICROSOFT N Ã O D Á QUALQUER GARANTIA, SEJA ELA EXPRESSA, IMPL Í CITA OU ESTATUT Á RIA, REFERENTE À S INFORMA ÇÕ ES DESTA APRESENTA ÇÃ O.

52 Por favor preencha a avaliação


Carregar ppt "SETEMBRO, 2010 | SÃO PAULO. Otavio Pecego Coelho Arquiteto Chefe Microsoft Brasil Projetando Aplicativos."

Apresentações semelhantes


Anúncios Google