SlideShare uma empresa Scribd logo
1 de 29
Aplicações de alto desempenho e
Cache Distribuído com o Windows
Server AppFabric
APPI303
@daibert
Solutions Architect
Hewlett-Packard Brasil
Cenário Atual das Aplicações
Requisitos
• 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
Principais Mercados
                                      Cenários
             •   Compartilhamento de sessões HTTP através de farms de servidores
             •   Carrinho de compras em ambiente de Farm de Servidores Web
Web
             •   Aplicações Online
             •   Armazenamento de dados pré-calculados acessados com frequência

             • Catálogos de produtos entre empresas
LOB          • 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 passagens
Turismo
               aéreas

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

             • Portifólio de dados de usuários
Financeiro
             • Simulações de carteiras de risco e cenários
O que é cache?
 Uma área de armazenamento temporária
 onde os dados são armazenados para
 acesso rápido
Cache Local




              Servidor de           Servidor de
              Aplicação 01          Aplicação 02



• Normalmente utilizando variáveis de Sessão ou Aplicação
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
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
Quem deve criar a infraestrutura de
cache 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
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
Tipos de Dados
Dados de Consulta
Dados para consulta
   Dados agregados ou trasformados
Cada versão é única
Dados atualizados com frequência
Exemplos
   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)     Cenário: Redes Sociais
Dados Transacionais
Dados gerados a partir de atividade transacionais nas aplicações
   Dados Históricos
Exemplos
   Carrinho de compras
   Session State
   Aplicações coorporativas B2B
Tipo de Acesso
   Leitura e gravação
   Acesso exclusivo
Escalabilidade
   Muitos dados e acessos simultâneos
Funcionalidades
   Acesso baseado em chaves
   Transações


                                        Cenário: Aplicações Coorporativas
Dados Distribuídos
Dados alterados por transações
   Transações “partidas”
Exemplos
   Inventário de venda de passagens
Tipo de Acesso
   Leitura e gravação
   Acesso compartilhado aos dados
Funcionalidades
   Acesso baseado em chaves
   Transações
Escalabilidade
   Grande número de acessos simultâneos



                                      Cenário: Inventário de venda de passagens
Tipos de Cache Distribuido
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
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
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
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
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");
Cache Aside Pattern

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

   data = cache.Get(key);

   if (data == null)
   {
       data = GetData();
       cache.Add(key, data);
   }
Demo
Futuro da plataforma
AppFabric
Inserir o slide do BUILD sobre o AppFabric 1.1
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…
Palestras Relacionadas
  Resource 1

  Resource 2

  Resource 3

  Resource 4
Get the free mobile app for your phone
http:/ / gettag.mobi



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




Get the free mobile app for your phone
http:/ / gettag.mobi


                                         http://msdn.microsoft.com/pt-br
Não esqueça de
preencher sua avaliação
        online
www.teched.com.br/avaliacao


              Get the free mobile app for your phone
              http:/ / gettag.mobi
© 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.

Mais conteúdo relacionado

Mais procurados

Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server EmbratelAlex Hübner
 
Windows Server 2012 - O poder de multiplos servidores, a simplicidade de um
Windows Server 2012 - O poder de multiplos servidores, a simplicidade de umWindows Server 2012 - O poder de multiplos servidores, a simplicidade de um
Windows Server 2012 - O poder de multiplos servidores, a simplicidade de umFabio Hara
 
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...CPqD
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Marcos William Valentini
 
windows server 2012 e windows 8 = melhores juntos
windows server 2012 e windows 8 = melhores juntoswindows server 2012 e windows 8 = melhores juntos
windows server 2012 e windows 8 = melhores juntosFabio Hara
 
17h30 aws-databases-summit
17h30   aws-databases-summit17h30   aws-databases-summit
17h30 aws-databases-summitinfolive
 
CDNs – Introdução
CDNs – IntroduçãoCDNs – Introdução
CDNs – Introduçãoelliando dias
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
 
Ws08 hyper v it pro deck long-brz
Ws08 hyper v it pro deck long-brz Ws08 hyper v it pro deck long-brz
Ws08 hyper v it pro deck long-brz nilsonspa
 
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...iMasters
 
People soft on rac sig.en.pt
People soft on rac sig.en.ptPeople soft on rac sig.en.pt
People soft on rac sig.en.ptsaulfreitas
 
IBTA - Oracle Database Security
IBTA - Oracle Database SecurityIBTA - Oracle Database Security
IBTA - Oracle Database SecurityRodrigo Almeida
 
Valdir Adorni Career
Valdir Adorni CareerValdir Adorni Career
Valdir Adorni CareerValdir Adorni
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 

Mais procurados (18)

Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
 
Windows Server 2012 - O poder de multiplos servidores, a simplicidade de um
Windows Server 2012 - O poder de multiplos servidores, a simplicidade de umWindows Server 2012 - O poder de multiplos servidores, a simplicidade de um
Windows Server 2012 - O poder de multiplos servidores, a simplicidade de um
 
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
windows server 2012 e windows 8 = melhores juntos
windows server 2012 e windows 8 = melhores juntoswindows server 2012 e windows 8 = melhores juntos
windows server 2012 e windows 8 = melhores juntos
 
Dhcp windows 2003
Dhcp windows 2003Dhcp windows 2003
Dhcp windows 2003
 
Consolidação Mic&Mac Soluções em TI
Consolidação Mic&Mac Soluções em TIConsolidação Mic&Mac Soluções em TI
Consolidação Mic&Mac Soluções em TI
 
17h30 aws-databases-summit
17h30   aws-databases-summit17h30   aws-databases-summit
17h30 aws-databases-summit
 
CDNs – Introdução
CDNs – IntroduçãoCDNs – Introdução
CDNs – Introdução
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
 
