O documento apresenta Fernando Boaglio e discute MongoDB e OpenShift. Ele explica o que é MongoDB, como surgiu, quem usa e como funciona. Também mostra como implementar um sistema de votação em filmes usando MongoDB no OpenShift e testar o desempenho na nuvem.
1. Go Fast !
Go MongoDB !
Go OpenShift !
Fernando Boaglio
fernando @ boaglio.com
boaglio
2. Quem é Fernando Boaglio?
Já foi estudante...
Linux user desde 1996
Já deu aulas...
Developer+commiter!
E começou a escrever...
● NoSQL & Data
3. Antes de começar...
Acesse a aplicação na nuvem:
http://tinyurl.com/judcon2014
e vote o filme preferido !
NoSQL & Data - http://tinyurl.com/judcon2014
4. O que é o MongoDB ?
Banco de dados baseado em documentos
• Livre (open source)
• Primeira versão estável em 2009
• classificado como NoSQL
• Escalável
• Sem schemas
• Sem transações
• Sem constraints
NoSQL & Data - http://tinyurl.com/judcon2014
5. De onde veio o MongoDB ?
1995 - Fundada DoubleClick
2005 - DoubleClick vendida por
US$1.1 bi
2007 - Fundada 10gen
2008 - Google compra DoubleClick
por US$3.1 bi
NoSQL & Data - http://tinyurl.com/judcon2014
6. De onde veio o MongoDB ?
2007 – Inicia a pesquisa por uma solução semelhante ao
GAE:
● App engine chamada ED (de Eliot e Dwight)
● Banco de dados chamado P (de Platform)
NoSQL & Data - http://tinyurl.com/judcon2014
7. De onde veio o MongoDB ?
2008 – mudaram o nome para MongoDB
NoSQL & Data - http://tinyurl.com/judcon2014
8. De onde veio o MongoDB ?
2009 – MongoDB vira opensource!
2010 – MongoDB vira “production ready”
NoSQL & Data - http://tinyurl.com/judcon2014 - ainda não votou ?
12. MongoDB no mercado
Empresas que economizaram 70% ou + mudando de Oracle para MongoDB:
http://www.mongodb.com/lp/whitepaper/tco-comparison-oracle-mongodb
NoSQL & Data - http://tinyurl.com/judcon2014
13. O que é um documento ?
Representação da informação em
formato JSON (
JavaScript Object Notation
ou
Notação de Objetos JavaScript
)
Linguagem usada é JavaScript
NoSQL & Data -http://tinyurl.com/judcon2014
14. Comparando alguns conceitos
Bancos relacionais
baseados em tabelas
NoSQL & Data - http://tinyurl.com/judcon2014
Bancos NoSQL baseados
em documentos
Tabela Collection
Coluna Campo
Linha / registro sem limite de
tamanho
Documento / registro limitados
em 16Mb
RAC Replica Set
Particionamento Sharding
Raw Device GridFS
15. Exemplo de um sistema básico...
Diversas informações em uma única página:
http://pt.wikipedia.org/wiki/Anexo:Lista_de_ganhadores_do_Pr%C3%AAmio_IgNobel
NoSQL & Data - http://tinyurl.com/judcon2014 - vote de novo!
16. Organizando os dados ...
Aprendemos a modelar os sistemas mapeando as diferentes
informações:
- principais em tabelas: tipo, premio, ano, autor
- e mais a tabela associativa premio_autor
Total: 5 tabelas
NoSQL & Data - http://tinyurl.com/judcon2014
17. Exibindo as informações...
Consulta para exibir a tela inicial:
Para exibir um prêmio com 6 autores:
tipo = 1 registro
premio = 1 registro
ano = 1 registro
autor = 6 registros
premio_autor = 6 registros
TOTAL = 15 registros
NoSQL & Data - http://tinyurl.com/judcon2014
18. Mapeando documentos...
Consulta para exibir a tela inicial:
Para exibir um prêmio com
6 autores:
premio = 1 registro
TOTAL = 1 registro
NoSQL & Data - http://tinyurl.com/judcon2014
19. Por que temos tantas tabelas ?
✔ Primeiro mapeamos as informações
✔ Depois encaixamos nas limitações de bancos relacionais
✔ E finalmente mapeamos as telas para acessar os dados
Resumindo: a aplicação é feita em função do banco !
NoSQL & Data - http://tinyurl.com/judcon2014
20. Os tempos mudaram!
✔ A maioria das aplicações não precisa ser transacional
✔ Aplicações podem ter milhares de acessos por segundo que nenhum
banco de dados relacional aguenta!
✔ Inversão de valores: quem é mais importante, uma base de dados
modelada corretamente ou uma aplicação rápida ?
Resumindo: a aplicação é mais importante que o banco !
NoSQL & Data - http://tinyurl.com/judcon2014 - deixa de preguiça e faz um voto!
21. O que é OpenShift ?
Serviço de núvem da Red Hat (público e privado)
- Criado em 2011
- Hoje roda 2 milhões de aplicações
- Engine OpenShift Origin open source:
https://install.openshift.com/
- Roda aplicações em Java, PHP, Perl,Python,etc.
- MySQL , PostgreSQL , MongoDB
- Jenkins e outras opções
NoSQL & Data - http://tinyurl.com/judcon2014
22. O nosso sistema de filmes...
NoSQL & Data - http://tinyurl.com/judcon2014
27. E conferindo os resultados...
• Testes com lista de URLs
ou JMeter
• Visualize os resultados no
seu celular (e dispare novos
testes se quiser)
NoSQL & Data
28. Se você quiser testar...
NoSQL & Data
https://github.com/boaglio/judcon2014-openshift-mongodb