shermila guerra santa cruz orientador: ricardo rodrigues...

34
Shermila Guerra Santa Cruz Orientador: Ricardo Rodrigues Ciferri

Upload: lekien

Post on 14-Feb-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

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

5GBD da UFSCar

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]

SaaS

10GBD da UFSCar

11GBD da UFSCar

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

Orientado a documentos

Chave / valor

Tabular

Grafos

25GBD da UFSCar

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

34GBD da UFSCar

Foco em chave-valor.

Arquitetura de referência.

Taxonomia SGBD não relacional

Experimentos de escalabilidade e desempenho.