Bancos de Dados na AWS
Bancos de Dados na AWSBancos de Dados na AWS
Bancos de Dados na AWS
 
Ws08 hyper v it pro deck long-brz
Ws08 hyper v it pro deck long-brz Ws08 hyper v it pro deck long-brz
Ws08 hyper v it pro deck long-brz
 
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
 
IDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaSIDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaS
 
People soft on rac sig.en.pt
People soft on rac sig.en.ptPeople soft on rac sig.en.pt
People soft on rac sig.en.pt
 
IBTA - Oracle Database Security
IBTA - Oracle Database SecurityIBTA - Oracle Database Security
IBTA - Oracle Database Security
 
Valdir Adorni Career
Valdir Adorni CareerValdir Adorni Career
Valdir Adorni Career
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 

Semelhante a Appi303 daibert

Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Lucas A. Romão
 
Conhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSConhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSAmazon Web Services LATAM
 
Infinispan - Distribuição de Dados com Java
Infinispan - Distribuição de Dados com JavaInfinispan - Distribuição de Dados com Java
Infinispan - Distribuição de Dados com JavaWagner Roberto dos Santos
 
TDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory DatagridsTDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory DatagridsWagner Roberto dos Santos
 
Usando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL ServerUsando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL Serverleorsilva
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsHoracio Ibrahim
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureFabrício Lopes Sanchez
 
Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Lucas Silva
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensAlessandro Binhara
 
MySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLMySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLAirton Lastori
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRAmazon Web Services LATAM
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMRodrigo Zaccara
 
Backup+e+archiving+na+nuvem+aws+ +ricardo+geh
Backup+e+archiving+na+nuvem+aws+ +ricardo+gehBackup+e+archiving+na+nuvem+aws+ +ricardo+geh
Backup+e+archiving+na+nuvem+aws+ +ricardo+gehAmazon Web Services LATAM
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL Brasil
 
DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2Rodrigo Almeida
 
Economize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheEconomize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheRodrigo Immaginario
 

Semelhante a Appi303 daibert (20)

Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
 
Conhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSConhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWS
 
Infinispan - Distribuição de Dados com Java
Infinispan - Distribuição de Dados com JavaInfinispan - Distribuição de Dados com Java
Infinispan - Distribuição de Dados com Java
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
TDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory DatagridsTDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory Datagrids
 
Usando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL ServerUsando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL Server
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 
MySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLMySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQL
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMR
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
 
Backup+e+archiving+na+nuvem+aws+ +ricardo+geh
Backup+e+archiving+na+nuvem+aws+ +ricardo+gehBackup+e+archiving+na+nuvem+aws+ +ricardo+geh
Backup+e+archiving+na+nuvem+aws+ +ricardo+geh
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicações
 
DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2
 
Docker.io:
Docker.io: Docker.io:
Docker.io:
 
Economize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheEconomize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCache
 

Appi303 daibert

  • 1.
  • 2. Aplicações de alto desempenho e Cache Distribuído com o Windows Server AppFabric APPI303 @daibert Solutions Architect Hewlett-Packard Brasil
  • 3. Cenário Atual das Aplicações Requisitos • 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
  • 4. Principais Mercados Cenários • Compartilhamento de sessões HTTP através de farms de servidores • Carrinho de compras em ambiente de Farm de Servidores Web Web • Aplicações Online • Armazenamento de dados pré-calculados acessados com frequência • Catálogos de produtos entre empresas LOB • 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 passagens Turismo aéreas Segurança • Processamento de dados de rede e detecção de intrusão • Portifólio de dados de usuários Financeiro • Simulações de carteiras de risco e cenários
  • 5. O que é cache? Uma área de armazenamento temporária onde os dados são armazenados para acesso rápido
  • 6. Cache Local Servidor de Servidor de Aplicação 01 Aplicação 02 • Normalmente utilizando variáveis de Sessão ou Aplicação
  • 7. 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
  • 8. 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
  • 9. Quem deve criar a infraestrutura de cache 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
  • 10. 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
  • 12. Dados de Consulta Dados para consulta Dados agregados ou trasformados Cada versão é única Dados atualizados com frequência Exemplos 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) Cenário: Redes Sociais
  • 13. Dados Transacionais Dados gerados a partir de atividade transacionais nas aplicações Dados Históricos Exemplos Carrinho de compras Session State Aplicações coorporativas B2B Tipo de Acesso Leitura e gravação Acesso exclusivo Escalabilidade Muitos dados e acessos simultâneos Funcionalidades Acesso baseado em chaves Transações Cenário: Aplicações Coorporativas
  • 14. Dados Distribuídos Dados alterados por transações Transações “partidas” Exemplos Inventário de venda de passagens Tipo de Acesso Leitura e gravação Acesso compartilhado aos dados Funcionalidades Acesso baseado em chaves Transações Escalabilidade Grande número de acessos simultâneos Cenário: Inventário de venda de passagens
  • 15. Tipos de Cache Distribuido
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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");
  • 21. Cache Aside Pattern object data = null; var key = "DataKey"; data = cache.Get(key); if (data == null) { data = GetData(); cache.Add(key, data); }
  • 22. Demo
  • 24. Inserir o slide do BUILD sobre o AppFabric 1.1
  • 25. 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…
  • 26. Palestras Relacionadas Resource 1 Resource 2 Resource 3 Resource 4
  • 27. Get the free mobile app for your phone http:/ / gettag.mobi http://technet.microsoft.com/pt-br Get the free mobile app for your phone http:/ / gettag.mobi http://msdn.microsoft.com/pt-br
  • 28. Não esqueça de preencher sua avaliação online www.teched.com.br/avaliacao Get the free mobile app for your phone http:/ / gettag.mobi
  • 29. © 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.