Persistência Poliglota, Big Data e NoSQL FISL 15
-
Upload
christiano-anderson -
Category
Technology
-
view
3.523 -
download
2
Transcript of Persistência Poliglota, Big Data e NoSQL FISL 15
Persistncia Poliglota
Persistncia Poliglota e NoSQL
Christiano [email protected]: @dump
Agenda
Quem sou eu
A era de ouro dos bancos relacionais
Bancos No Relacionais
Por que usar persistncia poliglota
Exemplos
Quem sou eu
Trabalha com internet/devel desde 1996;
Colabora com diversos projetos livres;
Fundador do MUG-SP;
Especialista em NoSQL / Big Data;
Blog: http://christiano.me
Twitter: @dump
Email: [email protected]
A era de ouro dosBancos relacionais
Bancos Relacionais
Opes populares, como MySQL, PostgreSQL e Oracle
Sempre foram a primeira opo ao desenvolver qualquer aplicao
Muitas ferramentas
Muita gente qualificada no mercado
Suporte amplo e fcil de encontrar, inclusive do fabricante
Acabou se tornando um padro
O modelo relacional
Dados armazenados em tabelas;
Relacionamentos;
Normalizao de dados;
Necessidade de schema;
Vantagens do modelo relacional
SQL Quase todo mundo conhece;Linguagem bem flexvel;
Muitos operadores, stored procedures, boas ferramentas;
Dados bem padronizados, normalizados;Relacionamento;
Join, group by, integridade relacional, etc
Vantagens do modelo relacional
ACIDAtomicidade (tudo ou nada);
Consistncia (validao, respeita integridade);
Isolamento (concorrncia retorna resultado vlido);
Durabilidade (uma vez gravado, definitivo)
Desvantagens do modelo relacional
Dependncia da modelagem, qualquer alterao, precisa passar por uma migrao;
Dificuldade para manter aplicaes que crescem muito rpido;
Dificuldade na EscalabilidadeVertical (o banco est lento, mete mais memria na mquina);
Compra uma mquina melhor;
E quando o banco comea ficar lento?
Contrata um cara para criar ndices
E de fato fica um pouco melhor, mas no resolve 100%
Contrata um cara para criar views e queries complexas
Melhora mais um pouco, s que vira um pesadelo para manter...
Contrata um cara para criar cache na aplicao
Fica ainda melhor, mas a informao comea ser duplicada
Not Only SQL
Novo paradigma
Na verdade, nem to novo assim;
Liberdade de schema e modelagem;
Escalabilidade horizontal (fica lento, coloca mais mquina);Pode ser mquinas comuns;
Muito fcil e simples colocar em clusterMuitos seguem o teorema de CAP
No bala de prata
Fazemos trs tipos de servios:Bom, Barato, Rpido
Se for BOM e BARATO no vai ser RPIDO
Se for BARATO e RPIDO no vai ser BOM
Se for BOM e RPIDO no vai ser BARATO
Escolha bem os recursos que precisaAbra mo de outros
Teorema de CAP
Teorema de CAP
Consistency (Todos os ns possuem o mesmo dado ao mesmo tempo);
Availability (Garantia que todas as requisies recebam um retorno true ou false)
Partition tolerance (o sistema continua operando mesmo se parte do n estive inacessvel)
De acordo com o teorema, sistemas distribudos no podem atender aos trs requisitos ao mesmo tempo, atendem um ou dois.
Desnormalizar
NoSQL no trabalha de forma normalizadaDuplicidade?
Falta de Consistncia?
Isso pode ser bom ou ruim dependendo da sua aplicao
Aprender novo modelo de fazer consultas ao banco
Muitos NoSQL no trabalham com conceito de queries, mas utilizam filtros;Voc precisa estar preparado para integrar novas formas de acesso a dados na sua aplicao
Possui curva de aprendizado (tnue, mas possui)
Esquea SQL e modelagem
Aprenda como o NoSQL funciona, nunca, mas nunca pense da mesma forma que no relacional;O segredo do sucesso chama-se Schema Design
Deixe de lado ORMs tradicionais
ORM tradicionais (como SQLAlchemy) no funcionam com NoSQL e nem vo funcionar;
Estude bem o driver apropriado da sua linguagem de programao favorita, provavelmente ter suporte ao NoSQL que voc escolher.
SQL vs NoSQL
SQLNoSQL
Uma nica mquinaUm Cluster
Escala verticalmenteEscala horizontalmente
Full IndexBaseado em chaves
SQLPossui API e filtros de pesquisa
Identifique qual NoSQL mais apropriado para sua aplicao
Orientao a Documento;
Chave/Valor;
Grafos;
Colunar;
Qual a melhor ferramenta?
Orientao a documentos
Exemplo de documento
{_id: ObjectId("53582acf31f36c9a248e4c15"),nome: Christiano Anderson,contato: {email: [email protected],celular: 11999998888,},sites: {blog: http://christiano.me,mongodb: http://www.mongodb.org},tecnologias: [mongodb,python,big data,nosql]}
Chave/Valor
Grafos
Colunar
Persistncia Poliglota
Uma aplicao eficiente aquela que atende bem seu objetivo e est sempre disponvel quando requisitada;Escalvel
Segura
Nunca o gargalo para inovaes
Persistncia Poliglota
uma boa ideia usar mais de uma soluo de persistncia:SQL onde for mais apropriado (ACID, transaes, normalizao);
NoSQL onde voc no precisa das features acima;
Exemplo: E-commerce
Catlogo de produtos a parte mais acessada de uma loja virtual, o volume de acessos alto (blackfriday, natal, dia das mes). Nem todo mundo que acessa vai comprar naquele momento. Colocar o catlogo de produtos no MongoDB pode destravar o e-commerce;
Os dados dos usurios, informaes financeiras e tudo aquilo que exige transao, fica no banco relacional (PostgreSQL por exemplo). Assim o SQL s ser acessado quando o usurio for concluir a compra.
Aproveitando melhor cada tecnologia
O exemplo do e-commerce mostra:Usa-se MongoDB para escalar bem uma parte complicada do site, onde os usurios passam maior parte de seu tempo navegando. Ganha-se agilidade, flexibilidade e escalabilidade;
Usa-se PostgreSQL somente para concluir transaes, guardar informaes pessoais dos usurios (quando est logado) e tudo que precisa de normalizao;
Ainda tem mais...
Pode usar Neo4J (Grafos) para recomendar produtos aos usurios, com base em suas preferncias de navegao e outros critrios utilizados para determinar perfil de compra de cada um.
O arquiteto de solues dos dias de hoje...
No pode ficar amarrado a uma nica soluoPrecisa escolher a que funciona para cada cenrio;
No feio usar SQL e NoSQL ao mesmo tempo, feio deixar sua aplicao morrer por no ser escalvel;
Precisa ser flexvel, adicionar novas features rapidamente (afinal, seu concorrente est em um click de distncia);
necessrio diversas ferramentas para construir uma casa
Assim como voc precisa de chave de fenda, alicate, p, martelo e outras ferramentas para construir uma casa, pode ser necessrio mais de uma soluo de persistncia para sua aplicao, extraindo o melhor que cada uma tem a oferecer.
Fica mais caro manter tudo isso?
Claro que fica! Voc vai precisar de mais mquina, pessoas qualificadas, mais infra...
Mas se voc faz sua aplicao mais rpida, estvel, segura e escalvel, vai vender mais...
Lembra do quadro Bom, Rpido e Barato? Ento, faa sua escolha.
Por onde comear
Primeiro passo entender bem a arquitetura da informao;
Conhecer um pouco de cada alternativa de persistncia;
Analisar qual melhor modelo de dados para cada caso (Documento, Chave/Valor, Colunar, Grafos);
Implementar a(s) persistncia(s) certa(s) sua aplicao;
Ter mais de uma aceitvel e recomendado
E o tempo acabou...Se no deu tempo de responder sua dvida,Me chame no corredor ou entre em contato:Twitter: @dump Email: [email protected]
OBRIGADO!!!