Appi303 daibert

484 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
484
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Appi303 daibert

  1. 1. Aplicações de alto desempenho eCache Distribuído com o WindowsServer AppFabricAPPI303@daibertSolutions ArchitectHewlett-Packard Brasil
  2. 2. Cenário Atual das AplicaçõesRequisitos• Os dados devem ser acessados por aplicações presentes em todos os lugares: Local, Web, Federação Arquiteturas Utilizadas • N camadas• Uma série de aplicações devem acessar o mesmo dado, ao mesmo tempo, porém • Regras de negócio e dados de forma diferente distribuídos, aonde os dados “moram” perto das regras• Aplicações cada vez com mais dados • Replicação de dados• Alta disponibilidade • Criação de caches de memória pela• Aplicações de Missão Crítica equipe de desenvolvimento do projeto• Aplicações devem ser “baratas” para se escalar
  3. 3. Principais Mercados Cenários • Compartilhamento de sessões HTTP através de farms de servidores • Carrinho de compras em ambiente de Farm de Servidores WebWeb • Aplicações Online • Armazenamento de dados pré-calculados acessados com frequência • Catálogos de produtos entre empresasLOB • Armazenar referência de dados utilizados frequentemente por aplicações ERP • Cellular/VOIP: Computar utilização, informações de sessões ativas,Telco Cargas de pré-pagos • SMS: Conteúdo de mensagens / notificações / tarifações • Comparação de preços entre companhias / Disponibilidade de passagensTurismo aéreasSegurança • Processamento de dados de rede e detecção de intrusão • Portifólio de dados de usuáriosFinanceiro • Simulações de carteiras de risco e cenários
  4. 4. O que é cache? Uma área de armazenamento temporária onde os dados são armazenados para acesso rápido
  5. 5. Cache Local Servidor de Servidor de Aplicação 01 Aplicação 02• Normalmente utilizando variáveis de Sessão ou Aplicação
  6. 6. Cache Distribuido Clientes espalhados por várias máquinas Clientes acessam o Cache como se fossem em um Visão unificada do Cache único repositório Camada de Cache distribui os dados através de vários nós
  7. 7. O que viabiliza? Tendência de mercado Máquinas multi-core memória • Rápida queda do valor das memórias, possibilitando maior poder de armazenagem de dados em memória • Facilidade de troca e melhoria de hardware com Virtualização • Multi-core CPUs, custo reduzido de memória flash
  8. 8. Quem deve criar a infraestrutura decache para as aplicações? Possíveis respostas: Desenvolvedores de aplicações Empresas de software, como a Microsoft ou Oracle Os desenvolvedores devem estar focados em construir soluções para o negócio do cliente e não em ferramentas para aplicações
  9. 9. Aonde o Cache Distribuido se “encaixa"? Client Web Client Desktop, Mobile, WPF AJAX, Silverlight, ASPX Camada de aplicação IIS apps, ASP.NET, .NET Apps, COM+, WCF Camada de dados Camada de Cache SQL, XML
  10. 10. Tipos de Dados
  11. 11. Dados de ConsultaDados para consulta Dados agregados ou trasformadosCada versão é únicaDados atualizados com frequênciaExemplos Alicações Web e Coorporativas como catalogos de produtos Usuários, Dados de FuncionáriosTipo de Acesso Maior quantidade de leitura Acesso concorrente e compartilhadoEscalabilidade Maior número de acessosFuncionalidade Acesso baseado em chaves Buscas e filtro Carregamento local (Servidor Web) Cenário: Redes Sociais
  12. 12. Dados TransacionaisDados gerados a partir de atividade transacionais nas aplicações Dados HistóricosExemplos Carrinho de compras Session State Aplicações coorporativas B2BTipo de Acesso Leitura e gravação Acesso exclusivoEscalabilidade Muitos dados e acessos simultâneosFuncionalidades Acesso baseado em chaves Transações Cenário: Aplicações Coorporativas
  13. 13. Dados DistribuídosDados alterados por transações Transações “partidas”Exemplos Inventário de venda de passagensTipo de Acesso Leitura e gravação Acesso compartilhado aos dadosFuncionalidades Acesso baseado em chaves TransaçõesEscalabilidade Grande número de acessos simultâneos Cenário: Inventário de venda de passagens
  14. 14. Tipos de Cache Distribuido
  15. 15. Cache Particionado (Mais memória, sem HA) Put (K2, V2) executado na aplicação do Cliente1 Camada de roteamento envia o item V2 para o Cache2 Get (K2) executado na aplicação do Cliente2 Cliente 2 roteia para o Cache 2 para pegar o item V2 Put(K2, v2) Get(K2) Cliente1 Cliente2 Routing Routing layer layer Cache1 Cache2 Cache3 Regiões Primárias Regiões Primárias Regiões Primárias K1, V1 K2, V2 K3, V3
  16. 16. Cache Particionado com Cache Local(Mais memória, maior performance, sem HA) Cache local pode acelerar acesso aos dados no cliente Put(K2, v2) Get(K2) Cliente Cliente Velocity Cache Local K2, V2 Cache Local K2, V2 Routing Routing layer layer Cache1 Cache2 Cache3 Região Primária Região Primária Região Primária K1, V1 K2, V2 K3, V3
  17. 17. Alta Disponibilidade Put (K2, V2) on Cache1 As alterçaões são replicadas do Cache2 para os demais nós Cache2 aguarda o “ok” da atualização dos outros nós Get (K2) on Cache3 Cache3 verifica se os dados são iguais ao do Cache2 e, caso não seja, se atualiza Put(K2, v2) Get(K2) Client Client Routing Routing layer layer Cache1 Cache2 Cache3 Região Primária Região Primária Região Primária K1, V1 K2, V2 K3, V3 Região Secundária Região Secundária Região Secundária K3, V3 K2, V2 K3, V3 K1, V1 K2, V2 K1, V1
  18. 18. Cache Replicado (Maior performance com HA) Put (K2, V2) on Cache1 Cache2 é atualizado e notifica o Cache1 e o Cache3 Cache2 replica de forma assíncrona os dados para o Cache1 e Cache2 Get on cache3 O Cache 3 lê do seu repositório local os dados e retorna o valor do Item Put(K2, v2) Get(K2) Cache1 Routing Cache2 Cache3 layer Regiões Replicadas Regiões Replicadas Regiões Replicadas K2, V2 K2, V2 K2, V2 K3, V3 K1, V1 K3, V3 K1, V1 K3, V3 K1, V1
  19. 19. API //------------------------------------------------------- // Get/Put simples catalogo.Put(“Item01", new Toy(“Autorama", .,.)); // Recuperando um item Toy toyObj = (Toy)catalogo.Get(“Item01"); // ------------------------------------------------------ // Get/Put por região catalogo.CreateRegion(“Brinquedos"); // Ambos objetos são inseridos na mesma região catalogo.Put(“Brinquedos", “Item02", new Toy( .,.)); catalogo.Put(“Brinquedos", “SubItem02", new ToyParts(…)); Toy toyObj = (Toy)catalogo.Get(“Brinquedos", “Item02");
  20. 20. Cache Aside Pattern object data = null; var key = "DataKey"; data = cache.Get(key); if (data == null) { data = GetData(); cache.Add(key, data); }
  21. 21. Demo
  22. 22. Futuro da plataformaAppFabric
  23. 23. Inserir o slide do BUILD sobre o AppFabric 1.1
  24. 24. Conteúdo Relacionado Breakout Sessions (session codes and titles) Interactive Sessions (session codes and titles) Hands-on Labs (session codes and titles) Product Demo Stations (demo station title and location) Related Certification Exam Find Me Later At…
  25. 25. Palestras Relacionadas Resource 1 Resource 2 Resource 3 Resource 4
  26. 26. Get the free mobile app for your phonehttp:/ / gettag.mobi http://technet.microsoft.com/pt-brGet the free mobile app for your phonehttp:/ / gettag.mobi http://msdn.microsoft.com/pt-br
  27. 27. Não esqueça depreencher sua avaliação onlinewww.teched.com.br/avaliacao Get the free mobile app for your phone http:/ / gettag.mobi
  28. 28. © 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 marketconditions, 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.

×