SlideShare a Scribd company logo
1 of 74
Download to read offline
GemFire Enterprise Data Fabric
    Alta Disponibilidade de dados com extrema performance e confiabilidade


    Frederico Melo
    fmelo@vmware.com
    Cloud Application Platform Specialist LATAM
    Outubro 2011




                                                                       © 2009 VMware Inc. All rights reserved

quinta-feira, 27 de outubro de 11
As limitações dos RDBMSs tradicionais...
                                             Típico deployment para aplicações
   Aumento expressivo no
                                                corporativas em ambiente HA
   número de nós na camada de
   aplicação exige que a camada
   de acesso a dados escale na
   mesma proporção.


                       Aumento na
                   demanda de acesso
                    a dados (leitura e
                         escrita)



                   Aumento no número de
                    requisições ao cluster
                     de banco de dados                                          Alta
                                                                         disponibilidade no
                                                                          banco de dados
                                                                            provida por
                                                                              Storage
                                                                           compartlilhado




     72


quinta-feira, 27 de outubro de 11
Escalando com infra-estrutura elástica


                                        Load Balancer
                                                                 Add/remove web servers



                   Web Tier

   Stateless


                Application Tier


                                                              Add/remove application servers



                 Database Tier




                                                        Move to bigger machine
    Stateful




                 Storage Tier


                                                    Add/reconfigure storage




quinta-feira, 27 de outubro de 11
Escalando com infra-estrutura elástica


                                        Load Balancer
                                                                   Add/remove web servers



                   Web Tier

   Stateless


                Application Tier


                                                                Add/remove application servers



                 Database Tier




                                                          Move to bigger machine
    Stateful




                 Storage Tier


                                                        Add/reconfigure storage




quinta-feira, 27 de outubro de 11
Escalando com infra-estrutura elástica


                                        Load Balancer




                   Web Tier
   Stateless
                Application Tier




                 Database Tier




                                                          Move to bigger machine
    Stateful




                 Storage Tier


                                                        Add/reconfigure storage




quinta-feira, 27 de outubro de 11
Escalando com infra-estrutura elástica
        As camadas Web de de Aplicação
        podem ser facilmente separadas e
        consolidadas. Servidores podem ser
                                               Load Balancer
        adicionados ou removidos segundo                                   Add/remove web/application
        demanda - on the fly.                                                      servers




                   Web Tier
                Application Tier




                                                                   Como escalar
                                                                 horizontalmente de
                                                                  forma linear???
         A base de dados somente “cresce”       Database Tier
         movendo a máquina (física ou
         virtual) para um servidor com maior
                                                                 Move to bigger machine
         capacidade


       Os discos podem ser                                       Storage Tier

       virtualizados e crescer sobre
       demanda                                                 Add/reconfigure storage




quinta-feira, 27 de outubro de 11
Porém...
              ... I/O se torna o gargalo




     6


quinta-feira, 27 de outubro de 11
Porém...
               ... I/O se torna o gargalo




          ~ 3.000.000 x mais         Bancos de Dados podem
                lento!!!            até fazer caching de dados
                                         para leitura, mas...

                                                                   Alterações de dados
                                                                        demandam
                                                                 necessariamente acesso
                                                                        síncrono ao
                                                                 armazenamento rígido e
                                                                    locking distribuído



     77


quinta-feira, 27 de outubro de 11
Geo-replicação
                                    Replicação entre data centers




                 Site principal                                     Site backup




                                              Replicação de
                                            banco (Data Guard)




                                                replicação
                                                de storage


     8


quinta-feira, 27 de outubro de 11
Sua aplicação está preparada para ambiente Cloud?




                     “     The big glaring hole [with cloud]
                                  is data handling.
                                                           ”   -Adrian Kunzle, MD
                              Head of Engineering & Architecture, JPMorgan Chase




    File Systems Databases           Other Systems

     9


quinta-feira, 27 de outubro de 11
Virtualizando também dados


                                    Load Balancer




                   Web Tier
                Application Tier




                 Database Tier




                 Storage Tier




quinta-feira, 27 de outubro de 11
Virtualizando também dados


                                    Load Balancer




                   Web Tier
                Application Tier




                 Database Tier




                 Storage Tier




quinta-feira, 27 de outubro de 11
Virtualizando também dados


                                    Load Balancer




                   Web Tier
                Application Tier




                 Database Tier




                 Storage Tier




quinta-feira, 27 de outubro de 11
Movendo dados para o Data Fabric


                                       Load Balancer




                   Web Tier
                Application Tier




                 Database Tier




                 Storage Tier




quinta-feira, 27 de outubro de 11
Movendo dados para o Data Fabric


                                       Load Balancer




                   Web Tier
                Application Tier




                 Storage Tier




quinta-feira, 27 de outubro de 11
Movendo dados para o Data Fabric


                                                          Load Balancer
                                                                          Add/remove web/application/data
                                                                                     servers




                   Web Tier
                Application Tier




                 Storage Tier




                                                                               Add/remove storage
                                    Disks may be direct or network
                                               attached




quinta-feira, 27 de outubro de 11
Movendo dados para o Data Fabric


                                                               Load Balancer
                                                                               Add/remove web/application/data
                                                                                          servers




                    Web Tier
                 Application Tier




                  Storage Tier




                                                                                    Add/remove storage
                                         Disks may be direct or network
                                                    attached




  Optional reliable, asynchronous feed
    to Data Warehouse or Archival
                Database




quinta-feira, 27 de outubro de 11
Movendo dados para o Data Fabric


    In-Memory Distributed Fabric                            Dados em memoria podem ser
                                                            assincronamente persistidos /
                                                              lidos de armazenamento
                                                                     persistente
                                    Clustered Application
                                     Data   Data   Data




          Particionamento,
      distribuição e replicação
       de dados em memória

           –   Suporte para múltiplas linguagens / plataformas (Java, .NET, C, C++)
           –   Segurança de base de dados integrada
           –   Pode trabalhar desde como um simples cache distribuído (integrado ao
               Hibernate e.g.) até completo Data Fabric.
           –   Execução de requisições distribuídas (Function Execution Framework)
           –   Map-Reduce
           –   Partitioned in-memory caching
           –   Replicação para distribuição geográfica / WAN




quinta-feira, 27 de outubro de 11
Movendo dados para o Data Fabric


    In-Memory Distributed Fabric                            Dados em memoria podem ser
                                                            assincronamente persistidos /
                                                              lidos de armazenamento
                                                                     persistente
                                    Clustered Application
                                     Data   Data   Data




          Particionamento,
      distribuição e replicação
       de dados em memória

           –   Suporte para múltiplas linguagens / plataformas (Java, .NET, C, C++)
           –   Segurança de base de dados integrada
           –   Pode trabalhar desde como um simples cache distribuído (integrado ao
               Hibernate e.g.) até completo Data Fabric.
           –   Execução de requisições distribuídas (Function Execution Framework)
           –   Map-Reduce
           –   Partitioned in-memory caching
           –   Replicação para distribuição geográfica / WAN




quinta-feira, 27 de outubro de 11
HA, particionamento e replicação de dados


                                                              LOCATOR




 Transações                    Servidor 1       Servidor 2   Servidor 3   Servidor 4   Servidor 5
  OLTP em
  memória



   Overflow automático
     para disco caso
       necessário


                                  Escrita síncrona
                                   ou assíncrona
                                    em disco (DB
                                       OLAP)


            Nó principal da área de memória

                                                             OLAP DB

     13


