O documento apresenta uma palestra sobre arquitetura de aplicações de nova geração utilizando MySQL 5.7. A palestra aborda tópicos como arquitetura de banco de dados, desenvolvimento ágil, SQL, NoSQL e NewSQL, arquitetura e alta disponibilidade do MySQL e casos de uso em empresas como Pinterest, Flickr, Facebook e Twitter.
1. Arquitetando sua aplicação de
nova geração com MySQL 5.7
MySQL
Mathias Brem
http://www.mathiasbrem.com.br
Outubro, 2015
2. Agenda
●
Introdução ( 30 minutos )
●
Aplicações de Nova Geração
●
Arquitetura do Banco de Dados
●
Arquitetura Lambda
●
Desenvolvimento Ágil
●
SQL / NoSQL / NewSQL
●
MySQL ( 1 Hora )
●
Por que? Quando ?
●
Arquitetura do MySQL
●
Alta Disponibilidade / Escalabilidade
●
Flexibilidade e Integração
●
Virtualização
●
Cloud
●
Cases ( Pinterest, Flicker, Facebook, Twitter, Booking, Linkedin )
5. ●
IaaS ( Infrastructure as a Service, AWS )
●
Desenvolvimento Ágil ( Scrum, Git, Docker )
●
Usabilidade ( Bootstrap, AngularJS, Mobile )
●
Escalabilidade ( 1,10,100,100000, infinito e além )
●
Integração com tudo e todos ( JSON, WebService, IoT )
●
Disponibilidade ( Tempo é dinheiro, parar nunca! Crescer
sempre! )
●
Startups e gigantes todos usam, faça o mesmo!
12. ●
Muitas mudanças em produção sem interrupção
●
Provisionamento de novos ambientes constantemente
●
Automatização, facilidade, agilidade
DEV
v1
HOMOLOG
DEV
v34
DEV
v35
DEV
v36
PROD
14. Schemaless / NoSQL
●
Agilizar o desenvolvimento e modificações
●
Fazer a coisa certa com a ferramenta certa
●
Performance
●
(You no have power here!!!)
●
(Well….Now you have power here!!!)
●
Um pouco de modinha também
●
Que tal misturar os dois na dose certa?
16. Schemaless / NoSQL / NewSQL
ID MODELO ANO JSONCOL XMLCOL
1 Porsche 911 2015 {“id” : 1,
“modelo” :
“Porsche 911”,
“ano”:
2015,
“cor”:
“prata”
“quilometrag
em” : 2000
}
<id>1</id>
<modelo>
Porsche 911
</modelo>
<ano>2015</ano>
<cor>prata</cor>
<quilometragem>2000<
/quilometragem>
NewSQL
mysql> SELECT * FROM carros WHERE JSONCOL->'$.id'= 1;
Ou
mysql> SELECT * FROM carros WHERE ID= 1;
17. Quando e Porque o MySQL?
●
Internet
●
Elevado número de sessões / requisições simultâneas
●
Armazenar (dados)
●
Popular / Comunidade Forte / Parrudo e Confiável
●
Simples / Multiplataforma
●
Muito Flexível ( canivete suíço, integração com shell )
●
Em constante atualização e desenvolvimento
23. ●
Replicação
●
Replicação com Sharding ( MySQL Fabric, HA
Proxy, MySQL Proxy, MaxScale, MySQL Router )
●
MySQL Cluster ( NDB )
●
Galera Cluster ( InnoDB )
●
( DRBD / Replicação de Storage / etc... )
24. Sharding
Master 1
Read / Write
Master 2
Read / Write
APP
Slave 1
Read
Slave (N)
Read
● Load Balancer
● Lógica da aplicação
● MySQL Fabric
● MySQL Router….
● (N)
● Essa parte é onde fica a treta da coisa toda...
25. APP
MySQL MySQL
Virtual IP
Replicação
Master
Read / Write
Slave
Read
logbin relay-log
SIMPLES E MUITOOO FLEXÍVEL!!!!!
Isso é o básico, com essa mesma lógica da
p/ se fazer muitas outras coisas! Veja o caso
do “Booking.com” http://blog.booking.com
27. Sharding
Master 1
Read / Write
Master 2
Read / Write
APP
Slave 1
Read
Slave (N)
Read
● Load Balancer
● Lógica da aplicação ( IF XX THEN …. )
● MySQL Fabric
● MySQL Router….
● Essa é parte onde fica a treta da coisa toda….
28. MySQL Cluster ( Network Database )
NDB
Data Node1
NDB
Data Node2
NDB
Data Node(n)
NDB
Data Node3
Dados
Connectors ( Java, C, PHP, .NET... )
SQL
Interface
Parser
Caches
& Buffers
Storage Engine ( InnoDB, MyISAM, NDB)
Binlog
Global
Files
Storage
Engine
Files
Storage
Engine
Memory
APP
S.O ( Linux, Unix )
AWS EC2
Optimizer
Connection Pool
NDB Cluster
NDB
Management
35. Container's
S.O ( Linux, Unix )
AWS EC2 / HW Próprio / Outros
Docker ( Container Daemon )
IMG
MySQL
IMG
PHP
IMG
RUBY
IMG
(N)...
http://www.alastori.com.br/2015/03/mysql-no-docker.html
36. Cloud
●
AWS
●
Docker / Container
●
Criatividade, isso conta na arquitetura, ainda mais na
cloud e faz diferença $$$
●
Veja como o MySQL já foi adequado ao AWS e as dicas
existentes, a equipe da Oracle trouxe novidades na
5.7, até backup para o S3 ele faz… Dicas de otimização
no EC2 e mais! Não se esqueça do
RDS(MySQL,MariaDB,Aurora)
●
IaaS, PaaS, DBaaS, SaaS
37. Cloud
●
IaaS, PaaS, DBaaS, SaaS
●
RDS ( Para casos simples, para quem está
começando )
●
EC2 ( Mais recomendado para montar o seu
servidor e gerenciar totalmente o banco de
dados, personalizar, etc... )