2. Rafael Nunes
Sócio da YaW Tecnologia
Software Engineer at Catchafire.org
(Join Us!!)
Instrutor da Globalcode
3. Catchafire
Professional Volunteer
Tons of Nonprofits and Projects
A cause that you support, or any professional help
you can give
Can be done completely online(most of them are)
4. Modelo Relacional
Foi o primeiro modelo de dados descrito
teoriamente(Edgar Frank, 1970)
O modelo todo se baseia em entidades e relações
Tuplas com características pré-definidas
Linguagem padrão
Como costumávamos iniciar uma aplicação
5. Modelo Relacional
Desvantagens:
O modelo de dados precisa sempre estar descrito
Cada elemento da entidade, tem um tipo
específico(INT, VARCHAR)
Silver Bullet
6. NoSQL
Alternativas ao modelos relacional:
Documento, Grapho, Chave/Valor, Wide Column
MongoDB, Neo4J, Redis, Cassandra
Conhecer como se comporta a sua aplicação, para
escolher o que mais se adapta a ela
7. MongoDB
Banco de dados orientado a documentos
Baseado em objetos BSON/JSON
Um ‘Documento’ representa um objeto(Java,
Python, C#)
Documentos agregados ou arrays reduzem a
necessidade de ‘join’
Schema dinâmico
8. MongoDB
High Performance em escritas e leituras
Alta disponibilidade através de servidores
replicados
Escalabilidade ‘built-in’:
Sharding automático em coleções distribuidas
Instâncias de escrita e leitura das réplicas
10. Mais sobre MongoDB
Uma instância do Mongo é composta de
‘databases’ e ‘collections’.
Armazena objetos JSON/BSON
Schema dinâmico para cada elemento da collection
Cliente de acesso em quase todas plataformas
modernas: Java/Python/.NET/Ruby/Go/Scala/etc
13. Replicação
Modelo baseado em réplica sets
Como funciona:
Um cluster(3-12) de instâncias
Replicação automática para garantir o ‘failover’
Instâncias designadas como primária/secundária
Configuração das intâncias para definir prioridades
14. Mais sobre replicação
Inicializar com ‘—replSet name’
rs.initiate()
rs.add – para adicionar membros
15. Monitoramento
Serviço de monitoramento
Coleta dados das réplicas/instâncias e disponibiliza
um console de acesso