quinta-feira, 27 de outubro de 11
HA, particionamento e replicação de dados


                                                              LOCATOR




 Transações                    Servidor 1       Servidor 2   Servidor 3   Servidor 4   Servidor 5
  OLTP em
  memória



   Overflow automático
     para disco caso
       necessário


                                  Escrita síncrona
                                   ou assíncrona
                                    em disco (DB
                                       OLAP)


            Nó principal da área de memória

                                                             OLAP DB

     13


quinta-feira, 27 de outubro de 11
Atingindo escalabilidade e elasticidade extremas



                                                                   Principais Casos de Uso
                                                               § Web Session Cache, L2 Cache
                                                               • Gestão de objetos stateful em ambiente
                                                                 distribuído

                                                               § App Data Cache, In-memory DB
                                                               • Banco de dados OLTP baseado em
                     Os dados de                                 objetos de extrema alta performance
                      aplicações
                                                               § Grid Data Fabric: Client Compute
                     “vivem” aqui
                                                               • Data grid compartilhado acessado por
                                                                 clientes executando lógica de aplicação

                                                               § Grid Data Fabric: Fabric Compute
                                                               • Data grid compartilhado onde a lógica de
 Os dados de                                                     aplicação é distribuída na núvem e
                                                                 executada no próprio grid
  aplicação
“dormem” aqui
                        File Systems   Databases   Mainframes / outros

     14


quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?




                   Servidor 1       Servidor 2   Servidor 3   Servidor 4   Servidor 5




quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?
     Suporte para múltiplas
    linguagens / plataformas
        simultaneamente




                   Servidor 1       Servidor 2   Servidor 3   Servidor 4   Servidor 5




quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?
     Suporte para múltiplas
    linguagens / plataformas
        simultaneamente

 Suporte a versionamento de
           objetos
                   Servidor 1       Servidor 2   Servidor 3   Servidor 4   Servidor 5




quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?
     Suporte para múltiplas
    linguagens / plataformas
        simultaneamente

 Suporte a versionamento de
           objetos
                   Servidor 1       Servidor 2   Servidor 3   Servidor 4   Servidor 5




         Escrita síncrona ou
      assíncrona para banco de
                dados




quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?
     Suporte para múltiplas
    linguagens / plataformas
        simultaneamente

 Suporte a versionamento de
           objetos
                   Servidor 1       Servidor 2   Servidor 3   Servidor 4   Servidor 5




                                                                           Cache Loader
         Escrita síncrona ou
      assíncrona para banco de
                dados




quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?
     Suporte para múltiplas                      Queries Contínuas
    linguagens / plataformas
        simultaneamente

 Suporte a versionamento de
           objetos
                   Servidor 1       Servidor 2        Servidor 3     Servidor 4   Servidor 5




                                                                                  Cache Loader
         Escrita síncrona ou
      assíncrona para banco de
                dados




quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?
     Suporte para múltiplas                      Queries Contínuas
    linguagens / plataformas
        simultaneamente

 Suporte a versionamento de
           objetos
                   Servidor 1       Servidor 2        Servidor 3     Servidor 4   Servidor 5




                                                                                  Cache Loader
         Escrita síncrona ou
      assíncrona para banco de
                dados




quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?
     Suporte para múltiplas                      Queries Contínuas
    linguagens / plataformas
        simultaneamente

 Suporte a versionamento de
           objetos
                   Servidor 1       Servidor 2        Servidor 3     Servidor 4       Servidor 5




                                                                                      Cache Loader
         Escrita síncrona ou
      assíncrona para banco de
                dados                                                             Execução distribuída de
                                                                                   funções e map-reduce




quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?
     Suporte para múltiplas                      Queries Contínuas
    linguagens / plataformas
        simultaneamente

 Suporte a versionamento de
           objetos
                   Servidor 1       Servidor 2        Servidor 3     Servidor 4       Servidor 5




                                                                                      Cache Loader
         Escrita síncrona ou
      assíncrona para banco de
                dados                                                             Execução distribuída de
                                                                                   funções e map-reduce




quinta-feira, 27 de outubro de 11
Como GemFire se compara aos concorrentes?
     Suporte para múltiplas                      Queries Contínuas
    linguagens / plataformas
        simultaneamente

 Suporte a versionamento de                                                             Replicação em WAN
           objetos
                   Servidor 1       Servidor 2        Servidor 3     Servidor 4       Servidor 5




                                                                                      Cache Loader
         Escrita síncrona ou
      assíncrona para banco de
                dados                                                             Execução distribuída de
                                                                                   funções e map-reduce




quinta-feira, 27 de outubro de 11
Performance baseada em acesso a memória

                                    GemFire usa memória em cluster de máquinas para transacionar
        Perform                     atualizações de dados, permitindo atualizações 10x a 200x mais
                                    rápidas que atualizações serializadas em disco (BD tradicional), sem
                                    qualquer risco adicional de perda de dados.
                                    Tempos típicos de latência são de geralmente de ~100-400
                                    microsegundos, ao invés de ~5-200 milisegundos.




              GemFire pode ainda opcionalmente escrever em disco / banco de dados
              tradicional de modo síncrono ou assíncrono.
              Essa funcionalidade é geralmente utilizada para manter registro das
              transações e dados para OLAP.




quinta-feira, 27 de outubro de 11
Distribuição de Dados


        Distribute




   GemFire pode manter clusters locais e geograficamente distribuídos sincronizados em
   tempo real e operar de forma confiável em ambientes fracamente conectados,
   intermitentes e com banda de rede limitada.




quinta-feira, 27 de outubro de 11
Arquitetura Orientada a Eventos distribuídos


        Notify


                                                 Notificação com entrega garantida
                                                  de eventos de atualização de dados
                                                  ocorridos em qualquer dos nós.
                                                 Queries Contínuas - migração do
                                                  modelo polling para orientação a
                                                  eventos.




quinta-feira, 27 de outubro de 11
Consultas Paralelas


        Compute                                      Controlador batch
                                                    ou aplicação cliente



                                    Scatter-Gather (Map-Reduce)
                                              Queries




quinta-feira, 27 de outubro de 11
Consultas Paralelas


        Compute                                      Controlador batch
                                                    ou aplicação cliente



                                    Scatter-Gather (Map-Reduce)
                                              Queries




quinta-feira, 27 de outubro de 11
Roteamento inteligente de funções de dados

                                        Data Aware Function

        Execute                                                                 Batch Controller or
                                                                                      Client




                Movendo a funcionalidade para os dados corretos ao invés de mover os
                                    dados para a funcionalidade




quinta-feira, 27 de outubro de 11
Cloud Ready
                    Pronto para o deployment em ambiente de Cloud - escalável verticalmente e
                                               horizontalmente.
                                                                                  Adicione ou remova nós Web, de
                                                                  Load Balancer      Aplicação ou de gestão de
                                                                                   dados sob demanda on-the-fly




                  Web Tier

            Application Tier




                                                                                        Adicione e remova
                                            Discos para overflow (swap) se
                                                                                    armazenamento persistente
                                                     necessário
                                                                                   segundo demanda on-the-fly.


  Gravação síncrona ou assíncrona
   opcional para armazenamento
             persistente




quinta-feira, 27 de outubro de 11
•    Semântica de Banco de Dados OO
 –    OQL (Object Query Language)

      SELECT * FROM /root/trades t WHERE t.price < 100

 –    Continuous Queries
                                                  Escalabilidade Linear
 –    Indexes

 –    Transactions
 –    Local
 –    Distributed
 –    Co-located




     22


quinta-feira, 27 de outubro de 11
SQLFire: GemFire em
                              paradigma relacional / SQL




     23


