NoSQL no universo
da Persistência
Poliglota
TCHÊLINUX- NOVO HAMBURGO
SOU O WALDEMAR NETO
Me sigam nas redes sociais como @waldemarnt
Meu blog é http://walde.co/
2
UM POUCO MAIS SOBRE MIM
● Gaúcho de Pelotas
● Desenvolvedor a mais de 6 anos
● Focado em web/api’s
● Colaborador open-source
● Palestrante
● Blogueiro
● Colaborador do iMasters
3
ONDE EU TRABALHO
Munich
Pelotas
Earlang
Argentina
CONRAD CAINE
4
NoSQL?
Afinal, o que é?
5
Armazenamento rápido, de baixo
custo, ao mesmo tempo robusto
e escalável.
6
A NECESSIDADE FORÇA A EVOLUÇÃO
7
DIRETO NA NECESSIDADE
A Criação de um novo conceito chamou a
atenção da comunidade.
8
A REUNIÃO DA CÚPULA
11 de Junho de 2009, São Francisco - EUA
Johan Oskarsson (Last.fm, Hadoop)
9
Uma hashtag, mil teorias
10
CARACTERÍSTICAS DE UM NoSQL
● Obviamente não usam
SQL
● Normalmente open-souce
● Clusterização
● Sem schema definido
● Persistência poliglota
11
OS DIVERSOS TIPOS DE NoSQL
◇ Chave-valor cache
◇ Chave-valor armazenamento
◇ Servidor de armazenamento estruturado
◇ Orientado a documentos
◇ Armazenamento em colunas
◇ Banco de dados em graphos
12
CHAVE-VALOR CACHE
13
CHAVE-VALOR ARMAZENAMENTO
Atlassian -RAMCloud
14
SERVIDOR DE ARMAZENAMENTO ESTRUTURADO
15
ORIENTADO A DOCUMENTOS
16
ARMAZENAMENTO EM COLUNAS
17
SAI RELAÇÃO ENTRA
AGREGADOS
USUÁRIO
PRODUTOS
CARRINHO
PRODUTOS USUÁRIOS
CARRINHO
TÁ, MAS E A MAGIA DO
ESCALONAMENTO?
19
FLUXO DE DADOS EM BANCOS ORIENTADOS A DOCUMENTOS
CLUSTER
NODE1 NODE2
NODE3
SHARD1
SHARD3
SHARD2
SHARD2
SHARD3
SHARD1
20
MAS NÃO TEM
SCHEMA? NÃO TEM
TRANSAÇÕES, NÃO
TEM
RELACIONAMENTOS,
COMO EU USO NA
VIDA REAL?
21
PENSE NoSQL
22
SQL vs NoSQL
● Organização de tabelas
estruturadas
● Schema pré-definido
● Tipos de campos pré-
definidos
● Dificuldade de
escalonamento horizontal
● Pouca replicação de dados
● Relacionamento e chaves
● Necessita um driver de
interação ou interpreter
● Diferentes tipos de estrutura,
normalmente usam uma chave como
referência
● Schema indefinido e dinâmico
● Tipagem livre
● Criados para trabalhar em clusters e
escalonamento horizontal
● Livres para replicação de dados
● Usam agregados e referências no
lugar de relacionamentos e chaves
● Normalmente tem uma interface de
interação e uma resposta Json
23
É, JSON É GLOBAL!!!
24
PENSE ORIENTADO A SERVIÇOS E
MICRO SERVIÇOS
25
DESIGN ORIENTADO A
DOMÍNIOS NA PRÁTICA
26
DIAGRAMA DE LOJA VIRTUAL COMUM
PRODUTOS USUÁRIO
CARRINHO COMPRAS PAGAMENTO
27
DIAGRAMA DE LOJA VIRTUAL ORIENTADO A SERVIÇOS
PRODUTOS
USUÁRIO
PRODUTOS
CARRINHO USUÁRIO
PRODUTOS
CARRINHO
COMPRAS
PAGAMENTO
PAGAMENTO
28
FLUXO DE CASO DE USO DO DOMINIO
PRODUTOS USUÁRIO
COMPRAS PAGAMENTO
29
DICAS PARA A VIDA
● Replique dados
● Agrupe os recursos e relações
● Dependa o mínimo possível de
outros recursos
● Oriente a micro serviços
30
NEM TUDO SÃO ROSAS - VAMOS FALAR DE PROBLEMAS?
● Persistência paralela
● Replicação de dados sem callback
● Demora de escalonamento e
replicação
● Latência de rede na
replicação
31
PERGUNTAS?
Me encontrem em
@waldemarnt
waldemarnt@gmail.com
http://walde.co/
32
DICAS DE ESTUDO
Livros:
◇ NoSQL Um guia Conciso para o Mundo Emergente da
Persistência Poliglota (Pramond J. - Martin Fowler)
◇ Domain Driven Design - Atacando a complexidade no coração do
software (Eric Evans)
33

No sql no mundo da persistencia poliglota