33
NoSQL no universo da Persistência Poliglota TCHÊLINUX- NOVO HAMBURGO

No sql no mundo da persistencia poliglota

Embed Size (px)

Citation preview

NoSQL no universo da Persistência Poliglota

TCHÊLINUX- NOVO HAMBURGO

SOU O WALDEMAR NETOMe sigam nas redes sociais como @waldemarntMeu 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 NECESSIDADEA Criação de um novo conceito chamou a atenção da comunidade.

8

A REUNIÃO DA CÚPULA11 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

CARRINHOPRODUTOS USUÁRIOS

CARRINHO

TÁ, MAS E A MAGIA DOESCALONAMENTO?

19

FLUXO DE DADOS EM BANCOS ORIENTADOS A DOCUMENTOS

CLUSTER

NODE1 NODE2

NODE3

SHARD1

SHARD3

SHARD2SHARD2

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@[email protected]://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