quinta-feira, 27 de outubro de 11
SQLFire
                         Mesmos benefícios do GemFire com paradigma relacional e
                                               interface SQL

             Se comporta como um banco de dados SQL padrão, porém se utiliza do GemFire para
                              replicar, particionar e distribuir dados na núvem.




     24


quinta-feira, 27 de outubro de 11
Criação de tabelas


                                    Criação de tabela tradicional




                                    Criação de tabela replicada




     25


quinta-feira, 27 de outubro de 11
Particionamento e Redundância


                                          Criação de tabela particionada




                                    Criação de tabela particionada e redundante




     26


quinta-feira, 27 de outubro de 11
Particionamento e Redundância

                                    Afinal de contas, por quê particionar dados?




     27


quinta-feira, 27 de outubro de 11
Co-locação com dados relacionados


             Indica ao SQLFire/GemFire armazenar dados relacionados nos mesmos servidores, de
                      modo a obter máxima performance em consultas relacionadas (joins)




     28


quinta-feira, 27 de outubro de 11
Persistência (síncrona ou assíncrona)


            Indica ao SQLFire/GemFire persistir os dados em armazenamento persistente de modo
             síncrono ou assíncrono - para redundância adicional ou para alimentar reports / base
                                                    OLAP.




     29


quinta-feira, 27 de outubro de 11
Casos de sucesso



                                      Alguns exemplos da tecnologia Gemfire
                                             aplicada em casos reais




quinta-feira, 27 de outubro de 11
Global Foreign Exchange

                                Caso Real: Sistema de negociação global de moedas


     O projeto atingiu e permitiu:

     Ø Negociação de milhares de ativos em extrema
        baixa latência
     Ø Autonomia regional (America, Asia, Europa)
     Ø Garantia transacional e de persistência de
        cada negócio efetuado
     Ø Atualização em tempo real dos dados de
        mercado
     Ø Cálculo imediato da posição global em tempo
        real - baseado em eventos
     Ø Distribuição de todas as atualizações
        globalmente em tempo real
     Ø Alta disponibilidade (99,99%)
     Ø Disaster Recovery



quinta-feira, 27 de outubro de 11
Global Foreign Exchange

                                Caso Real: Sistema de negociação global de moedas




                                         O projeto permitiu substituir ou eliminar:

                                           Vários Oracle Database em cada região
                                        (é mantida apenas 1 instancia para arquivamento)
                                           TIBCO Rendezvous para mensageria local
                                           IBM MQ Series para mensageria em WAN
                                           Veritas N+1 Clustering para H/A
                                           3 DNS ou Wide IP
                                           Custos de administração em 66%




quinta-feira, 27 de outubro de 11
Web Portal

                                      Caso real: Web 2.0 Portal – ads customizados

       Um site extremamente pupular que atrai novos clientes baseados em banners
                                                Banner customizado em site de parceiro
                                                   Em alguns milisegundos, o servidor de banners deve:
                                                     Gerar um ID específico para a requisição
                                                     Aplicar dezenas de regras relacionadas à região,
                                                     contrato, IP de origem e características do cliente
                                                     Decidir qual banner aplicar e customizá-lo a partir
                                                     das regras
                                                     Armazenar (transacionar) o banner exibido

                        4
                                                            2
                               3
                  1                                                           Banner Ad Server




             Web Server do parceiro




quinta-feira, 27 de outubro de 11
Web Portal

                                      Caso real: Web 2.0 Portal – ads customizados

       Um site extremamente pupular que atrai novos clientes baseados em banners
                                                  Respostas com latência inferior a 1ms
                                                  Atingiu o target de 2500 banners entregues por
                                                  segundo
                                                  Provou-se escalável linearmente
                                                  Melhorou a performance da solução antiga baseada
                                                  em banco de dados popular em 4x
                                                  Custou menos que a solução antiga

                        4
                                                            2
                               3
                  1                                                          Banner Ad Server




             Web Server do parceiro




quinta-feira, 27 de outubro de 11
Migração de batches do Mainframe

                                      Caso real: Batch noturno em mainframe

                     Caso de execução noturna de batch de re-conciliação de contas

                             0                             60                               120
                       min

                                                        CPU Unavailable          CPU Busy         I/O Wait
                                                            76%                    15%              9%




   Mainframe                                           120 minutos



                                      Batch agora executa em 60 segundos
   COTS Cluster


                                    93% Network Wait! Tempo poderia ainda ser muito reduzido com maior banda de rede!




quinta-feira, 27 de outubro de 11
Migração de batches do Mainframe

                                     Caso real: Batch noturno em mainframe

                                Benefícios atingidos:
                                1. Economia de recursos, plataforma moderna e escalável
                                2. Quando algo de errado ocorre no batch, é possível se
                                   descobrir em apenas 60 segundos
                                3. Agora o hardware e dados estão disponíveis os outros 119
                                   minutos para:
                                •   Fraud detection
                                •   Compliance regulatório
                                •   Re-calcular o risco em outros 119 cenários
                                •   Atividades ligadas ao negócio

                                •   Aumentando a banda de rede, pode-se obter o cálculo em
                                    tempo real!




quinta-feira, 27 de outubro de 11
Monitoramento e posicionamento de ativos militares - EUA

                                    Caso real: DISA / DOD Global Command and Control


                               655 sites, 11 mil usuários
                               Real-time, tri-dimensional, NASA World Wind User Interface
                               60,000 atualizações per minute
                               Usuários
                                      President of the United States
                                      US Secretary of Defense
                                      Todos os chefes de comando
                                      Todos os comandantes do exército



                           Sendo avaliado para utilização por todos os aliados dos EUA




quinta-feira, 27 de outubro de 11
Monitoramento e posicionamento de ativos militares - EUA

                                    Caso real: DISA / DOD Global Command and Control

           Armazenamento centralizado de dados impossível
           Integração de várias agências e divisões
           Muitas aplicações lendo e escrevendo simultaneamente os dados
           Redes mudando constantemente, não-confiáveis, móveis, lentas
           Até 60 mil atualizações de objetos por minuto (picos de 20 mil por
           segundo)
           Até 70 pontos de atualização de dados diferentes.

      Necessidade de um sistema real-time para rastrear pontos e alvos amigos e inimigos e que possa
                   ser usado e compartilhado por todos envolvidos no cenário de guerra.
    Northrop Grumman (integrador) avaliou as seguintes tecnologias - e escolheu o GemFire:
           •RDBMS – Oracle, Sybase, Postgres, TimesTen, MySQL
           •ODBMS - Objectivity
           •jCache – GemFire, Oracle Coherence
           •JMS – SonicMQ, BEA Weblogic, IBM, JBoss MQ
           •TIBCO Rendezvous
           •Web Services, Rest




quinta-feira, 27 de outubro de 11
VMware Cloud Application Platform



                                    Modern Frameworks and Tools

                    ü Developer Productivity and Application Portability


                               Lean, Cloud-scale Application Services

                    ü Optimized Runtime and Accelerated Deployment



                                           Virtual Datacenter
                                     Cloud Infrastructure and Management




     39


quinta-feira, 27 de outubro de 11
VMware Cloud Application Platform



                                    Modern Frameworks and Tools
                                                                           …
                    ü Developer Productivity and Application Portability
                             Developer Frameworks and Tools

                               Lean, Cloud-scale Application Services
                                                       vFabric
                    ü Optimized Runtime and Accelerated Deployment
                                   Application Services


                                           Virtual Datacenter
                                     Cloud Infrastructure and Management




     39


