appi303 daibert

29

Upload: osvaldo-daibert

Post on 14-Dec-2014

265 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Appi303   daibert
Page 2: Appi303   daibert

Aplicações de alto desempenho e Cache Distribuído com o Windows Server AppFabricAPPI303

@daibertSolutions Architect Hewlett-Packard Brasil

Page 3: Appi303   daibert

• Os dados devem ser acessados por aplicações presentes em todos os lugares: Local, Web, Federação

• Uma série de aplicações devem acessar o mesmo dado, ao mesmo tempo, porém de forma diferente

• Aplicações cada vez com mais dados

• Alta disponibilidade

• Aplicações de Missão Crítica

• Aplicações devem ser “baratas” para se escalar

Requisitos

• N camadas

• Regras de negócio e dados distribuídos, aonde os dados “moram” perto das regras

• Replicação de dados

• Criação de caches de memória pela equipe de desenvolvimento do projeto

Arquiteturas Utilizadas

Cenário Atual das Aplicações

Page 4: Appi303   daibert

Principais MercadosCenários

Web

• Compartilhamento de sessões HTTP através de farms de servidores• Carrinho de compras em ambiente de Farm de Servidores Web• Aplicações Online• Armazenamento de dados pré-calculados acessados com frequência

LOB• Catálogos de produtos entre empresas• Armazenar referência de dados utilizados frequentemente por aplicações

ERP

Telco• Cellular/VOIP: Computar utilização, informações de sessões ativas,

Cargas de pré-pagos• SMS: Conteúdo de mensagens / notificações / tarifações

Turismo• Comparação de preços entre companhias / Disponibilidade de passagens

aéreas

Segurança • Processamento de dados de rede e detecção de intrusão

Financeiro• Portifólio de dados de usuários

• Simulações de carteiras de risco e cenários

Page 5: Appi303   daibert

O que é cache?Uma área de armazenamento temporária onde os dados são armazenados para acesso rápido

Page 6: Appi303   daibert

Cache Local

Servidor de Aplicação 01

Servidor de Aplicação 02

• Normalmente utilizando variáveis de Sessão ou Aplicação

Page 7: Appi303   daibert

Cache Distribuido

Visão unificada do Cache

Clientes espalhados por várias máquinas

Clientes acessam o Cache como se fossem em um

único repositório

Camada de Cache distribui

os dados através de vários nós

Page 8: Appi303   daibert

O que viabiliza?

• 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

Tendência de mercado

Máquinas multi-core memória

Page 9: Appi303   daibert

Quem deve criar a infraestrutura de cache para as aplicações?

Possíveis respostas:Desenvolvedores de aplicaçõesEmpresas 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

Page 10: Appi303   daibert

Aonde o Cache Distribuido se “encaixa" ?

Camada de aplicaçãoIIS apps, ASP.NET, .NET Apps,

COM+, WCF

ClientDesktop, Mobile, WPF

Web ClientAJAX, Silverlight, ASPX

Camada de dadosSQL, XML

Camada de Cache

Page 11: Appi303   daibert

Tipos de Dados

Page 12: Appi303   daibert

Dados para consulta

Dados agregados ou trasformados

Cada versão é únicaDados atualizados com frequênciaExemplos

Alicações Web e Coorporativas como catalogos de produtos

Usuários, Dados de Funcionários

Tipo de Acesso

Maior quantidade de leitura

Acesso concorrente e compartilhado

Escalabilidade

Maior número de acessos

Funcionalidade

Acesso baseado em chaves

Buscas e filtro

Carregamento local (Servidor Web)

Dados de Consulta

Cenário: Redes Sociais

Page 13: Appi303   daibert

Dados gerados a partir de atividade transacionais nas aplicaçõesDados Históricos

ExemplosCarrinho de compras Session StateAplicações coorporativas B2B

Tipo de AcessoLeitura e gravaçãoAcesso exclusivo

EscalabilidadeMuitos dados e acessos simultâneos

FuncionalidadesAcesso baseado em chavesTransações

Dados Transacionais

Cenário: Aplicações Coorporativas

Page 14: Appi303   daibert

Dados Distribuídos

Dados alterados por transaçõesTransações “partidas”

Exemplos

Inventário de venda de passagens

