Banco de Dados em NuvemAula 1 - Conceitos básicos
Luiz Henrique Zambom SantanaProf. Dr. Ronaldo dos Santos Mello
Agenda
● Computação em nuvem
● Banco de dados em nuvens
● Vantagens e desvantagens
● Principais fornecedores
● Consistência
● Alta disponibilidade
● SQL nas nuvens
● NoSQL nas nuvens
● Exercício
● Conclusões
2
Computação em nuvem
● Provisionamento dinâmico
de recursos sob demanda
● Escalabilidade
● Cobrança baseada no uso
do recurso ao invés de uma
taxa fixa
● Distribuição geográfica dos
recursos
3
Computação em nuvem
4
● SaaS é caracterizado
principalmente pela não-aquisição
de licenças de software
● PaaS envolve um ambiente virtual
para criação, hospedagem e
controle de softwares e bancos de
dados
● IaaS apenas abstraí aspectos
relacionados à parte física de
servidores e redes
Computação em nuvem
5
Banco de dados nas nuvens
● Variação da computação nas nuvens para bancos de dados
● Vantagens○ Menor TCO
○ Facilidade de manutenção
○ Maior elasticidade
○ Menor investimento inicial
● Desvantagens○ Maior percepção de custo
○ Segurança e privacidade (dados enviados para um provedor externo)
6
Banco de dados como serviço
● Virtualização: permite que banco de
dados seja instalado em uma máquina
virtual
● DBaaS: fornece uma plataforma flexível
escalável, sob demanda que está
orientada para o autosserviço e
gerenciamento fácil, particularmente em
termos de provisionamento de um
negócio no próprio ambiente
7
Principais fornecedores
8
Como se diferenciam
9
● Ofertas de produtos (NoSQL, SQL, produtos)
● Modelo de cobrança
● Serviços agregados
● Apoio na migração de on-prem para dbaas
● Data centers (Redis Labs não tem datacenter no Brasil)
Como se diferenciam
(AWS)
10
Como se diferenciam
(Rackspace)
11
Como se diferenciam (Oracle)
12
DB-Ranking
13
SQL nas nuvens
14
Fornecedor SGBDs
Microsoft Azure SQL Database, MySQL Database1
Amazon AWS RDS (MySQL, PostgreSQL, Oracle, Microsoft SQL)
Google Cloud Cloud SQL
RedHat OpenShift PostgreSQL, MySQL, SQLite
IBM Bluemix DB2, MySQL1, PostgreSQL1
Oracle Database
MongoLab –
Heroku PostgreSQL
RedisLabs –
ClearDB MySQL
NoSQL nas nuvens
15
Fornecedor NoSQL
Microsoft Azure Azure DocumentDB, MongoDB1
Amazon AWS DynamoDB
Google Cloud Cloud Datastore, Cloud Bigtable
RedHat OpenShift MongoDB
IBM Bluemix Cloudant, MongoDB1
Oracle NoSQL Database2
MongoLab MongoDB
Heroku PostgreSQL
RedisLabs –
ClearDB –
SQL versus NoSQL
Not only SQLSadalage e Fowler, 2012http://martinfowler.com/books/nosql.html
“Banco de Dados Relacional será nota de rodapé na história”
Nathan Marz, 2014http://goo.gl/WGXvPy
SQL and NoSQL will merge “Not yet SQL”Michael Stonebraker, 2015https://www.youtube.com/watch?v=KRcecxdGxvQ
Diferença de desempenho pode ser brutal
• iColabora
CAP e BASE
20
Consistência eventual (Cassandra)
21
Consistência eventual (MongoDB)
22
Características NoSQL para Computação em Nuvem
● Particionamento horizontal
23
Características NoSQL para Computação em Nuvem
● Particionamento vertical
24
Alta disponibilidade
25
NoSQL escalabilidade
26
Persistência poliglota
27
“Sem tamanho único”
• “a panoply of data models,
and they typically operate on
flexible storage formats such
as JSON”
• “Increasingly, we see
applications that deploy
multiple engines, resulting in
a need to join data across
systems.”
Vantagens e desvantagens
(em relação ao SQL)
Vantagens Desvantagens
Maior desempenho Transações limitadas
Maior escalabilidade Limitação nas consultas*
Modelos de dados mais ricos Consistência relaxada
Schema-less “Dados não relacionados”
Exercício
Escolher um provedor de nuvem, criar um banco de dados de preferência e
descrever suas características (e.g., modelo de dados, características não
funcionais, preço). Exemplos:
● https://cloud.google.com/sql/docs/
● https://aws.amazon.com/pt/rds/
● https://azure.microsoft.com/
● https://www.rackspace.comcloud/databases
● https://www.mongodb.com/cloud/atlas
● https://www.elastic.co/
● https://redislabs.com/products/redis-cloud/
● https://cloud.oracle.com/database30
Conclusões
● Computação em nuvem é a
realidade para novas empresas e
startups, mas a maioria das
instalações ainda é on-premises
● As opções são tantas que é fácil
ficar perdido e/ou não atingir
soluções ótimas
31
Referências
● https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/
● https://www.databaselabs.io/database-as-a-service/hidden-costs-of-databases
32