quinta-feira, 27 de outubro de 11
VMware Cloud Application Platform




          Programming    Rich       Social and
             Model       Web         Mobile




                                                 Virtual Datacenter
                                           Cloud Infrastructure and Management




     40

quinta-feira, 27 de outubro de 11
VMware Cloud Application Platform




          Programming    Rich       Social and    Data    Integration     Batch
             Model       Web         Mobile      Access    Patterns     Framework




                                                 Virtual Datacenter
                                           Cloud Infrastructure and Management




     40

quinta-feira, 27 de outubro de 11
VMware Cloud Application Platform




          Programming    Rich       Social and    Data    Integration     Batch      Spring      WaveMaker Code2Cloud
             Model       Web         Mobile      Access    Patterns     Framework   Tool Suite              Services




                                                 Virtual Datacenter
                                           Cloud Infrastructure and Management




     40

quinta-feira, 27 de outubro de 11
VMware Cloud Application Platform




          Programming       Rich    Social and    Data    Integration     Batch      Spring      WaveMaker Code2Cloud
             Model          Web      Mobile      Access    Patterns     Framework   Tool Suite              Services




            Java Runtime       Web Runtime
             (tc Server)         (ERS)




                Java
            Optimizations                        Virtual Datacenter
             (EM4J, …)
                                           Cloud Infrastructure and Management




     40

quinta-feira, 27 de outubro de 11
VMware Cloud Application Platform




          Programming       Rich    Social and    Data    Integration     Batch      Spring      WaveMaker Code2Cloud
             Model          Web      Mobile      Access    Patterns     Framework   Tool Suite              Services




            Java Runtime       Web Runtime        Messaging        Global Data
             (tc Server)         (ERS)            (RabbitMQ)       (GemFire)




                Java
            Optimizations                        Virtual Datacenter
             (EM4J, …)
                                           Cloud Infrastructure and Management




     40

quinta-feira, 27 de outubro de 11
VMware Cloud Application Platform




          Programming       Rich    Social and    Data     Integration      Batch      Spring       WaveMaker Code2Cloud
             Model          Web      Mobile      Access     Patterns      Framework   Tool Suite               Services




            Java Runtime       Web Runtime        Messaging         Global Data       App Monitoring     Performance Mgmt
             (tc Server)         (ERS)            (RabbitMQ)        (GemFire)         (Spring Insight)        (Hyperic)




                                                          Data Director
                Java                                                                                        Automated
            Optimizations                        Virtual Datacenter                                       App Provisioning
             (EM4J, …)                                                                                     (AppDirector)
                                           Cloud Infrastructure and Management




     40

quinta-feira, 27 de outubro de 11
Application Infrastructure for the Cloud Generation

                               VMware vFabric Cloud Application Platform




         Frameworks & Tools         Rich Web     Integration     Batch     Data Access    Social/Cloud    Tool Suite




          vFabric                     Elastic
                                                 Global Data     Cloud     Dynamic Load   Performance    Policy-driven
                                     tc Server
                                    App Server    GemFire
                                                 Management    RabbitMQ
                                                               Messaging   ERS (Apache)
                                                                             Balancer       Hyperic
                                                                                          Management     App Director*
                                                                                                          Automation
         Platform Services




                                                 Virtual Datacenter
                                          Cloud Infrastructure and Management


    41

quinta-feira, 27 de outubro de 11
FAQ:
                           § É possível mesmo garantir HA com dados somente em memória?
                           • Sim! O particionamento e replicação de dados em memória garante a alta
                               disponibilidade em índices iguais aos de armazenamentos físicos (disco).
                           § Ok, mas mesmo assim posso fazer armazenamento síncrono em banco de
                               dados?
                           • Certamente. Escrita síncrona ou assíncrona em banco de dados ou disco rígido.
                           § Os servidores precisam ter RAM suficiente para todos os dados do banco?
                           • Não. Basicamente o seu modelo de dados pode/deve ser particionado entre vários
                               servidores e a memória total seria a soma da memória de todos eles! Mesmo
                               assim, caso necessário, o GemFire escreve o “excesso” de dados em disco
                               (overflow) e recupera quando necessário, mesmo assim provendo performance
                               muito superior aos DBs tradicionais.
                           § Posso começar com um ambiente menor e ir escalando segundo demanda?
                           • Sem dúvida. Tanto o software quanto o modelo de licensiamento são escaláveis
                               segundo o ambiente e modo de utilização. O GemFire pode ser adotado como um
                               simples Cache de dados ou um completo Data Fabric.
                           § GemFire = SqlFire?
                           • São produtos diferentes. Porém, o SQLFire possui o GemFire em seu core,
                               oferecendo uma interface relacional (SQL) porém sem arquitetura orientada a
                               eventos.


     42


quinta-feira, 27 de outubro de 11
Leitura Recomendada


                    Architecting Infinitely Scalable Systems
        A seminal paper on the architecture of elastic applications was written by Pat
         Helland (Tandem Computing, Amazon.com, Microsoft)


   “Life Beyond Distributed Transactions: an Apostate’s Opinion”
         http://www.cidrdb.org/cidr2007/papers/cidr07p15.pdf




                                                      http://blogs.msdn.com/b/pathelland/



      This paper describes how our application architectures need to change in order to
       achieve infinite scalability and elasticity without using large hardware




quinta-feira, 27 de outubro de 11
Start small, Grow without Limit

                                         Planning for scalability
                                         in cloud environments




quinta-feira, 27 de outubro de 11
Frederico Melo
    fmelo@vmware.com
    twitter: fredmelo_br

     45


quinta-feira, 27 de outubro de 11
Use ESX to Share Memory Between VMs Running Java
                                    Elastic Memory for Java (EM4J)

               Description                                         Benefits
     • Use virtualization to             • Higher server consolidation through memory over-commit
       overcome the limitation             for Java workloads
       of Java’s static heap
                                         • Protect Java applications against workload spikes without
     • New ‘memory balloon’                wasting memory
       runs inside JVM to
       capture unused memory
       and return it to ESX

     • Memory returned to JVM
       when it is under pressure




quinta-feira, 27 de outubro de 11
Aumentando a escalabilidade com topologia Client




quinta-feira, 27 de outubro de 11
Aumentando a escalabilidade com topologia Client




                             Disk




quinta-feira, 27 de outubro de 11
Aumentando a escalabilidade com topologia Client




                             Disk




quinta-feira, 27 de outubro de 11
Aumentando a escalabilidade com topologia Client




                             Disk   Disk         Disk




quinta-feira, 27 de outubro de 11

More Related Content

What's hot

What's hot (6)

Evento CA ArcServe D2D on Demand
Evento CA ArcServe D2D on DemandEvento CA ArcServe D2D on Demand
Evento CA ArcServe D2D on Demand
 
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
 
33333907 tcc-virtualizacao-xen-neto
33333907 tcc-virtualizacao-xen-neto33333907 tcc-virtualizacao-xen-neto
33333907 tcc-virtualizacao-xen-neto
 
Aula01
Aula01Aula01
Aula01
 
Maximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServerMaximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServer
 
2016 dell-networking
2016 dell-networking2016 dell-networking
2016 dell-networking
 

Viewers also liked

Building Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache GeodeBuilding Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache Geodeimcpune
 
Big and Fast Data - Building Infinitely Scalable Systems
Big and Fast Data - Building Infinitely Scalable SystemsBig and Fast Data - Building Infinitely Scalable Systems
Big and Fast Data - Building Infinitely Scalable SystemsFred Melo
 
