Go Fast ! Go MongoDB !Go OpenShift !
Fernando Boagliofernando @ boaglio.com boaglio
Quem é Fernando Boaglio?Já foi estudante...
Linux user desde 1996
Já deu aulas...
Developer+commiter!
E começou a escrever...
●NoSQL & Data
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
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
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
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
De onde veio o MongoDB ?2008 – mudaram o nome para MongoDB
NoSQL & Data - http://tinyurl.com/judcon2014
De onde veio o MongoDB ?2009 – MongoDB vira opensource!
2010 – MongoDB vira “production ready”
NoSQL & Data - http://tinyurl.com/judcon2014 - ainda não votou ?
MongoDB – quem usa ?
NoSQL & Data
MongoDB no mercadohttp://db-engines.com/en/ranking
NoSQL & Data - http://tinyurl.com/judcon2014
MongoDB no mercado
NoSQL & Data - http://tinyurl.com/judcon2014
MongoDB no mercadoEmpresas 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
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
Comparando alguns conceitos
NoSQL & Data - http://tinyurl.com/judcon2014
Bancos relacionais baseados em tabelas
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
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!
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
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
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
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
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!
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
O nosso sistema de filmes...
NoSQL & Data - http://tinyurl.com/judcon2014
Gerenciando o MongoDB...
NoSQL & Data - http://tinyurl.com/judcon2014
Total de votos...
NoSQL & Data - http://tinyurl.com/judcon2014
Testando na nuvem...
NoSQL & Data - http://tinyurl.com/judcon2014
http://blazemeter.com
Cadastrando o teste...
NoSQL & Data - http://tinyurl.com/judcon2014
E conferindo os resultados...
NoSQL & Data
• Testes com lista de URLsou JMeter• Visualize os resultados no seu celular (e dispare novostestes se quiser)
Se você quiser testar...
NoSQL & Data
https://github.com/boaglio/judcon2014-openshift-mongodb
E pra terminar...em breve...
http
:/ /w
ww
.cas
ado
c od
i go
.com
.br
NoSQL & Data
NoSQL & Data
Eu podia tá roubando, tá matando...
Mas estou usando e !!!
Na sua próxima aplicação, lembre-se da gente!
Obrigado !
Recommended