Tipo de AcessoLeitura e gravação

Acesso compartilhado aos dados

FuncionalidadesAcesso baseado em chaves

Transações

EscalabilidadeGrande número de acessos simultâneos

Cenário: Inventário de venda de passagens

Page 15: Appi303   daibert

Tipos de Cache Distribuido

Page 16: Appi303   daibert

Cliente2Cliente1

Cache Particionado (Mais memória, sem HA)

Put (K2, V2) executado na aplicação do Cliente1Camada de roteamento envia o item V2 para o Cache2

Get (K2) executado na aplicação do Cliente2Cliente 2 roteia para o Cache 2 para pegar o item V2

Put(K2, v2) Get(K2)

Routing layer

Routing layer

Cache2Cache1

Regiões Primárias

K2, V2

Regiões Primárias

K1, V1

Cache3

Regiões Primárias

K3, V3

Page 17: Appi303   daibert

Cliente Velocity

Cache Local

Cliente

Cache Local

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)

Routing layer

Routing layer

Cache2Cache1

Região Primária

K2, V2

Região Primária

K1, V1

Cache3

Região Primária

K3, V3

K2, V2K2, V2

Page 18: Appi303   daibert

ClientClient

Cache2

Região Secundária

Cache1

Região Secundária

Cache3

Região Secundária

Região Primária

Alta Disponibilidade

Put(K2, v2)

K2, V2

K2, V2

Get(K2)

Região Primária Região Primária

K3, V3 K1, V1 K1, V1K2, V2K3, V3

K3, V3K1, V1

Routing layer

Routing layer

Put (K2, V2) on Cache1As alterçaões são replicadas do Cache2 para os demais nósCache2 aguarda o “ok” da atualização dos outros nós

Get (K2) on Cache3Cache3 verifica se os dados são iguais ao do Cache2 e, caso não seja, se atualiza

Page 19: Appi303   daibert

Cache2Cache1 Cache3

Regiões Replicadas

Cache Replicado (Maior performance com HA)

Put (K2, V2) on Cache1Cache2 é atualizado e notifica o Cache1 e o Cache3Cache2 replica de forma assíncrona os dados para o Cache1 e Cache2

Get on cache3O Cache 3 lê do seu repositório local os dados e retorna o valor do Item

Put(K2, v2)

K2, V2

Get(K2)

Regiões Replicadas Regiões Replicadas

K3, V3 K1, V1 K1, V1K3, V3 K3, V3K1, V1

K2, V2K2, V2

Routing layer

Page 20: Appi303   daibert

// ------------------------------------------------------// Get/Put por regiãocatalogo.CreateRegion(“Brinquedos");

// Ambos objetos são inseridos na mesma regiãocatalogo.Put(“Brinquedos", “Item02", new Toy( .,.));catalogo.Put(“Brinquedos", “SubItem02", new ToyParts(…));

Toy toyObj = (Toy)catalogo.Get(“Brinquedos", “Item02");

//-------------------------------------------------------// Get/Put simplescatalogo.Put(“Item01", new Toy(“Autorama", .,.));

// Recuperando um item Toy toyObj = (Toy)catalogo.Get(“Item01");

API

Page 21: Appi303   daibert

object data = null;var key = "DataKey";

data = cache.Get(key);

if (data == null){ data = GetData(); cache.Add(key, data);}

Cache Aside Pattern

Page 22: Appi303   daibert

demo

Demo

Page 23: Appi303   daibert

Futuro da plataforma AppFabric

Page 24: Appi303   daibert

Inserir o slide do BUILD sobre o AppFabric 1.1

Page 25: Appi303   daibert

Conteúdo RelacionadoBreakout 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…

Page 26: Appi303   daibert

Palestras RelacionadasResource 1

Resource 2

Resource 3

Resource 4

Page 27: Appi303   daibert

Recursos

Recursos para IT Pros

Recursos para Desenvolvedores

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

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

Getthefreemobileappforyourphone

http://gettag.mobi

Getthefreemobileappforyourphone

http://gettag.mobi

Page 28: Appi303   daibert

Não esqueça de preencher sua

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

avaliacao

Getthefreemobileappforyourphone

http://gettag.mobi

Page 29: Appi303   daibert

© 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.