shermila guerra santa cruz orientador: ricardo rodrigues...
TRANSCRIPT
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
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”
6GBD da UFSCar
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
Segurança
Disponibilidade
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.
8GBD da UFSCar
Os serviços são:
Software SaaS
Infraestrutura IaaS
Plataformas de desenvolvimento PaaS
Bancos de dados Dbaas1
9GBD da UFSCar
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]
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).
12GBD da UFSCar
É possível LER com múltiplos computadores, mas infelizmente
não é possível escrever.
13GBD da UFSCar
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:
14GBD da UFSCar
2) Aumentar o número de máquinas de servidores
web. Isto é chamado de Escalabilidade Horizontal
(scale out), como mostrado no esquema abaixo:
15GBD da UFSCar
GBD da UFSCar 16
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.
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.
17GBD da UFSCar
Fonte: Fayaz Yusuf Khan, Guided by, Nimi Prakash P.
System Analyst Computer Science & Engineering
Department September 29, 2010 to CS 708 Seminar NoSQL.
18GBD da UFSCar
PAC
BASE
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.
19GBD da UFSCar
-API, interfaces específicas de consulta e peculiaridades.
(confiar no seu fornecedor).
20GBD da UFSCar
“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”.
21GBD da UFSCar
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.
22GBD da UFSCar
Não-relacionais
Distribuídos
Escalabilidade horizontal
Esquema livre
Suporte a replicação
Consistência eventual
Fonte: http://nosql-database.org/
23GBD da UFSCar
“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”.
24GBD da UFSCar
Drop ACID and think about Data”, High Scalability Blog
http://highscalability.com/drop-acid-and-think-about-data
nome modo de durabilidade java ruby python php.net http
Documentomongodb 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
Chave-
valor
redisem memória, mas pode ser
serializado no discosim sim sim sim sim não
riak baseado em réplica de dados sim sim sim sim sim sim
Tabular cassandra baseado em réplica de dados sim sim sim sim sim não
Grafoneo4j único nó sim sim sim sim não sim
sones único nó não não não não sim sim
26GBD da UFSCar
(Perde-se)
Junções devem ser feitas na aplicação
Normalização
Integridade de entidade e referencial
Transparência de localização
27GBD da UFSCar
Descentralização
Escalabilidade
Tolerância a falhas
Balanceamento de carga
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.
28GBD da UFSCar
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.
29GBD da UFSCar
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.
30GBD da UFSCar
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.
31GBD da UFSCar
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.
32GBD da UFSCar
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.
33GBD da UFSCar