Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gerenciamento de Dados em Nuvem: Conceitos, Sistemas e Desafios

Gerenciamento de Dados em Nuvem: Conceitos, Sistemas e Desafios

Flávio R. C. Sousa

October 05, 2010
Tweet

More Decks by Flávio R. C. Sousa

Other Decks in Technology

Transcript

  1. Universidade Federal do Ceará Gerenciamento de Dados em Nuvem: Conceitos,

    Sistemas e Desafios Flávio R. C. Sousa Leonardo O. Moreira José Antônio F. de Macêdo Javam C. Machado SBBD 2010 Atualizado em Março/2012
  2. Agenda  Computação em Nuvem  Gerenciamento de Dados em

    Nuvem  Sistemas para o Ger. de Dados em Nuvem  Desafios no Ger. de Dados em Nuvem  Conclusões 2
  3. Computação em Nuvem  Serviços básicos e essenciais são todos

    entregues de uma forma transparente  A mesma ideia tem sido aplicada no contexto da informática  Cloud Computing ou Computação em Nuvem  Computação em Nuvem  Ideia antiga: Software como um Serviço (SaaS)  Entrega de aplicações através da Internet  Recentemente: “[Hardware, Infraestrutura, Plataforma] como um serviço”  “X como um serviço” 3
  4. Computação em Nuvem: Por que agora?  Experiência com datacenters

    muito grande  Economia de escala sem precedentes  Transferência de risco  Fatores de tecnologia  Internet de banda larga difundida  Maturidade de tecnologias de virtualização  Fatores de negócios  Custo inicial mínimo  Modelo de pagamento baseado no uso  pay-as-you-go 4
  5. Computação em Nuvem  Alto investimento inicial  Alto custo

    de manutenção  Quant. fixa de recursos  Dificuldade de escalabilidade  Pagamento pelo uso  Menor custo de manutenção  Escalabilidade linear  Tolerância a falhas  Sob demanda 5
  6. Computação em Nuvem  Nuvem [Buyya et al. 2009] 

    É uma metáfora para a Internet ou infraestrutura de comunicação entre os componentes arquiteturais, baseada em uma abstração que oculta a complexidade de infraestrutura 6
  7. Utilização dos Recursos 7 Tempo CAPACIDADE DA TI Carga Atual

    Alocação de capacidades “Desperdício“ de capacidades “Falta“ de capacidades Custo fixo das capacidades Previsão de Carga Custo Inicial das capacidades [Microsoft 2010]
  8. Elasticidade na Nuvem 8 Carga Atual Alocação de capacidades Redução

    dos investimentos iniciais Redução do “excesso de TI“ Sem “falta“ de capacidades É possível a redução das capacidades no caso da redução da carga Tempo CAPACIDADE DA TI Previsão de Carga [Microsoft 2010]
  9. Computação em Nuvem  Definição [NIST - National Institute of

    Standards and Technology, 2009]  Computação em nuvem é um modelo que possibilita acesso, de modo conveniente e sob demanda, a um conjunto de recursos computacionais configuráveis que podem ser rapidamente adquiridos e liberados com mínimo esforço gerencial ou interação com o provedor de serviços 10
  10. Gerenciamento de Dados  Dados na nuvem  OLAP (Online

    Analytical Processing)  OLTP (Online Transaction Processing)  Características das aplicações  Grandes quantidades de dados  Banco de dados único  Foco na escalabilidade do banco de dados  Pequenas quantidades de dados  Múltiplos bancos de dados  Foco na escalabilidade da infraestrutura 14
  11. Requisitos do Gerenciamento de Dados  Usuário  API simples

    com pouca configuração e administração  Desempenho e disponibilidade  Características avançadas  Provedor  SLA  Minimizar custos  Outros requisitos  Nuvem Pública  Esquema de preço  Segurança  Baixa latência 16
  12. Gerenciamento de Dados 17 Características Descrição Distribuição Poucos centros de

    dados Ambiente Recursos homogêneos em centros de dados Operações API simples, SQL ou variações Transações ACID ou variações Replicação Garantias de QoS e transparência Controle Global Central ou distribuído Alterações Dinâmicas Escalabilidade e elasticidade
  13. Gerenciamento de Dados  Diferenças dos sistemas tradicionais  Intervenção

    humana limitada  Alta alternância na carga de processamento  Variedade de infraestruturas compartilhadas  Mais recursos disponíveis para administração  Atualizações de software mais frequentes 18
  14. Gerenciamento de Dados  Sistema autônomo  Monitoramento e controle

    são importantes e não-triviais  Automação é essencial  Experimentação para coletar dados  Testes  Administração interativa  Mudança com a carga de trabalho envolvida 19
  15. Gerenciamento de Dados  Virtualização  Auxilia na implantação, consolidação

    e provisionamento flexível de SGBDs  Recursos dedicados  recursos compartilhados  Melhorar a utilização de recursos  Simplificar a administração  Reduzir custos  Introduz pouco overhead no sistema [Minhas et at. 2008] 20
  16. Gerenciamento de Dados  Multi-inquilino  Técnica para consolidar aplicações

    de múltiplos inquilinos em um único sistema  Inquilino  Um usuário que utiliza uma aplicação  SGBD instalado em uma infraestrutura  Compartilhamento de infraestruturas entre inquilinos  Diferentes níveis de abstração e isolamento 22
  17. Multi-inquilino 23 Compartilhamento Isolamento IaaS PaaS SaaS Hardware VM x

    Máquina Virtual Usuário SO x Sistema Operacional Instância do SGBD x Instância Banco de Dados x Banco de Dados Esquema x Tabela Linha x
  18. Armazenamento/Consultas  Novos sistemas de arquivo  Google File System

    (GFS)  Hadoop File System (HDFS)  MapReduce  Modelo de programação  Função Mapeamento: (Kin , Vin )  list(Kinter , Vinter )  Função Redução: (Kinter , list(Vinter ))  list(Kout , Vout ) 26
  19. MapReduce 27 the quick brown fox the fox ate the

    mouse how now brown cow Map Map Map Reduce Reduce brown, 2 fox, 2 how, 1 now, 1 the, 3 ate, 1 cow, 1 mouse, 1 quick, 1 the, 1 brown, 1 fox, 1 quick, 1 the, 1 fox, 1 the, 1 how, 1 now, 1 brown, 1 ate, 1 mouse, 1 cow, 1 Input Map Shuffle & Sort Reduce Output
  20. Armazenamento/Consultas  DHT (Distributed Hash Table)  Par chave/valor 

    <1, sbbd>  get() e put()  mapreduce()  Vantagens  Descentralização, escalabilidade, tolerância a falhas, balanceamento de carga, desempenho  Desvantagens  Sem filtros complexos de consultas, chave estrangeiras, junções devem ser feitas na aplicação. 28
  21. Armazenamento/Consultas  Linha x Coluna  Vantagens  Facilidade de

    armazenamento e recuperação dos dados  Desvantagens  Dificuldade de recuperar dados específicos 29
  22. Armazenamento/Consultas  Orientado a documento  Representam a estrutura do

    documento  Coleção de pares chave-valor  Esquema flexível  Diferentes formatos: JSON, XML, outros.  Grafo  Vértices, arestas e propriedades  Gerenciamento de dados com estruturas diferenciadas e consultas complexas. 30
  23. Transações  Teorema CAP (Consistency, Availability, Partition Tolerance) [Brewer, 2000]

    [Gilbert & Lynch, 2002]  Um sistema distribuído não pode assegurar as seguintes propriedades de um vez:  Consistência  Disponibilidade  Tolerância a partições 31
  24. Transações  ACID x BASE (Basically Available, Soft state, Eventually

    consistent)  BASE  Basicamente disponível  Estado leve  Eventualmente consistente  Consistência eventual  O sistema garante que, se nenhuma atualização for feita ao dado, todos os acessos irão devolver o último valor atualizado 34
  25. Transações 35 ] little.html - yahoos - and - cap

    - with - /problems 04 / 2010 http://dbmsmusings.blogspot.com/ [  PACELC  Extensão do teorema CAP  Latência e Consistência
  26. Desempenho  Heterogeneidade dos recursos  Dificulta o desen. de

    soluções eficazes  Pode comprometer o desempenho no processamento de consultas executadas de forma paralela  Garantias de QoS  De acordo com o SLA definido  Tempo de resposta, disponibilidade, penalidades para o provedor 37
  27. Tolerância a Falhas e Distribuição  Infraestruturas para nuvem 

    Hardware de baixo custo  Máquinas e redes podem falhar  As soluções para gerenciamento de dados  Devem ser construídas para tratar falhas  Técnicas de distribuição  Fragmentação  Replicação 38
  28. Tolerância a Falhas e Distribuição  Fragmentação  Estruturas: DHT

    e orientada a coluna  Facilita a distribuição dos dados  Replicação  Diferentes protocolos  Cópia primária, Réplica ativa, Paxos, Gossip  Técnicas para trabalhar com máquinas virtuais 39
  29. NoSQL  Gerenciar grandes volumes de dados  Esquema flexível

     API simples  Escalabilidade  Consistência eventual  O desempenho depende da remoção das sobrecargas [Stonebraker 2010]  Logging, bloqueio, gerenc. de buffer, entre outras  Tem pouco a ver com o SQL 42
  30. NewSQL  Escalabilidade  Flexibilidade  Desempenho  SQL como

    a interface primária  Suporte a transações ACID 44
  31. Amazon S3 (Simple Storage Service)  Sistema de armazenamento distribuído

     Baseado no Amazon Dynamo  Modelo chave valor  DHT  Escalabilidade, disponibilidade, balanceamento de carga e heterogeneidade  Linguagem  get() e put()  Ausência de transações  Consistência eventual 46
  32. Amazon S3 47  Objetos são organizados em buckets 

    Objetos e buckets  Identificados por uma URI  Acesso por meio de uma Serviço Web  Operações  put(uri, bytestream)  get(uri)  get-if-modified-since(uri, timestamp)
  33. Amazon SimpleDB  Serviço web para execução de consultas sobre

    dados estruturados  Simples, flexível e escalável  Modelo  Sem esquema  Domínios  Similar a uma tabela  Item  Linhas da tabela acessada por ID (chave primária)  Atributo  Colunas da tabela 48
  34. Amazon SimpleDB  Linguagem  SQL  select output_list from

    domain_name [where expression] [sort_instructions] [limit limit]  Sem suporte  Junções  Transações  Esquemas de dados complexos  Limitações de tamanho/tipo de domínios e atributos  Consistência eventual 49
  35. BigTable “www.ufc.br” “contents:” Linhas Colunas Timestamps t 3 t 11

    t 17 “<html>…” 52  Modelo de dados  Linha, coluna e timestamp  Tipos: string, int, float e DateTime  Exemplo
  36. Google MegaStore  Desenvolvido para aplicações web  Linguagem 

    Acesso: API Python e Java  GQL (Google Query Language)  Select, Where  Order By, Limit e In.  Transação  Suporte a transações por meio das APIs  Transações aplicadas a entidades  Unidade de consistência, escalabilidade, replicação 53
  37. Cassandra  Principais objetivos do sistema  Disponibilidade e escalabilidade

     Características de 2 sistemas  Arquitetura descentraliza do Dynamo  Modelo de dados do BigTable  Armazenamento  Baseado em índices  Linguagem  API Simples  Instruções de seleção, inserção, atualização e remoção de dados 54
  38. Cassandra  Transação  Consistência eventual  Estratégia configurável pelo

    usuário  Nível de consistência x Desempenho  Disponibilidade  Tolerante a falhas  Protocolo Gossip 57
  39. CouchDB  Modelo  Orientado a documentos  Livre de

    esquemas (JSON)  Documentos  São as unidades primária de dados  Linguagem  API  CRUD  Acesso:  API REST/JSON 58
  40. CouchDB  Consultas  Visões  MapReduce  Armazenamento 

    Armazenamento baseado em arvores B+  Transação  Multi-version Concurrency Control (MVCC)  Adaptado para documentos  Modelo de consistência eventual 59
  41. Microsoft SQL Azure  Modelo Relacional  SQL Azure 

    Windows Azure Storage Blobs Não-estruturados Tables Estruturados Queues Mensagens Comunicação 60
  42. Microsoft SQL Azure  Linguagem  Transact-SQL  Transação 

    Não suporta transações distribuídas  Consistência forte  Alta disponibilidade e tolerância a falhas  Azure Data Center  Implementa o modelo multi-inquilino 62
  43. Relational Cloud  SGBD Relacional como um serviço  Pontos

    principais do projeto  Fragmentação e alocação  Análise da carga de trabalho  Migração em tempo de execução  Linguagem SQL  Transação  Suporte a transações distribuídas  Tratamento de falhas  Consistência forte  Problemas  Escalabilidade e disponibilidade 63
  44. Comparativo entre sistemas Característica Dynamo S3 Google Cassandra CouchDB SQL

    Azure RC Modelo Chave valor Coluna Coluna Doc. Relac. Relac. Armaz. Hash consist. Índices Índices Arv. B+ Tabela Tabela Linguagem API Simples API Simples API Simples API Simples SQL reduzida SQL Transações Não Não Sim simplificada Não Sim Sim Consistência Eventual Forte Eventual Eventual Forte Forte Escalabilidade Alta Alta Alta Média Média Baixa Disponibilidade Alta Alta Alta Alta Alta Média 65
  45. Desafios  Armazenamento e Proc. de Consultas  Escalabilidade e

    Consistência  SGBDs Virtualizados  Qualidade dos Serviços de Dados  SGBDs Multi-Inquilino  Segurança dos Serviços de Dados  Desc., Descoberta e Integração de Serviços  Avaliação de Serviços de Dados em Nuvem 67
  46. Armazenamento e Proc. de Consultas  Aumento no volume de

    dados e necessidade de gerenciar e analisar  Novas arquiteturas para paralelizar o processamento OLAP  Desenvolver sistemas que combinem as abordagens OLAP e OLTP  Interação com novos sistemas de arquivos e sistemas legados  Linguagens com restrições  Novas linguagens de consultas  API comum para vários serviços 68
  47. Escalabilidade e Consistência  Grande quantidade de aplicações com requisitos

    diferentes  Desenvolver técnicas para prover escalabilidade e elasticidade  Construir soluções com suporte a consistência forte  Desenvolver soluções para garantir escalabilidade, disponibilidade e consistência 69
  48. SGBDs Virtualizados  SGBDs em máquinas virtuais  Melhorar a

    utilização dos SGBDs em nuvem  Integração das tecnologias de virtualização com SGBDs  Tratar cargas de trabalho inesperadas  Replicação e fragmentação  Provisionar e alocar recursos 70
  49. Qualidade dos Serviços de Dados  Infraestrutura compartilhada da nuvem

    deve fornecer qualidade  Desenvolver soluções com QoS mesmo em condições extremas  Técnicas adaptativas e dinâmicas  Auto sintonia de parâmetros baseada na carga de trabalho  Compreensão automática da carga de trabalho  Experimentação 71
  50. SGBDs Multi-Inquilino  Multiplos inquilinos e compartilhamento de recursos 

    Linguagens para tratar a distribuição dos dados dos inquilinos  SGBD multi-inqulino com desempenho e baixo custo 72
  51. Segurança dos Serviços de Dados  Diferentes tipos de modelos

    de dados e políticas de segurança  Desenvolver soluções para tratar da questões de segurança dos dados  Técnicas de criptografia  Novas estratégias para garantir a segurança 73
  52. Desc., Descoberta e Integração de Serviços  Encontrar e compor

    serviços  Técnicas para descrever, descobrir e compor serviços  Ontologias  Diferentes modelos e não existe um padrão de integração  Técnicas de integração  Desempenho e evolução 74
  53. Avaliação de Serviços de Dados em Nuvem 75  Desenvolver

    novas soluções para a avaliação de serviços de dados em nuvem Característica Tradicional Nuvem Custo [$] Fixo Otimizado Desempenho [tps, secs] Otimizado Fixo Escalabilidade [#cores] Otimizado Fixo Previsibilidade [s($)] - Fixo Consistência [%] Fixo ??? Flexibilidade [#diversos] - Otimizado  Desenvolver novas soluções para a avaliação de serviços de dados em nuvem [Florescu & Kossmann, 2009]
  54. Conclusões  Infraestrutura, plataforma e software estão sendo disponibilizados como

    serviços  Computação em nuvem está em evolução  Muitas iniciativas mas ainda não existe consenso e padrões  O gerenciamento de dados em nuvem é um ponto fundamental  Existe uma grande quantidade de sistemas para o gerenciamento de dados em nuvem  Vários desafios  Escalabilidade, segurança, consistência dos dados, elasticidade 76
  55. Conclusões  Abordagens e soluções diferentes são necessárias para superar

    estes desafios  Necessidade de compreender as características das novas aplicações  Infraestruturas terão suporte a vários modelos  Relacional, chave-valor, entre outros.  Comunidade científica e indústria devem interagir  Consolidação e ampla utilização da computação em nuvem 77