Arquiteturas de referência MySQL

  • 3,248 views
Uploaded on

Uma visão sobre como projetar arquiteturas web com bases de dados de alta escala, baseado em casos de referência como Facebook, Twitter e Youtube. …

Uma visão sobre como projetar arquiteturas web com bases de dados de alta escala, baseado em casos de referência como Facebook, Twitter e Youtube.

Descrição: O MySQL é utilizado na aplicação principal dos maiores websites do mundo, incluindo Facebook, Twitter, LinkedIn e YouTube, assim como em alguns dos que mais crescem, como Tumblr, Pinterest e box.com. Nesta apresentação daremos uma visão sobre como projetar arquiteturas web com bases de dados de alta escala, seja implantado no localmente ou na nuvem.
Serão apresentadas - Arquiteturas de Referência para pequeno, médio e grande porte para aplicações web e móveis, abordando tópicos como:
-Como escalar o banco de dados enquanto seu novo site, fenômeno da web, simplesmente decola
-Como proporcionar agilidade, alta-disponibilidade, segurança e gerenciamento simplificado dos dados
-Como simplificar a integração com a grandes sistemas de análise de dados e big data
-Como manter baixos níveis de custo, risco e complexidade

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
3,248
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
50
Comments
1
Likes
9

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Arquiteturas de Referência Web Conjunto de boas práticas Airton Lastori set-2014
  • 2. Safe Harbour Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Copyright © 2013, Oracle and/or its affiliates. 2 All rights reserved. |
  • 3. Copyright © 2013, Oracle and/or its affiliates. 3 All rights reserved. | s
  • 4. Agenda  Requisitos Web, níveis de escala  Arquiteturas de Referência Copyright © 2013, Oracle and/or its affiliates. 4 All rights reserved. | – Escalas & Topologias – Tecnologias envolvidas na Infraestrutura – Boas práticas  Um pouco sobre Hardware  Considerações Operacionais  Conclusão
  • 5. Desdobramentos na Infraestrutura Copyright © 2013, Oracle and/or its affiliates. 5 All rights reserved. | Ágil, aberta & adaptável Simples & replicável Baixa latência Escalável e Diponível Segurança extrema Baixo TCO
  • 6. Copyright © 2013, Oracle and/or its affiliates. 6 All rights reserved. | Fonte: http://db-engines.com/en/ranking_trend (set/14)
  • 7. MySQL é estratégico para Oracle  Soluções Completas  #1 em todos os níveis da pilha  Cloud e On Premise  MySQL: Web, Mobile & Embedded  Investimentos na Engenharia do MySQL Copyright © 2013, Oracle and/or its affiliates. 7 All rights reserved. |
  • 8. Alguns clientes MySQL Copyright © 2013, Oracle and/or its affiliates. 8 All rights reserved. |
  • 9. Compromisso Oracle com MySQL https://blogs.oracle.com/MySQL/entry/mysql_connect_keynotes_and_news Copyright © 2013, Oracle and/or its affiliates. 10 All rights reserved. |
  • 10. @MySQLBR meetup.com/MySQL-BR Copyright © 2013, Oracle and/or its affiliates. 11 All rights reserved. | facebook.com/MySQLBR MySQLBR
  • 11. Arquiteturas de Referência Copyright © 2013, Oracle and/or its affiliates. 12 All rights reserved. |
  • 12. Referências de Escala Copyright © 2013, Oracle and/or its affiliates. 13 All rights reserved. | Social Network Small Medium Large Extra Large Queries/Second <500 <5,000 10,000+ 25,000+ Transactions/Second <100 <1,000 10,000+ 25,000+ Concurrent Read Users <100 <5,000 10,000+ 25,000+ Concurrent Write Users <10 <100 1,000+ 2,500+ Database Size Sessions <2 GB <10 GB 20+ GB 40+ GB eCommerce <2 GB <50 GB 50+ GB 200+ GB Analytics (Multi-Structured Data) <10 GB <1TB 10+ TB 100+ TB Content Management (Meta-Data) <10 GB <500 GB 1+ TB 2+ TB
  • 13. Pequena Escala Copyright © 2013, Oracle and/or its affiliates. 14 All rights reserved. | Social Network Small Medium Large Extra Large Queries/Second <500 <5,000 10,000+ 25,000+ Transactions/Second <100 <1,000 10,000+ 25,000+ Concurrent <100 <5,000 10,000+ 25,000+ Read Users Concurrent Write Users <10 <100 1,000+ 2,500+ Database Size Sessions <2 GB <10 GB 20+ GB 40+ GB eCommerce <2 GB <50 GB 50+ GB 200+ GB Analytics (Multi-Structured Data) <10 GB <1TB 10+ TB 100+ TB Content Management (Meta-Data) <10 GB <500 GB 1+ TB 2+ TB
  • 14. Pequena Escala MySQL Enterprise Monitor MySQL Enterprise Backup MySQL Master MySQL Replication Backup Slave 1 Copyright © 2013, Oracle and/or its affiliates. 15 All rights reserved. |  Um único servidor para: – Perfis de usuário e sessões – eCommerce – Gerenciamento de conteúdo  Replicação MySQL – Analítico e Backups  Se o tráfego aumentar, o gerenciamento de sessões pode ser direcionado para outro servidor. Analytics Slave 2 Escalabilidade limitada. Se já é previsto aumento de demanda, inicie com Arquitetura para Média escala.
  • 15. Replicação MySQL  Duplique databases de um “master” para um “slave” – Cópias redundantes do dados, peça fundamental na Alta Dispinibilidade – Escale horizontalmente distribuindo queries nos slaves Master Copyright © 2013, Oracle and/or its affiliates. 16 All rights reserved. | Slaves Web / App Servers Writes & Reads Reads
  • 16. Boas Práticas Arquiteturas de Pequena Escala  Use o Storage Engine correto – InnoDB atende a maior parte dos cenários, default a partir do MySQL 5.5 – Atualize para MySQL 5.6  Hot Backup e Recovery rápido  Monitoramento pró-ativo  Mantenha a qualidade do tempo de reposta das queries  Auditoria  Reforçe políticas de segurança com autenticação externa  Thread Pool para escalabilidade vertical Copyright © 2013, Oracle and/or its affiliates. 17 All rights reserved. |
  • 17. 2008 até 4 CPU MySQL 5.0 MySQL AB Copyright © 2013, Oracle and/or its affiliates. 18 All rights reserved. | até 16 CPU MySQL 5.1 Sun até 32 CPU MySQL 5.5 Oracle até 48 CPU MySQL 5.6 Evolução da escalabilidade do MySQL 2009 2010 2013 Use InnoDB para usufruir melhor de hardwares modernos.
  • 18. Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl mysqld Copyright © 2013, Oracle and/or its affiliates. 19 All rights reserved. | Enterprise Management Services and Utilities Backup & Recovery Monitor Workbench Utilities Connection Pool, SQL Interface, Parser, Optimizer, Caches Clients and Apps Arquitetura MySQL Server Storage Engines InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc… Filesystems, Files & Logs Data, Index, Logs…
  • 19. 18,000 16,000 14,000 12,000 10,000 8,000 6,000 4,000 2,000 MySQL 5.6 vs. 5.5 - Leituras (Linux) Copyright © 2013, Oracle and/or its affiliates. 21 All rights reserved. | MySQL 5.6.7 MySQL 5.5.28 +234% Ganhos de Performance 0 32 64 128 256 512 Transações por Segundo Conexões Oracle Linux 6 Intel(R) Xeon(R) E7540 x86_64 MySQL leveraging: - 48 of 96 available CPU threads - 2 GHz, 512GB RAM Performance MySQL 5.6: InnoDB SysBench Benchmarks
  • 20. 12,000 10,000 8,000 6,000 4,000 2,000 MySQL 5.6 vs. 5.5 – Escritas+Leituras (Linux) Copyright © 2013, Oracle and/or its affiliates. 22 All rights reserved. | MySQL 5.6.7 MySQL 5.5.28 +151% Ganhos de Performance 0 32 64 128 256 512 Transações por Segundo Conexões Oracle Linux 6 Intel(R) Xeon(R) E7540 x86_64 MySQL leveraging: - 48 of 96 available CPU threads - 2 GHz, 512GB RAM Performance MySQL 5.6: InnoDB SysBench Benchmarks
  • 21. Copyright © 2013, Oracle and/or its affiliates. 23 All rights reserved. |
  • 22. Copyright © 2013, Oracle and/or its affiliates. 24 All rights reserved. | Performance Security Availability
  • 23. MySQL Enterprise Backup  Backup online para InnoDB, tamanho ilimitado  Backups automatizados: completos, incrementais, parciais  Compressão, Criptografia  Metadados de status, progresso e histórico  Compatível SBT, Oracle Secure Backup  Suporte Cloud (Amazon S3)  Point in Time Recovery, Parcial ou Completo  Multi-Plataforma: Windows, Linux, Unix Copyright © 2013, Oracle and/or its affiliates. 25 All rights reserved. | MEB Backup Files MySQL Database Files mysqlbackup Backup e Recovery mais rápidos e online.
  • 24. MySQL Enterprise Audit 1. DBA habilita no Server1 2. Usuário conecta-se e executa queries Copyright © 2013, Oracle and/or its affiliates. 27 All rights reserved. | Server1 3. Conexões e queries dos usuários aparecem no log
  • 25. MySQL Enterprise Security External Authentication Plug-Ins Copyright © 2013, Oracle and/or its affiliates. 29 All rights reserved. | Authenticate CREATE USER win_joe IDENTIFIED WITH authentication_windows AS ‘joe'; LDAP/AD PAM / Windows Auth Usuário/senha definidos no diretório Privilégios definidos no MySQL e mapeados para usuários/grupos do diretório
  • 26. 60x Melhor Escalabilidade comThread Pool Copyright © 2013, Oracle and/or its affiliates. 31 All rights reserved. | MySQL 5.6.11 Oracle Linux 6.3, Unbreakable Kernel 2.6.32 4 sockets, 24 cores, 48 Threads Intel(R) Xeon(R) E7540 2GHz CPUs 512GB DDR3 RAM Thread Pool habilitado/desabilitado
  • 27. Thread Pool habilitado/desabilitado 18x Melhor Escalabilidade com Thread Pool Copyright © 2013, Oracle and/or its affiliates. 32 All rights reserved. | MySQL 5.6.11 Oracle Linux 6.3, Unbreakable Kernel 2.6.32 4 sockets, 24 cores, 48 Threads Intel(R) Xeon(R) E7540 2GHz CPUs 512GB DDR3 RAM
  • 28. MySQL Enterprise Encryption Standards Based Cryptography  MySQL encryption libraries – Symmetric encryption AES256 – Public-key / asymmetric cryptography  Key management – Generate public and private keys – Key exchange methods: RSA, DSA, DH  Sign and verify data – Cryptographic hashing for digital signing, verification, & validation Copyright © 2013, Oracle and/or its affiliates. 33 All rights reserved. | 3
  • 29. Média Escala Copyright © 2013, Oracle and/or its affiliates. 34 All rights reserved. | Social Network Small Medium Large Extra Large Queries/Second <500 <5,000 10,000+ 25,000+ Transactions/Second <100 <1,000 10,000+ 25,000+ Concurrent <100 <5,000 10,000+ 25,000+ Read Users Concurrent Write Users <10 <100 1,000+ 2,500+ Database Size Sessions <2 GB <10 GB 20+ GB 40+ GB eCommerce <2 GB <50 GB 50+ GB 200+ GB Analytics (Multi-Structured Data) <10 GB <1TB 10+ TB 100+ TB Content Management (Meta-Data) <10 GB <500 GB 1+ TB 2+ TB
  • 30. Média Escala Copyright © 2013, Oracle and/or its affiliates. 35 All rights reserved. |
  • 31. Boas Práticas Arquiteturas de Média Escala  Proporção de 10 servidores de aplicação para cada MySQL Server – Mais para aplicações PHP, menos para Java – Adicione mais slaves quando a camada de aplicação escalar  Camada de Cache para gerenciamento de sessões & componentes do Gerenciador de Conteúdo – Memcached ou Redis são comuns – Leituras atendidas pelo cache, aliviando a carga no MySQL – API NoSQL Memcached do MySQL 5.6 ou MySQL Cluster podem implementar compressão e/ou persistência nas camadas de cache Copyright © 2013, Oracle and/or its affiliates. 36 All rights reserved. |
  • 32. Boas Práticas – Gerenciador de Contéudo Arquiteturas de Média Escala Copyright © 2013, Oracle and/or its affiliates. 37 All rights reserved. | XOR  Cada slave atende por volta de 5.000 usuários simultâneos  Cada master atende por volta de 20 slaves – Mais slaves podem ser necessários em ambientes maiores  Replicação do MySQL para alta disponibilidade e escalabilidade horizontal  Meta dados dos arquivos gerenciados pelo MySQL  Distributed File System / CDN / Cloud (e. S3) para armazenamento físico dos arquivos – SAN de alta qualidade, com redundancia para HA, ou – Hardware commodity com software especializado (ex. MogileFS)
  • 33. Boas Práticas – Sessões e e-Commerce Arquiteturas de Média Escala  Gerenciamento de Sessões & e-Commerce – Dados das Sessões mantidos por aproximadamente 1 hora em uma partição dedicada; partições antiga são excluídas – API NoSQL Memcached do MySQL 5.6 ou MySQL Cluster ser usadas – Alta diponibilidade em e-Commerce:  Semi-Synchronous Replication or clusterização via DRBD ou shared storage – Se o tráfego aumentar, mova o Gerenciamento de Sessões para o MySQL Cluster  Persistência dos dado de sessão em tempo real, dados in-memory reduzem a necessidade caching  99,999% de disponibilidade (multi-master), elimina necessidade de DRBD ou shared storage  Bases separadas para Dados Analíticos (ex. Data Mart, Relatórios) Copyright © 2013, Oracle and/or its affiliates. 38 All rights reserved. |
  • 34. Alta-Disponibilidade: soluções certificadas Copyright © 2013, Oracle and/or its affiliates. 39 All rights reserved. |
  • 35. Replicação melhorada no MySQL 5.6 Copyright © 2013, Oracle and/or its affiliates. 41 All rights reserved. |  Mais performance com multi-threaded slaves, row image minimal, binlog group commit  Maior robustez e consistência com event checksums, crash safe slaves  Mais flexibilidade e disponibilidade com GTID, self-healing, auto-failover, Replication Utilities e MySQL Enterprise Monitor Master # Slave #
  • 36. Disponibilidade com Replicação no MySQL 5.6 Replication HA Utilities (Python) Slave Promovido para Master Copyright © 2013, Oracle and/or its affiliates. 42 All rights reserved. |  Permite self-healing  Failover & recovery automatizado - mysqlfailover (Utilitário)  Switchover & administração - mysqlrpladmin (Utilitário) Monitoramento HA Utilities  Alta disponibilidade com MySQL core - Elimina necessidade de soluções de terceiros; Fácil de estender Master Falhou Slaves
  • 37. Clusterização baseada em Shared-Storage • Soluções homologadas e suportadas pela Oracle MySQL – Oracle Clusterware – Oracle VM Template – Windows Failover Clustering – Oracle Solaris Cluster Copyright © 2013, Oracle and/or its affiliates. 43 All rights reserved. | VIP Clients
  • 38. Oracle Clusterware MySQL Grid Control Agent for Clusterware  http://www.oracle.com/technetwork/database/database-technologies/ clusterware/downloads/index.html Copyright © 2013, Oracle and/or its affiliates. 44 All rights reserved. |
  • 39. Oracle VM Template for MySQL Enterprise Secure Live Migration (SSL) Oracle VM Server Pool Oracle VM Servers ocfs2 Oracle VM Manager SAN / iSCSI Copyright © 2013, Oracle and/or its affiliates. 45 All rights reserved. | Oracle VM Automatic Fault Detection & Recovery Oracle VM • Oracle Linux • Oracle VM • Oracle VM Template for MySQL EE • Oracle Cluster File System 2 (OCFS2) • MySQL Database 5.5 Enterprise Edition Pré-instalado & Configurado Integrado & Testado Suporte de um único fornecedor mysql.com/why-mysql/white-papers/mysql_wp_oracle-vm-template-for-mee.php
  • 40. oracle.com/technetwork/server-storage/solaris-cluster/overview/index.html Copyright © 2013, Oracle and/or its affiliates. 46 All rights reserved. | • Heartbeat e monitoramento baseado no Kernel • SPARC e x86. Solaris Virtualization-aware • Agente MySQL incluíd o no Oracle Solaris Cluster Oracle Solaris Clustering
  • 41. Windows Server Failover Clustering Slave App App Copyright © 2013, Oracle and/or its affiliates. 47 All rights reserved. |  Opção nativa do Windows certificada para MySQL Enterprise  Para Falhas ou Manutenção Planejada  Cluster gerenciado pela interface snap-in MS Failover Cluster Management*, não requer scripts customizados  Perda de serviço = alguns segundos + tempo de recovery do InnoDB: • Aplicação vê temporariamente uma perda de conexão e reconecta no mesmo IP • Slave na Replicação recupera-se automaticamente  Quorum (3o voto), dados (InnoDB + schema) & binários (opcional) em armazenamento compartilhado • teste com iSCSI & FCAL *suporte técnico do componente MS Failover Cluster Management deve ser contratado da Microsoft App Virtual IP Data Bin Vote mysql.com/why-mysql/white-papers/mysql_wp_windows_failover_clustering.php
  • 42. Oracle Linux + DRBD Stack mysql.com/why-mysql/white-papers/mysql_wp_drbd.php Copyright © 2013, Oracle and/or its affiliates. 48 All rights reserved. | • Certificado e completamente suportado pela Oracle • DRBD integrado ao Oracle Linux Unbreakable Enterprise Kernel R2 • Pacemaker e Corosync para clustering & failover • Updates na pilha via ULN channel • Baseado em storage distribuído, não requer SAN • Replicação síncrona elimina o risco de perda de dados • Maduro & já utilizado em muitos casos
  • 43. MySQL Cluster • Escalabilidade linear de Escritas e Leituras • Elasticidade, crescimento incremental, distrib. simétrica Escalabilidade • 99,999% de disponibilidade, 5min / ano • Self-healing, failover menor que 1s, geo-replicação Alta Disponibilidade • Performance em tempo real, in-memory e em disco • Latência baixa e preditiva, acessos paralelos Alta Performance • Modelo relacional ACID, SQL e Foreign Keys • APIs NoSQL (C++, Java, Memcached, Node.js) Flexibilidade • Open Source, suporte e ferramentas comerciais opcionais • Hardware commodity Baixo TCO Copyright © 2013, Oracle and/or its affiliates. 49 All rights reserved. |
  • 44. Arquitetura MySQL Cluster Connection Pool, SQL Interface, Parser, Optimizer, Caches NDB NDB Cluster Data Nodes Copyright © 2013, Oracle and/or its affiliates. 50 All rights reserved. | Clients and Apps Enterprise Management Services and Utilities Backup & Recovery Monitor Workbench Utilities Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl Storage Engines InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc… Filesystems, Files & Logs Data, Index, Logs… mysqld ndbd mgm_ndbd Management
  • 45. Arquitetura MySQL Cluster Copyright © 2013, Oracle and/or its affiliates. 51 All rights reserved. | API Nodes Data Nodes ndbd ndbd Management mgm_ndbd Clients Application Layer Data Layer ndbd ndbd
  • 46. Soluções de HA homologadas pela Oracle MySQL Replication Copyright © 2013, Oracle and/or its affiliates. 53 All rights reserved. | MySQL Fabric Oracle VM Template Solaris Cluster Windows Cluster DRBD MySQL Cluster Clustering Mode Master + Slaves Master + Slaves Active/Pass ive Active/Pass ive Active/Passi ve Active/Pa ssive Multi- Master App Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ Data Layer Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ Zero Data Loss MySQL 5.7 ✔ ✔ ✔ ✔ ✔ ✔ Failover Time N/A Secs Secs + Secs + Secs + Secs + < 1 Sec Scale-out Reads ✔ ✖ ✖ ✖ ✖ ✔ Cross-shard operations N/A ✖ N/A N/A N/A N/A ✔ Transparent routing ✖ For HA ✔ ✔ ✔ ✔ ✔ Shared Nothing ✔ ✔ ✖ ✖ ✖ ✔ ✔ Storage Engine InnoDB InnoDB InnoDB InnoDB InnoDB InnoDB NDB Single Vendor Support ✔ ✔ ✔ ✔ ✖ ✔ ✔ Platform Support All All Linux Solaris Windows Linux All
  • 47. Grande Escala Copyright © 2013, Oracle and/or its affiliates. 54 All rights reserved. | Social Network Small Medium Large Extra Large Queries/Second <500 <5,000 10,000+ 25,000+ Transactions/Second <100 <1,000 10,000+ 25,000+ Concurrent <100 <5,000 10,000+ 25,000+ Read Users Concurrent Write Users <10 <100 1,000+ 2,500+ Database Size Sessions <2 GB <10 GB 20+ GB 40+ GB eCommerce <2 GB <50 GB 50+ GB 200+ GB Analytics (Multi-Structured Data) <10 GB <1TB 10+ TB 100+ TB Content Management (Meta-Data) <10 GB <500 GB 1+ TB 2+ TB
  • 48. Grande Escala Session Management eCommerce MySQL Servers Copyright © 2013, Oracle and/or its affiliates. 55 All rights reserved. | Content Management MySQL Master Slave N Slave 6 Slave 7 Slave 8 Slave 9 Slave 10 Slave 1 MySQL Servers Node Group 2 Analytics MySQL Master MySQL Enterprise Monitor Slave 2 Slave 3 Slave 4 Slave 5 Slave 2 F2 F4 Node 4 Node 3 F2 F4 Node Group 1 F1 F3 Node 4 Node 3 F1 F3 MySQL Cluster Data Nodes Node Group 2 F2 F4 Node 4 Node 3 F2 F4 Node Group 1 F1 F3 Node 4 Node 3 F1 F3 MySQL Cluster Data Nodes Slave 1 Slave 3 Hadoop Cluster MySQL Enterprise Backup Caching / Application Servers Distributed Storage XOR
  • 49. Caso de uso: Loja On-Line Usuários Navegação Recomendações Copyright © 2013, Oracle and/or its affiliates. 56 All rights reserved. | Web Logs: Páginas Visitadas, Comentários, Posts Perfil, Histórico de Compras Recomendações Interações em Mídias Sociais, Preferências, Marcas com “Curtir” Conversas Telefônicas, mensagens
  • 50. Caso de Sucesso Big Data  sistema de publicidade online que identifica o visitante e exibe conteúdo direcionado ao seu perfil  2 TB de web logs são capturados, com 22 bilhões de linhas por mês processadas pelo MySQL  Atualmente, considerando apenas uma instância MySQL, há 8 TB de dados armazenados com 5GB de crescimento por dia Copyright © 2013, Oracle and/or its affiliates. 57 All rights reserved. | “O MySQL é uma parte essencial da nossa estratégia de Big Data. A integração com Hadoop permite-nos melhorar e crescer o nosso negócio de publicidade digital com rapidez e agilidade.” Josafá Santos IT Manager, boo-box mysql.com/why-mysql/case-studies/1billion-advertisements-mysql-hadoop.html
  • 51. Big Data Lifecycle com MySQL+Hadoop DECIDE BI Solutions Copyright © 2013, Oracle and/or its affiliates. 58 All rights reserved. | ACQUIRE Hadoop Applier ANALYZE ORGANIZE
  • 52. Novo: MySQL Hadoop Applier Copyright © 2013, Oracle and/or its affiliates. 59 All rights reserved. |  Integração em tempo real do MySQL para Hadoop  Cada tabela mapeada para um diretório Hive data warehouse  Possibilita usufruir de ferramentas de análise do eco-sistema Hadoop  Construído sobre MySQL Binlog API e libhdfs library  Artigos dev.mysql.com  Download labs.mysql.com
  • 53. Mais sobre como MySQL e Big Data Copyright © 2013, Oracle and/or its affiliates. 60 All rights reserved. | Whitepaper: MySQL and Hadoop – Big Data Integration December 2012 mysql.com/why-mysql/white-papers/mysql-and- hadoop-guide-to-big-data-integration
  • 54. Flexibilidade MySQL 5.6: InnoDB NoSQL com Memcached Application/Client NoSQL (Memcached Prot.) MySQL Server Memcached plugin Copyright © 2013, Oracle and/or its affiliates. 61 All rights reserved. | Acesso chave-valor ao InnoDB Via Memcached API Usa clients Memcached existentes Sem SQL parsing, ultra-rápido Acesso SQL e NotOnlySQL Operações chave-valor mas também queries SQL, JOINs, FKs, etc. Memcached com Persistência no InnoDB Método transparente para persistir os dados em memória volátil Memcached plug-in no mysqld , mapeado à API nativa do InnoDB Shared process para baixa latência SQL (MySQL Client) InnoDB Storage Engine mysqld http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached.html
  • 55. MySQL 5.7: InnoDB Memcached Contribuição do Facebook 1400000 1200000 1000000 800000 600000 400000 200000 Copyright © 2013, Oracle and/or its affiliates. 62 All rights reserved. | Intel(R) Xeon(R) CPU X7560 x86_64 8 sockets x 6 cores-HT (96 CPU threads) 2000Mhz, 256G RAM Oracle Linux 6.2 1,150,000 QPS 6x mais rápido que o MySQL 5.6 0 8 16 32 64 128 256 512 1024 Queries per Second Concurrent User Sessions 5.7.3 5.6
  • 56. Escala Extra Grande (Redes Sociais) Copyright © 2013, Oracle and/or its affiliates. 63 All rights reserved. | Social Network Small Medium Large Extra Large Queries/Second <500 <5,000 10,000+ 25,000+ Transactions/Second <100 <1,000 10,000+ 25,000+ Concurrent <100 <5,000 10,000+ 25,000+ Read Users Concurrent Write Users <10 <100 1,000+ 2,500+ Database Size Sessions <2 GB <10 GB 20+ GB 40+ GB eCommerce <2 GB <50 GB 50+ GB 200+ GB Analytics (Multi-Structured Data) <10 GB <1TB 10+ TB 100+ TB Content Management (Meta-Data) <10 GB <500 GB 1+ TB 2+ TB
  • 57. Extra Large: Social Network Shard Catalog MySQL Servers Authentication MySQL Servers Copyright © 2013, Oracle and/or its affiliates. 64 All rights reserved. | MySQL Master Slave 2 Analytics Node Group 2 F2 F4 Node 4 Node 3 F2 F4 Node Group 1 F1 F3 Node 4 Node 3 F1 F3 MySQL Cluster Data Nodes Slave 1 Slave 3 Hadoop Cluster MySQL Enterprise Backup Node Group 2 F2 F4 Node 4 Node 3 F2 F4 Node Group 1 F1 F3 Node 4 Node 3 F1 F3 MySQL Cluster Data Nodes App /Caching Servers Central Databases Shards Customers 1% – 33% Customers 34% – 66% Customers 67% – 100% Slave 1 Slave 2 Slave N MySQL Enterprise Monitor Slave 1 Slave 2 Slave N Slave 1 Slave 2 Slave N
  • 58. Boas Práticas Arquiteturas de Escala Extra Grande  Introdução de técnicas de Sharding – Normalmente implementado na camada de aplicação para escalar um volume muito alto de escritas (ex. Youtube Vitess, Twitter Gizzard, Tumblr JetPants etc) – Dados divididos em pequenos conjuntos, distribuído em servidores de baixo custo – Distribuição baseada em Hash de uma única coluna (ex. User ID) – Particionamento Funcional também é uma opção  Use com moderação, certifique-se de tentar as recomendações anteriores – Replicação convencional e escalabilidade vertical serão suficientes em muitos casos, com menor complexidade – Sharding é realmente necessário em uma pequena porcentagem de casos – Muitos serviços Web & Mobile ainda possuem mais leituras que escritas – MySQL Cluster implementa Auto-Sharding com JOINs entre shards Copyright © 2013, Oracle and/or its affiliates. 65 All rights reserved. |
  • 59. Sharding Implementation Master Slave Clients Copyright © 2013, Oracle and/or its affiliates. 66 All rights reserved. | Slaves Shards Reads Writes Partitioning Logic 1 2 3 4 5
  • 60. MySQL Fabric 1.4 RC (MySQL Utilities 1.4.2) Alta-disponibilidade + escalabilidade de escrita com sharding SQL Copyright © 2013, Oracle and/or its affiliates. 67 All rights reserved. |  Alta disponibilidade: – Monitoramento do Server com failover automático e transparente para aplicação  Conectores devem ser “Fabric-aware”: – Java, PHP, Python  Sem Proxy, sem latencia extra e SPoF  Escalabilidade de escrita com sharding: – Aplicação define a shard key (Range ou Hash) – Ferramentas para re-sharding – Tabelas globais & global updates MySQL Fabric Read-slaves Master group Read-slaves Master group
  • 61. Hardware Copyright © 2013, Oracle and/or its affiliates. 68 All rights reserved. |
  • 62. The Perfect MySQL Server  Up to 64 x86-64 bit CPU threads (MySQL 5.6 and above).  Recommended RAM at least equal to or larger than “hottest” (most regularly accessed) data set.  Linux, Oracle Solaris or Microsoft Windows operating systems.  Minimum of 4 x SSDs or HDDs. 8 – 16 drives will increase performance for I/O intensive applications. – Hardware RAID with battery-backed cache. – RAID 10 recommended. RAID 5 is suitable if the workload is read-intensive.  2 x Network Interface Cards and 2 x Power Supply Units for redundancy. Copyright © 2013, Oracle and/or its affiliates. 69 All rights reserved. |
  • 63. MySQL Cluster Hardware Selection SQL Layer • 4 - 24 x86-64 bit CPU threads • Minimum 4GB of RAM • Memory not as critical at this layer • Requirements influenced by connections and buffers. • 2 x Network Interface Cards & 2 x PSUs • Linux, Solaris or Windows operating systems. Copyright © 2013, Oracle and/or its affiliates. 70 All rights reserved. |
  • 64. MySQL Cluster Hardware Selection Data Layer • Up to 64 x86-64 bit CPU threads • Use high frequency: enables faster processing of messages • Calculating RAM per Data Node (in-memory database) • Database Size * # Replicas * 1.25 / # data node • 50GB database * 2 replicas * 1.25 / 2 data nodes = 64GB of RAM • Non-indexed columns can be stored on disk, reduces RAM requirements • 2 x NICs and 2 x PSUs • Deep-dive into network best-practices in Ref Archs Guide Copyright © 2013, Oracle and/or its affiliates. 71 All rights reserved. |
  • 65. MySQL Cluster Hardware Selection Disk Subsystem for Checkpointing Entry-Level Mid-Range High-End LCP REDOLOG 1 x SATA 7200 RPM • For read-mostly • No redundancy (but other data node is the mirror) LCP REDOLOG 1 x SAS 10K RPM or SSD • Heavy duty (many MB/s) • No redundancy (but other data node is the mirror) Copyright © 2013, Oracle and/or its affiliates. 72 All rights reserved. | LCP / REDOLOG 4 x SAS 10-15K RPM or SSDs • Heavy duty (many MB/s) • Disk redundancy (RAID1+0), hot swap • REDO, LCP, BACKUP – written sequentually in small chunks (256KB) • If possible, use Odirect = 1
  • 66. MySQL Cluster Hardware Selection Disk Data Storage Recommended Minimum High-End Recommendation LCP REDOLOG UNDOLOG TABLESPACE 2 x SAS 10K RPM or 2 x SSD • Use High-End Recommendation for heavy read / write workloads (REDO LOG) TABLESPACE 1 TABLESPACE 2 (REDO LOG / UNDO LOG) • (1000's of 10KB records per sec) of data (i.e. Content Delivery platforms) • Having TABLESPACE on separate disk is good for read performance • Enable WRITE_CACHE on devices Copyright © 2013, Oracle and/or its affiliates. 73 All rights reserved. | UNDOLOG LCP 4 x SAS 10-15K RPM or SSD
  • 67. Considere MySQL Enterprise para implementar boas práticas operacionais Copyright © 2013, Oracle and/or its affiliates. 74 All rights reserved. |
  • 68. MySQL Enterprise Edition Subscrição com renovação anual: ferramentas + serviços Copyright © 2013, Oracle and/or its affiliates. 75 All rights reserved. | Plug-ins Suporte Backup Monitor & Workbench Escalabilidade Segurança Auditoria
  • 69. MySQL Cluster Carrier-Grade Edition Subscrição com renovação anual: ferramentas + serviços Copyright © 2013, Oracle and/or its affiliates. 76 All rights reserved. | Cluster Plug-ins Suporte Backup Monitor & Workbench Cluster Manager Gerenciamento Consolidado
  • 70. Conclusão Copyright © 2013, Oracle and/or its affiliates. 77 All rights reserved. |  Foco no mercado e soluções web  Recomendações baseadas em casos de muito sucesso da web  Considerar os desafios operacionais de escalabilidade, performance e alta-disponibilidade
  • 71. Saiba Mais  MySQL Web Reference Architectures Whitepaper http://www.mysql.com/why-mysql/white-papers/mysql_wp_high-availability_webrefarchs.php  MySQL 5.6: Developer and DBA Guide http://www.mysql.com/why-mysql/white-papers/whats-new-mysql-5-6/  MySQL Enterprise com Suporte Consultivo marcos.trujillo@oracle.com Copyright © 2013, Oracle and/or its affiliates. 78 All rights reserved. |
  • 72. Treinamentos e certificações MySQL DBA MySQL for Beginners Ed 3 MySQL for Database Administrators Ed 2 MySQL Performance Tuning MySQL High Availability MySQL Cluster Copyright © 2013, Oracle and/or its affiliates. 79 All rights reserved. | MySQLDeveloper Introduction to MySQL 5.5 MySQL for Beginners Ed 3 MySQL and PHP Developing Dynamic Web Applications MySQL for Developers Ed 2 MySQL Developers Techniques MySQL Advanced Stored Procedures Certificações Oracle Certified Associate, MySQL 5 Oracle Certified Professional, MySQL 5.6 Oracle Certified Expert, MySQL Cluster DBA Oracle Certified Professional, MySQL 5 education.oracle.com/mysql DBA Developer Opcional Necessário
  • 73. @MySQLBR meetup.com/MySQL-BR Copyright © 2013, Oracle and/or its affiliates. 80 All rights reserved. | facebook.com/MySQLBR Obrigado!
  • 74. Arquiteturas de Referência Web Conjunto de boas práticas Perguntas?