Architecting for cloud native data: Data Microservices done right using Sprin...
Architecting for cloud native data: Data Microservices done right using Sprin...Architecting for cloud native data: Data Microservices done right using Sprin...
Architecting for cloud native data: Data Microservices done right using Sprin...Fred Melo
 
A Stock Prediction System using Open-Source Software
A Stock Prediction System using Open-Source SoftwareA Stock Prediction System using Open-Source Software
A Stock Prediction System using Open-Source SoftwareFred Melo
 
DevOps, CD and [Data] Microservices
DevOps, CD and [Data] MicroservicesDevOps, CD and [Data] Microservices
DevOps, CD and [Data] MicroservicesFred Melo
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data GridDmitry Buzdin
 

Viewers also liked (7)

Building Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache GeodeBuilding Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache Geode
 
Big and Fast Data - Building Infinitely Scalable Systems
Big and Fast Data - Building Infinitely Scalable SystemsBig and Fast Data - Building Infinitely Scalable Systems
Big and Fast Data - Building Infinitely Scalable Systems
 
Architecting for cloud native data: Data Microservices done right using Sprin...
Architecting for cloud native data: Data Microservices done right using Sprin...Architecting for cloud native data: Data Microservices done right using Sprin...
Architecting for cloud native data: Data Microservices done right using Sprin...
 
A Stock Prediction System using Open-Source Software
A Stock Prediction System using Open-Source SoftwareA Stock Prediction System using Open-Source Software
A Stock Prediction System using Open-Source Software
 
DevOps, CD and [Data] Microservices
DevOps, CD and [Data] MicroservicesDevOps, CD and [Data] Microservices
DevOps, CD and [Data] Microservices
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data Grid
 
Geode on Docker
Geode on DockerGeode on Docker
Geode on Docker
 

Similar to GemFire Data Fabric: Extrema performance e throughput transacional com alta disponibilidade

Workshop SQL Server 2012
Workshop SQL Server 2012Workshop SQL Server 2012
Workshop SQL Server 2012Viviane_ribeiro
 
Hands on - Web apps com Amazon EC2 e RDS para ambientes Windows
Hands on - Web apps com Amazon EC2 e RDS para ambientes WindowsHands on - Web apps com Amazon EC2 e RDS para ambientes Windows
Hands on - Web apps com Amazon EC2 e RDS para ambientes WindowsAmazon Web Services LATAM
 
Oracle Real Application Clusters
Oracle Real Application ClustersOracle Real Application Clusters
Oracle Real Application Clusters4Partner
 
Introdução ao AWS Elastic Beanstalk - Webinar
Introdução ao AWS Elastic Beanstalk - WebinarIntrodução ao AWS Elastic Beanstalk - Webinar
Introdução ao AWS Elastic Beanstalk - WebinarAmazon Web Services LATAM
 
Windows Server 2012 - Além da virtualização
Windows Server 2012 - Além da virtualizaçãoWindows Server 2012 - Além da virtualização
Windows Server 2012 - Além da virtualizaçãoFabio Hara
 
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Ricardo Ferreira
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambMicrosoft Brasil
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambguest34ed8ec
 
Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2
Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2
Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2Amazon Web Services LATAM
 
Migrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure DatabaseMigrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure DatabaseRoberto Fonseca
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaAdriel Viana
 
Virtualização e consolidação de servidores
Virtualização e consolidação de servidoresVirtualização e consolidação de servidores
Virtualização e consolidação de servidoresRuy Mendonça
 
Por que computação em nuvem?
Por que computação em nuvem?Por que computação em nuvem?
Por que computação em nuvem?Dervanil Junior
 
Introduction to the citrix xenserver
Introduction to the citrix xenserverIntroduction to the citrix xenserver
Introduction to the citrix xenserverLorscheider Santiago
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 

Similar to GemFire Data Fabric: Extrema performance e throughput transacional com alta disponibilidade (20)

Workshop SQL Server 2012
Workshop SQL Server 2012Workshop SQL Server 2012
Workshop SQL Server 2012
 
Hands on - Web apps com Amazon EC2 e RDS para ambientes Windows
Hands on - Web apps com Amazon EC2 e RDS para ambientes WindowsHands on - Web apps com Amazon EC2 e RDS para ambientes Windows
Hands on - Web apps com Amazon EC2 e RDS para ambientes Windows
 
NoSQL: Perdas e Ganhos
NoSQL: Perdas e GanhosNoSQL: Perdas e Ganhos
NoSQL: Perdas e Ganhos
 
Oracle Real Application Clusters
Oracle Real Application ClustersOracle Real Application Clusters
Oracle Real Application Clusters
 
Introdução ao AWS Elastic Beanstalk - Webinar
Introdução ao AWS Elastic Beanstalk - WebinarIntrodução ao AWS Elastic Beanstalk - Webinar
Introdução ao AWS Elastic Beanstalk - Webinar
 
Windows Server 2012 - Além da virtualização
Windows Server 2012 - Além da virtualizaçãoWindows Server 2012 - Além da virtualização
Windows Server 2012 - Além da virtualização
 
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
 
Pres clusterpdf
Pres clusterpdfPres clusterpdf
Pres clusterpdf
 
Windows 7 visão geral
Windows 7   visão geralWindows 7   visão geral
Windows 7 visão geral
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcamb
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcamb
 
Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2
Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2
Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2
 
Migrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure DatabaseMigrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure Database
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web Java
 
Virtualização e consolidação de servidores
Virtualização e consolidação de servidoresVirtualização e consolidação de servidores
Virtualização e consolidação de servidores
 
Por que computação em nuvem?
Por que computação em nuvem?Por que computação em nuvem?
Por que computação em nuvem?
 
Construindo um data lake na nuvem aws
Construindo um data lake na nuvem awsConstruindo um data lake na nuvem aws
Construindo um data lake na nuvem aws
 
Introduction to the citrix xenserver
Introduction to the citrix xenserverIntroduction to the citrix xenserver
Introduction to the citrix xenserver
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 

