Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouElias Bastos Carneiro Alterado mais de 8 anos atrás
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
44
Boa prática – Diminuindo o Polling
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
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.