Shermila Guerra Santa Cruz Orientador: Ricardo Rodrigues Ciferri O que é computação em nuvem (CN)? Vantagens e desvantagens da computação em nuvem Serviços da computação em nuvem ◦ SaaS, IasS, PasS e DbasS Em que caso BD relacional não apresenta eficiência NoSQL: características, vantagens e desvantagens Perguntas usuais sobre NoSQL e BDs relacionais Conclusões Próximos passos GBD da UFSCar 2 CN é uma solução completa na qual todos os recursos de computação (hardware, software, rede, armazenamento, etc.) são fornecidos rapidamente aos usuários à medida que a demanda exige. ◦ Fonte: http://www.ibm.com/developerworks/br/websphere/techjourn al/0904_amrhein/0904_amrhein.html GBD da UFSCar 3 GBD da UFSCar 4 GBD da UFSCar 5 Eric Schmidt, atual presidente da Google, diz que o computador do futuro é a internet. “Hoje, se você tem um problema no computador, está tudo perdido, é terrível. Mas, com a computação em nuvem, não importa se você usa o celular, o computador ou qualquer outro aparelho, tudo estará guardado na internet” GBD da UFSCar 6 Reduzir custos associados ao fornecimento de serviços de TI Reduzir custos de capital e custos operacionais pagando somente quando são usados OBS: As empresas podem atender facilmente às necessidades dos mercados em constante mudança para assegurar que sempre estejam à frente para seus consumidores. GBD da UFSCar 7 Existem sites que oferecem hospedagem em nuvem às pessoas e empresas. O que pode ser um perigo? Como ter certeza de que é um site seguro. Como saber se este servidor vai estar sempre disponível, 24 horas x 7 dias. Os documentos podem ser roubados ou disseminados pelo infinito espaço virtual. Segurança Disponibilidade GBD da UFSCar 8 Os serviços são: Software SaaS Infraestrutura IaaS Plataformas de desenvolvimento PaaS Bancos de dados Dbaas1 1.A Database-as-a-Service for the Cloud. Carlo Curino curino@mit .edu. Evan P. C. Jones [email protected]. Raluca Ada Popa [email protected] GBD da UFSCar 9 SaaS GBD da UFSCar 10 GBD da UFSCar 11 Concorrência. Num Banco de dados relacional, supondo que seja necessário atualizar (escrever) 1000 tarefas simultaneamente, se paga um preço alto pela concorrência, visto que começaria a demorar para obter o lock, refazer o lock e atualizar o status da tarefa. Muitos consideram que o uso de banco de dados relacionais é um erro para este tipo de problema (custo proibitivo). GBD da UFSCar 12 É possível LER com múltiplos computadores, mas infelizmente não é possível escrever. GBD da UFSCar 13 Há duas opções: 1) Aumentar o poder do servidor, memória, processador e armazenamento. Este tipo de solução é chamada de Escalabilidade Vertical (scale up), como mostra a figura abaixo: GBD da UFSCar 14 2) Aumentar o número de máquinas de servidores web. Isto é chamado de Escalabilidade Horizontal (scale out), como mostrado no esquema abaixo: GBD da UFSCar 15 Buscando eficiência, pode-se usar uma solução NoSQL para controle e persistência das tarefas que precisam escrever simultaneamente, evitando-se os locks, graças ao modelo de concorrência simplificado. Porém, NoSQL rompe uma longa história de banco de dados relacionais com propriedades ACID. GBD da UFSCar 16 A fama dos bancos de dados relacionais se deu porque eles prometiam as propriedades ACID: Atomicidade Consistência Isolamento Durabilidade O problema com ACID é a necessidade de muito mais viagens para escalar um sistema de vários nós. Tempo de Down é inaceitável. Assim, o sistema precisa ser confiável. Confiabilidade requer vários nós para lidar com falhas no equipamento. Para fazer um sistema escalável, que pode lidar com muitas leituras e escritas, são necessários mais nós. Fonte: Fayaz Yusuf Khan, Guided by, Nimi Prakash P. System Analyst Computer Science & Engineering Department September 29, 2010 to CS 708 Seminar NoSQL. GBD da UFSCar 17 PAC BASE Fonte: Fayaz Yusuf Khan, Guided by, Nimi Prakash P. System Analyst Computer Science & Engineering Department September 29, 2010 to CS 708 Seminar NoSQL. GBD da UFSCar 18 Consistência: os dados estão corretos o tempo todo. O que é escrito é o que é lido. Disponibilidade: é possível ler e escrever os dados o tempo todo. Tolerância a Particionamento: se um ou mais nós falhar, o sistema ainda funciona e se torna consistente quando o sistema entra em operação. Fonte: Fayaz Yusuf Khan, Guided by, Nimi Prakash P. System Analyst Computer Science & Engineering Department September 29, 2010 to CS 708 Seminar NoSQL. GBD da UFSCar 19 -API, interfaces específicas de consulta e peculiaridades. (confiar no seu fornecedor). GBD da UFSCar 20 “Embora seja desejável ter consistência, alta disponibilidade e tolerância à partição em cada sistema, infelizmente, nenhum sistema pode atingir os três ao mesmo tempo”. GBD da UFSCar 21 Basicamente Disponíveis: o sistema parece funcionar o tempo todo. Estado Flexível (Soft State): não precisa ser coerente o tempo todo. Eventualmente Consistente: torna-se consistente em algum momento posterior. Todas as empresas que constroem grandes aplicações, criam-nas de acordo com as propriedades PAC e BASE: Google, Yahoo, Facebook, Amazon, eBay, etc. Fonte: Fayaz Yusuf Khan, Guided by, Nimi Prakash P. System Analyst Computer Science & Engineering Department September 29, 2010 to CS 708 Seminar NoSQL. GBD da UFSCar 22 Não-relacionais Distribuídos Escalabilidade horizontal Esquema livre Suporte a replicação Consistência eventual Fonte: http://nosql-database.org/ GBD da UFSCar 23 “Construir aplicativos web em cima de uma camada de armazenamento de dados tradicional (um único SGBD relacional) não é mais suficiente. O objetivo final é melhorar o desempenho e a confiabilidade”. Drop ACID and think about Data”, High Scalability Blog http://highscalability.com/drop-acid-and-think-about-data GBD da UFSCar 24 Orientado a documentos Chave / valor Tabular Grafos GBD da UFSCar 25 nome Documento Chavevalor Tabular Grafo modo de durabilidade java ruby python php.net http mongodb baseado em réplica de dados sim sim sim sim sim sim couchdb único nó sim sim sim sim sim sim ravendb único nó não não não não sim sim redis em memória, mas pode ser serializado no disco sim sim sim sim sim não riak baseado em réplica de dados sim sim sim sim sim sim cassandra baseado em réplica de dados sim sim sim sim sim não neo4j único nó sim sim sim sim não sim sones único nó não não não não sim sim GBD da UFSCar 26 Descentralização Escalabilidade Tolerância a falhas Balanceamento de carga (Perde-se) Junções devem ser feitas na aplicação Normalização Integridade de entidade e referencial Transparência de localização GBD da UFSCar 27 Os bancos de dados relacionais desapareceram? Se você tem um banco de dados relacional em um único servidor e se triplica sua carga sem problemas, não é necessário mudar. Se você pode atualizar os dados rapidamente sem problemas, não é necessário mudar. Se você quer melhorar o desempenho e a escalabilidade em função da demanda de seus clientes, você vai precisar de um banco de dados não-relacional ou NoSQL. GBD da UFSCar 28 Para que serve NoSQL? Um dos mitos do NoSQL é que só 10% dos sites de hoje em dia devem usar o NoSQL. Isso na verdade é uma interpretação errônea. A ideia da afirmação é que 90% dos sites não sentiriam uma melhora de desempenho significativa. Imagine um blog com 10 visitas diárias, qualquer banco de dados atual serve pra essa aplicação, até mesmo se tiver 10 mil visitas diárias. GBD da UFSCar 29 Onde posso usar NoSQL? Muito se tem visto sobre usar o NoSQL em aplicações web de grande porte, porém ela pode ser usada em qualquer tipo de aplicação, na web ou no desktop. Não há limites. GBD da UFSCar 30 Posso usar NoSQL com um banco de dados relacional? Você pode e deve usar um NoSQL com algum banco de dados relacional. Você pode até usar vários tipos de NoSQL e um MySQL. Não é necessário, mas é possível. Por exemplo, algumas aplicações usam bancos de dados não relacionais para uma leitura e escrita temporária, atualizando um banco relacional de tempos em tempos, tirando vantagem das duas estratégias. GBD da UFSCar 31 O que acontece se me adiro a um banco de dados NoSQL? Aderindo a um banco de dados NoSQL, muita da responsabilidade de cuidar dos dados fica a cargo da aplicação. É ela que define como funcionam e como se relacionam os documentos. GBD da UFSCar 32 Dois focos: Desempenho / Escalabilidade Simplicidade Contexto importa: cada caso deve ser estudado com cuidado. Balancear vantagens e desvantagens é fundamental. Futuro incerto (mas promissor). Como toda decisão arquitetural, escolher por SGBD relacional ou não relacional apresenta um trade off entre ACID ou BASE e CAP. Cada caso deve ser estudado com cuidado. GBD da UFSCar 33 Foco em chave-valor. Arquitetura de referência. Taxonomia SGBD não relacional Experimentos de escalabilidade e desempenho. GBD da UFSCar 34