GemFire Data Fabric: Extrema performance e throughput transacional com alta disponibilidade

  • 1. GemFire Enterprise Data Fabric Alta Disponibilidade de dados com extrema performance e confiabilidade Frederico Melo fmelo@vmware.com Cloud Application Platform Specialist LATAM Outubro 2011 © 2009 VMware Inc. All rights reserved quinta-feira, 27 de outubro de 11
  • 2. As limitações dos RDBMSs tradicionais... Típico deployment para aplicações Aumento expressivo no corporativas em ambiente HA número de nós na camada de aplicação exige que a camada de acesso a dados escale na mesma proporção. Aumento na demanda de acesso a dados (leitura e escrita) Aumento no número de requisições ao cluster de banco de dados Alta disponibilidade no banco de dados provida por Storage compartlilhado 72 quinta-feira, 27 de outubro de 11
  • 3. Escalando com infra-estrutura elástica Load Balancer Add/remove web servers Web Tier Stateless Application Tier Add/remove application servers Database Tier Move to bigger machine Stateful Storage Tier Add/reconfigure storage quinta-feira, 27 de outubro de 11
  • 4. Escalando com infra-estrutura elástica Load Balancer Add/remove web servers Web Tier Stateless Application Tier Add/remove application servers Database Tier Move to bigger machine Stateful Storage Tier Add/reconfigure storage quinta-feira, 27 de outubro de 11
  • 5. Escalando com infra-estrutura elástica Load Balancer Web Tier Stateless Application Tier Database Tier Move to bigger machine Stateful Storage Tier Add/reconfigure storage quinta-feira, 27 de outubro de 11
  • 6. Escalando com infra-estrutura elástica As camadas Web de de Aplicação podem ser facilmente separadas e consolidadas. Servidores podem ser Load Balancer adicionados ou removidos segundo Add/remove web/application demanda - on the fly. servers Web Tier Application Tier Como escalar horizontalmente de forma linear??? A base de dados somente “cresce” Database Tier movendo a máquina (física ou virtual) para um servidor com maior Move to bigger machine capacidade Os discos podem ser Storage Tier virtualizados e crescer sobre demanda Add/reconfigure storage quinta-feira, 27 de outubro de 11
  • 7. Porém... ... I/O se torna o gargalo 6 quinta-feira, 27 de outubro de 11
  • 8. Porém... ... I/O se torna o gargalo ~ 3.000.000 x mais Bancos de Dados podem lento!!! até fazer caching de dados para leitura, mas... Alterações de dados demandam necessariamente acesso síncrono ao armazenamento rígido e locking distribuído 77 quinta-feira, 27 de outubro de 11
  • 9. Geo-replicação Replicação entre data centers Site principal Site backup Replicação de banco (Data Guard) replicação de storage 8 quinta-feira, 27 de outubro de 11
  • 10. Sua aplicação está preparada para ambiente Cloud? “ The big glaring hole [with cloud] is data handling. ” -Adrian Kunzle, MD Head of Engineering & Architecture, JPMorgan Chase File Systems Databases Other Systems 9 quinta-feira, 27 de outubro de 11
  • 11. Virtualizando também dados Load Balancer Web Tier Application Tier Database Tier Storage Tier quinta-feira, 27 de outubro de 11
  • 12. Virtualizando também dados Load Balancer Web Tier Application Tier Database Tier Storage Tier quinta-feira, 27 de outubro de 11
  • 13. Virtualizando também dados Load Balancer Web Tier Application Tier Database Tier Storage Tier quinta-feira, 27 de outubro de 11
  • 14. Movendo dados para o Data Fabric Load Balancer Web Tier Application Tier Database Tier Storage Tier quinta-feira, 27 de outubro de 11
  • 15. Movendo dados para o Data Fabric Load Balancer Web Tier Application Tier Storage Tier quinta-feira, 27 de outubro de 11
  • 16. Movendo dados para o Data Fabric Load Balancer Add/remove web/application/data servers Web Tier Application Tier Storage Tier Add/remove storage Disks may be direct or network attached quinta-feira, 27 de outubro de 11
  • 17. Movendo dados para o Data Fabric Load Balancer Add/remove web/application/data servers Web Tier Application Tier Storage Tier Add/remove storage Disks may be direct or network attached Optional reliable, asynchronous feed to Data Warehouse or Archival Database quinta-feira, 27 de outubro de 11
  • 18. Movendo dados para o Data Fabric In-Memory Distributed Fabric Dados em memoria podem ser assincronamente persistidos / lidos de armazenamento persistente Clustered Application Data Data Data Particionamento, distribuição e replicação de dados em memória – Suporte para múltiplas linguagens / plataformas (Java, .NET, C, C++) – Segurança de base de dados integrada – Pode trabalhar desde como um simples cache distribuído (integrado ao Hibernate e.g.) até completo Data Fabric. – Execução de requisições distribuídas (Function Execution Framework) – Map-Reduce – Partitioned in-memory caching – Replicação para distribuição geográfica / WAN quinta-feira, 27 de outubro de 11
  • 19. Movendo dados para o Data Fabric In-Memory Distributed Fabric Dados em memoria podem ser assincronamente persistidos / lidos de armazenamento persistente Clustered Application Data Data Data Particionamento, distribuição e replicação de dados em memória – Suporte para múltiplas linguagens / plataformas (Java, .NET, C, C++) – Segurança de base de dados integrada – Pode trabalhar desde como um simples cache distribuído (integrado ao Hibernate e.g.) até completo Data Fabric. – Execução de requisições distribuídas (Function Execution Framework) – Map-Reduce – Partitioned in-memory caching – Replicação para distribuição geográfica / WAN quinta-feira, 27 de outubro de 11
  • 20. HA, particionamento e replicação de dados LOCATOR Transações Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 OLTP em memória Overflow automático para disco caso necessário Escrita síncrona ou assíncrona em disco (DB OLAP) Nó principal da área de memória OLAP DB 13 quinta-feira, 27 de outubro de 11
  • 21. HA, particionamento e replicação de dados LOCATOR Transações Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 OLTP em memória Overflow automático para disco caso necessário Escrita síncrona ou assíncrona em disco (DB OLAP) Nó principal da área de memória OLAP DB 13 quinta-feira, 27 de outubro de 11
  • 22. Atingindo escalabilidade e elasticidade extremas Principais Casos de Uso § Web Session Cache, L2 Cache • Gestão de objetos stateful em ambiente distribuído § App Data Cache, In-memory DB • Banco de dados OLTP baseado em Os dados de objetos de extrema alta performance aplicações § Grid Data Fabric: Client Compute “vivem” aqui • Data grid compartilhado acessado por clientes executando lógica de aplicação § Grid Data Fabric: Fabric Compute • Data grid compartilhado onde a lógica de Os dados de aplicação é distribuída na núvem e executada no próprio grid aplicação “dormem” aqui File Systems Databases Mainframes / outros 14 quinta-feira, 27 de outubro de 11
  • 23. Como GemFire se compara aos concorrentes? Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 quinta-feira, 27 de outubro de 11
  • 24. Como GemFire se compara aos concorrentes? Suporte para múltiplas linguagens / plataformas simultaneamente Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 quinta-feira, 27 de outubro de 11
  • 25. Como GemFire se compara aos concorrentes? Suporte para múltiplas linguagens / plataformas simultaneamente Suporte a versionamento de objetos Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 quinta-feira, 27 de outubro de 11
  • 26. Como GemFire se compara aos concorrentes? Suporte para múltiplas linguagens / plataformas simultaneamente Suporte a versionamento de objetos Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 Escrita síncrona ou assíncrona para banco de dados quinta-feira, 27 de outubro de 11
  • 27. Como GemFire se compara aos concorrentes? Suporte para múltiplas linguagens / plataformas simultaneamente Suporte a versionamento de objetos Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 Cache Loader Escrita síncrona ou assíncrona para banco de dados quinta-feira, 27 de outubro de 11
  • 28. Como GemFire se compara aos concorrentes? Suporte para múltiplas Queries Contínuas linguagens / plataformas simultaneamente Suporte a versionamento de objetos Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 Cache Loader Escrita síncrona ou assíncrona para banco de dados quinta-feira, 27 de outubro de 11
  • 29. Como GemFire se compara aos concorrentes? Suporte para múltiplas Queries Contínuas linguagens / plataformas simultaneamente Suporte a versionamento de objetos Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 Cache Loader Escrita síncrona ou assíncrona para banco de dados quinta-feira, 27 de outubro de 11
  • 30. Como GemFire se compara aos concorrentes? Suporte para múltiplas Queries Contínuas linguagens / plataformas simultaneamente Suporte a versionamento de objetos Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 Cache Loader Escrita síncrona ou assíncrona para banco de dados Execução distribuída de funções e map-reduce quinta-feira, 27 de outubro de 11
  • 31. Como GemFire se compara aos concorrentes? Suporte para múltiplas Queries Contínuas linguagens / plataformas simultaneamente Suporte a versionamento de objetos Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 Cache Loader Escrita síncrona ou assíncrona para banco de dados Execução distribuída de funções e map-reduce quinta-feira, 27 de outubro de 11
  • 32. Como GemFire se compara aos concorrentes? Suporte para múltiplas Queries Contínuas linguagens / plataformas simultaneamente Suporte a versionamento de Replicação em WAN objetos Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5 Cache Loader Escrita síncrona ou assíncrona para banco de dados Execução distribuída de funções e map-reduce quinta-feira, 27 de outubro de 11
  • 33. Performance baseada em acesso a memória GemFire usa memória em cluster de máquinas para transacionar Perform atualizações de dados, permitindo atualizações 10x a 200x mais rápidas que atualizações serializadas em disco (BD tradicional), sem qualquer risco adicional de perda de dados. Tempos típicos de latência são de geralmente de ~100-400 microsegundos, ao invés de ~5-200 milisegundos. GemFire pode ainda opcionalmente escrever em disco / banco de dados tradicional de modo síncrono ou assíncrono. Essa funcionalidade é geralmente utilizada para manter registro das transações e dados para OLAP. quinta-feira, 27 de outubro de 11
  • 34. Distribuição de Dados Distribute GemFire pode manter clusters locais e geograficamente distribuídos sincronizados em tempo real e operar de forma confiável em ambientes fracamente conectados, intermitentes e com banda de rede limitada. quinta-feira, 27 de outubro de 11
  • 35. Arquitetura Orientada a Eventos distribuídos Notify Notificação com entrega garantida de eventos de atualização de dados ocorridos em qualquer dos nós. Queries Contínuas - migração do modelo polling para orientação a eventos. quinta-feira, 27 de outubro de 11
  • 36. Consultas Paralelas Compute Controlador batch ou aplicação cliente Scatter-Gather (Map-Reduce) Queries quinta-feira, 27 de outubro de 11
  • 37. Consultas Paralelas Compute Controlador batch ou aplicação cliente Scatter-Gather (Map-Reduce) Queries quinta-feira, 27 de outubro de 11
  • 38. Roteamento inteligente de funções de dados Data Aware Function Execute Batch Controller or Client Movendo a funcionalidade para os dados corretos ao invés de mover os dados para a funcionalidade quinta-feira, 27 de outubro de 11
  • 39. Cloud Ready Pronto para o deployment em ambiente de Cloud - escalável verticalmente e horizontalmente. Adicione ou remova nós Web, de Load Balancer Aplicação ou de gestão de dados sob demanda on-the-fly Web Tier Application Tier Adicione e remova Discos para overflow (swap) se armazenamento persistente necessário segundo demanda on-the-fly. Gravação síncrona ou assíncrona opcional para armazenamento persistente quinta-feira, 27 de outubro de 11
  • 40. Semântica de Banco de Dados OO – OQL (Object Query Language) SELECT * FROM /root/trades t WHERE t.price < 100 – Continuous Queries Escalabilidade Linear – Indexes – Transactions – Local – Distributed – Co-located 22 quinta-feira, 27 de outubro de 11
  • 41. SQLFire: GemFire em paradigma relacional / SQL 23 quinta-feira, 27 de outubro de 11
  • 42. SQLFire Mesmos benefícios do GemFire com paradigma relacional e interface SQL Se comporta como um banco de dados SQL padrão, porém se utiliza do GemFire para replicar, particionar e distribuir dados na núvem. 24 quinta-feira, 27 de outubro de 11
  • 43. Criação de tabelas Criação de tabela tradicional Criação de tabela replicada 25 quinta-feira, 27 de outubro de 11
  • 44. Particionamento e Redundância Criação de tabela particionada Criação de tabela particionada e redundante 26 quinta-feira, 27 de outubro de 11
  • 45. Particionamento e Redundância Afinal de contas, por quê particionar dados? 27 quinta-feira, 27 de outubro de 11
  • 46. Co-locação com dados relacionados Indica ao SQLFire/GemFire armazenar dados relacionados nos mesmos servidores, de modo a obter máxima performance em consultas relacionadas (joins) 28 quinta-feira, 27 de outubro de 11
  • 47. Persistência (síncrona ou assíncrona) Indica ao SQLFire/GemFire persistir os dados em armazenamento persistente de modo síncrono ou assíncrono - para redundância adicional ou para alimentar reports / base OLAP. 29 quinta-feira, 27 de outubro de 11
  • 48. Casos de sucesso Alguns exemplos da tecnologia Gemfire aplicada em casos reais quinta-feira, 27 de outubro de 11
  • 49. Global Foreign Exchange Caso Real: Sistema de negociação global de moedas O projeto atingiu e permitiu: Ø Negociação de milhares de ativos em extrema baixa latência Ø Autonomia regional (America, Asia, Europa) Ø Garantia transacional e de persistência de cada negócio efetuado Ø Atualização em tempo real dos dados de mercado Ø Cálculo imediato da posição global em tempo real - baseado em eventos Ø Distribuição de todas as atualizações globalmente em tempo real Ø Alta disponibilidade (99,99%) Ø Disaster Recovery quinta-feira, 27 de outubro de 11
  • 50. Global Foreign Exchange Caso Real: Sistema de negociação global de moedas O projeto permitiu substituir ou eliminar: Vários Oracle Database em cada região (é mantida apenas 1 instancia para arquivamento) TIBCO Rendezvous para mensageria local IBM MQ Series para mensageria em WAN Veritas N+1 Clustering para H/A 3 DNS ou Wide IP Custos de administração em 66% quinta-feira, 27 de outubro de 11
  • 51. Web Portal Caso real: Web 2.0 Portal – ads customizados Um site extremamente pupular que atrai novos clientes baseados em banners Banner customizado em site de parceiro Em alguns milisegundos, o servidor de banners deve: Gerar um ID específico para a requisição Aplicar dezenas de regras relacionadas à região, contrato, IP de origem e características do cliente Decidir qual banner aplicar e customizá-lo a partir das regras Armazenar (transacionar) o banner exibido 4 2 3 1 Banner Ad Server Web Server do parceiro quinta-feira, 27 de outubro de 11
  • 52. Web Portal Caso real: Web 2.0 Portal – ads customizados Um site extremamente pupular que atrai novos clientes baseados em banners Respostas com latência inferior a 1ms Atingiu o target de 2500 banners entregues por segundo Provou-se escalável linearmente Melhorou a performance da solução antiga baseada em banco de dados popular em 4x Custou menos que a solução antiga 4 2 3 1 Banner Ad Server Web Server do parceiro quinta-feira, 27 de outubro de 11
  • 53. Migração de batches do Mainframe Caso real: Batch noturno em mainframe Caso de execução noturna de batch de re-conciliação de contas 0 60 120 min CPU Unavailable CPU Busy I/O Wait 76% 15% 9% Mainframe 120 minutos Batch agora executa em 60 segundos COTS Cluster 93% Network Wait! Tempo poderia ainda ser muito reduzido com maior banda de rede! quinta-feira, 27 de outubro de 11
  • 54. Migração de batches do Mainframe Caso real: Batch noturno em mainframe Benefícios atingidos: 1. Economia de recursos, plataforma moderna e escalável 2. Quando algo de errado ocorre no batch, é possível se descobrir em apenas 60 segundos 3. Agora o hardware e dados estão disponíveis os outros 119 minutos para: • Fraud detection • Compliance regulatório • Re-calcular o risco em outros 119 cenários • Atividades ligadas ao negócio • Aumentando a banda de rede, pode-se obter o cálculo em tempo real! quinta-feira, 27 de outubro de 11
  • 55. Monitoramento e posicionamento de ativos militares - EUA Caso real: DISA / DOD Global Command and Control 655 sites, 11 mil usuários Real-time, tri-dimensional, NASA World Wind User Interface 60,000 atualizações per minute Usuários President of the United States US Secretary of Defense Todos os chefes de comando Todos os comandantes do exército Sendo avaliado para utilização por todos os aliados dos EUA quinta-feira, 27 de outubro de 11
  • 56. Monitoramento e posicionamento de ativos militares - EUA Caso real: DISA / DOD Global Command and Control Armazenamento centralizado de dados impossível Integração de várias agências e divisões Muitas aplicações lendo e escrevendo simultaneamente os dados Redes mudando constantemente, não-confiáveis, móveis, lentas Até 60 mil atualizações de objetos por minuto (picos de 20 mil por segundo) Até 70 pontos de atualização de dados diferentes. Necessidade de um sistema real-time para rastrear pontos e alvos amigos e inimigos e que possa ser usado e compartilhado por todos envolvidos no cenário de guerra. Northrop Grumman (integrador) avaliou as seguintes tecnologias - e escolheu o GemFire: •RDBMS – Oracle, Sybase, Postgres, TimesTen, MySQL •ODBMS - Objectivity •jCache – GemFire, Oracle Coherence •JMS – SonicMQ, BEA Weblogic, IBM, JBoss MQ •TIBCO Rendezvous •Web Services, Rest quinta-feira, 27 de outubro de 11
  • 57. VMware Cloud Application Platform Modern Frameworks and Tools ü Developer Productivity and Application Portability Lean, Cloud-scale Application Services ü Optimized Runtime and Accelerated Deployment Virtual Datacenter Cloud Infrastructure and Management 39 quinta-feira, 27 de outubro de 11
  • 58. VMware Cloud Application Platform Modern Frameworks and Tools … ü Developer Productivity and Application Portability Developer Frameworks and Tools Lean, Cloud-scale Application Services vFabric ü Optimized Runtime and Accelerated Deployment Application Services Virtual Datacenter Cloud Infrastructure and Management 39 quinta-feira, 27 de outubro de 11
  • 59. VMware Cloud Application Platform Programming Rich Social and Model Web Mobile Virtual Datacenter Cloud Infrastructure and Management 40 quinta-feira, 27 de outubro de 11
  • 60. VMware Cloud Application Platform Programming Rich Social and Data Integration Batch Model Web Mobile Access Patterns Framework Virtual Datacenter Cloud Infrastructure and Management 40 quinta-feira, 27 de outubro de 11
  • 61. VMware Cloud Application Platform Programming Rich Social and Data Integration Batch Spring WaveMaker Code2Cloud Model Web Mobile Access Patterns Framework Tool Suite Services Virtual Datacenter Cloud Infrastructure and Management 40 quinta-feira, 27 de outubro de 11
  • 62. VMware Cloud Application Platform Programming Rich Social and Data Integration Batch Spring WaveMaker Code2Cloud Model Web Mobile Access Patterns Framework Tool Suite Services Java Runtime Web Runtime (tc Server) (ERS) Java Optimizations Virtual Datacenter (EM4J, …) Cloud Infrastructure and Management 40 quinta-feira, 27 de outubro de 11
  • 63. VMware Cloud Application Platform Programming Rich Social and Data Integration Batch Spring WaveMaker Code2Cloud Model Web Mobile Access Patterns Framework Tool Suite Services Java Runtime Web Runtime Messaging Global Data (tc Server) (ERS) (RabbitMQ) (GemFire) Java Optimizations Virtual Datacenter (EM4J, …) Cloud Infrastructure and Management 40 quinta-feira, 27 de outubro de 11
  • 64. VMware Cloud Application Platform Programming Rich Social and Data Integration Batch Spring WaveMaker Code2Cloud Model Web Mobile Access Patterns Framework Tool Suite Services Java Runtime Web Runtime Messaging Global Data App Monitoring Performance Mgmt (tc Server) (ERS) (RabbitMQ) (GemFire) (Spring Insight) (Hyperic) Data Director Java Automated Optimizations Virtual Datacenter App Provisioning (EM4J, …) (AppDirector) Cloud Infrastructure and Management 40 quinta-feira, 27 de outubro de 11
  • 65. Application Infrastructure for the Cloud Generation VMware vFabric Cloud Application Platform Frameworks & Tools Rich Web Integration Batch Data Access Social/Cloud Tool Suite vFabric Elastic Global Data Cloud Dynamic Load Performance Policy-driven tc Server App Server GemFire Management RabbitMQ Messaging ERS (Apache) Balancer Hyperic Management App Director* Automation Platform Services Virtual Datacenter Cloud Infrastructure and Management 41 quinta-feira, 27 de outubro de 11
  • 66. FAQ: § É possível mesmo garantir HA com dados somente em memória? • Sim! O particionamento e replicação de dados em memória garante a alta disponibilidade em índices iguais aos de armazenamentos físicos (disco). § Ok, mas mesmo assim posso fazer armazenamento síncrono em banco de dados? • Certamente. Escrita síncrona ou assíncrona em banco de dados ou disco rígido. § Os servidores precisam ter RAM suficiente para todos os dados do banco? • Não. Basicamente o seu modelo de dados pode/deve ser particionado entre vários servidores e a memória total seria a soma da memória de todos eles! Mesmo assim, caso necessário, o GemFire escreve o “excesso” de dados em disco (overflow) e recupera quando necessário, mesmo assim provendo performance muito superior aos DBs tradicionais. § Posso começar com um ambiente menor e ir escalando segundo demanda? • Sem dúvida. Tanto o software quanto o modelo de licensiamento são escaláveis segundo o ambiente e modo de utilização. O GemFire pode ser adotado como um simples Cache de dados ou um completo Data Fabric. § GemFire = SqlFire? • São produtos diferentes. Porém, o SQLFire possui o GemFire em seu core, oferecendo uma interface relacional (SQL) porém sem arquitetura orientada a eventos. 42 quinta-feira, 27 de outubro de 11
  • 67. Leitura Recomendada Architecting Infinitely Scalable Systems A seminal paper on the architecture of elastic applications was written by Pat Helland (Tandem Computing, Amazon.com, Microsoft) “Life Beyond Distributed Transactions: an Apostate’s Opinion” http://www.cidrdb.org/cidr2007/papers/cidr07p15.pdf http://blogs.msdn.com/b/pathelland/ This paper describes how our application architectures need to change in order to achieve infinite scalability and elasticity without using large hardware quinta-feira, 27 de outubro de 11
  • 68. Start small, Grow without Limit Planning for scalability in cloud environments quinta-feira, 27 de outubro de 11
  • 69. Frederico Melo fmelo@vmware.com twitter: fredmelo_br 45 quinta-feira, 27 de outubro de 11
  • 70. Use ESX to Share Memory Between VMs Running Java Elastic Memory for Java (EM4J) Description Benefits • Use virtualization to • Higher server consolidation through memory over-commit overcome the limitation for Java workloads of Java’s static heap • Protect Java applications against workload spikes without • New ‘memory balloon’ wasting memory runs inside JVM to capture unused memory and return it to ESX • Memory returned to JVM when it is under pressure quinta-feira, 27 de outubro de 11
  • 71. Aumentando a escalabilidade com topologia Client quinta-feira, 27 de outubro de 11
  • 72. Aumentando a escalabilidade com topologia Client Disk quinta-feira, 27 de outubro de 11
  • 73. Aumentando a escalabilidade com topologia Client Disk quinta-feira, 27 de outubro de 11
  • 74. Aumentando a escalabilidade com topologia Client Disk Disk Disk quinta-feira, 27 de outubro de 11