Tirando leite de pedra

255 visualizações

Publicada em

Palestra sobre escalabilidade e Alta disponibilidade em WordPress

Publicada em: Internet
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
255
No SlideShare
0
A partir de incorporações
0
Número de incorporações
34
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Tirando leite de pedra

  1. 1. Tirando leite de Pedra Escalabilidade e Alta Disponibilidade em WordPress
  2. 2. Daniel Checchia... Quem??? • +30(!) anos em Tecnologia - “T-Rex” evoluído  • Passagem por todos os grandes e-Commerce nacionais (americanas.com, shoptime.com, submarino.com, ingresso.com, pontofrio.com), empresas de internet (imovelweb.com, zap.com.br) e startups (psafe.com, sitepx.com). • Especializado em Arquitetura Corporativa, Infraestrutura, segurança e Cloud Computing. • Atualmente responsável em converter idéias em produtos na startuplabs.com.br – procdn.com.br e laquna.tv
  3. 3. O que eu faço da vida.... • Planejamento Estratégico TI • Arquitetura Corporativa de TI • Consultoria Estratégica • Tech Mentoring para Startups • CTO Virtual ou On Demand • Hands on • Lavo • Passo • Cozinho....
  4. 4. Agenda Conceitos Básicos sobre Escalabilidade e Alta Disponibilidade Conceitos Básicos sobre Performance WEB WordPress: Crescendo aos Poucos Encerrando.....
  5. 5. Conceitos Básicos Sobre Escalabilidade e Alta Disponibilidade
  6. 6. Características Arquiteturas escaláveis • Aumento de recursos resulta em um aumento proporcional no desempenho • é capaz de lidar com a heterogeneidade • é operacionalmente eficiente • é resiliente • deve tornar-se mais rentável quando cresce
  7. 7. Tipos de Escalabilidade • Vertical • Aumenta-se CPU, Memória e Disco • Horizontal • Máquinas pequenas • Aumenta-se o número de máquinas (pequenas) de acordo com a demanda
  8. 8. Alta Disponibilidade • OFFLine (DR) • Solução de Desaster Recovery • Backups são feitos e armazenados fora do ambiente • Stand by (Ativo-Passivo) • Uma máquina fica ativa, respondendo o site • Uma segunda máquina fica “ligada”, recebendo sincronismo de dados • ONLine (Ativo-Ativo) • Duas (ou mais) máquinas ligadas e respondendo pelo site ao mesmo tempo
  9. 9. Conceitos Básicos Sobre Performance WEB
  10. 10. Conceitos Básicos sobre Performance WEB • Melhores Práticas: • Yslow (Yahoo!) • Google PageSpeed • Google PageSpeed faz teste em mobile!
  11. 11. Algumas validações • Minimize HTTP Requests • Use a Content Delivery Network • Avoid empty src or href • Add an Expires or a Cache-Control Header • Gzip Components • Put StyleSheets at the Top • Put Scripts at the Bottom • Avoid CSS Expressions • Make JavaScript and CSS External • Reduce DNS Lookups • Minify JavaScript and CSS • Avoid Redirects • Remove Duplicate Scripts • Configure ETags • Make AJAX Cacheable • Use GET for AJAX Requests • Reduce the Number of DOM Elements • No 404s • Reduce Cookie Size • Use Cookie-Free Domains for Components • Avoid Filters • Do Not Scale Images in HTML • Make favicon.ico Small and Cacheable
  12. 12. O que precisa ser “Atacado” • Minimize HTTP Requests • Use a Content Delivery Network • Avoid empty src or href • Add an Expires or a Cache-Control Header • Gzip Components • Put StyleSheets at the Top • Put Scripts at the Bottom • Avoid CSS Expressions • Make JavaScript and CSS External • Reduce DNS Lookups • Minify JavaScript and CSS • Avoid Redirects • Remove Duplicate Scripts • Configure ETags • Make AJAX Cacheable • Use GET for AJAX Requests • Reduce the Number of DOM Elements • No 404s • Reduce Cookie Size • Use Cookie-Free Domains for Components • Avoid Filters • Do Not Scale Images in HTML • Make favicon.ico Small and Cacheable
  13. 13. Crescendo aos Poucos
  14. 14. Instalação Padrão • “Tudo em 1” ou LAMP: • Linux: • Sistema Operacional • Apache (Nginx) • Servidor WEB • PHP • Linguagem Server-side interpretada • Banco de dados • Banco de dados MySQL
  15. 15. Escalando 01: Varnish / CDN • Servidor Único: • Varnish • Cache em memória • PHP • Apache (Nginx) • Banco de dados
  16. 16. Escalando 02: “cacheando” o Banco • Servidor Único: • Varnish • PHP • Apache (Nginx) • Memcached • Chave+valor em memória • Banco de dados
  17. 17. Escalando 03: Separando Banco • Servidor APP: • Varnish • PHP • Apache (Nginx) • Servidor Banco de Dados: • Memcached • Banco de dados Varnish Apache PHP MemCached MariaDB
  18. 18. Escalando 04: Crescendo Horizontalmente • Servidor APP{n}: • Varnish • PHP • Apache (Nginx) • NFS • Network File System • Servidor Banco de Dados: • Memcached • Banco de dados MemCached MariaDB WP-ADMIN Varnish WP-Content WP-Content WP-Content WP-Content WP-Content WP-Content
  19. 19. Escalando 05: Separando FileSystem • Servidor APP{n}: • Varnish • PHP • Apache (Nginx) • Servidor Admin: • PHP • WebServer • NFS • Servidor Banco de Dados: • Memcached • Banco de dados MemCached MariaDB WP-ADMIN Varnish WP-Content WP-Content WP-Content WP-Content WP-Content WP-Content
  20. 20. Escalando 06: Suporte Especialista • HHVM • Auto Scalling • Etc....
  21. 21. Encerrando....
  22. 22. Projeto para Plugins de Escalabilidade O objetivo do projeto é a criação de plugins, scripts e ferramentas para facilitar aos desenvolvedores a implementação de todas as boas práticas de escalabilidade e disponibilidade. Procuro Desenvolvedores Voluntários! https://github.com/checchia
  23. 23. Licenciamento da Apresentação Atribuição-Uso Não-Comercial-Compatilhamento pela mesma licença 2.5 Brasil Você pode: •copiar, distribuir, exibir e executar a obra •criar obras derivadas Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Uso Não-Comercial. Você não pode utilizar esta obra com finalidades comerciais. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta.
  24. 24. Obrigado!! Daniel Checchia daniel@checchia.net @checchia Skype: daniel.checchia (11) 3010-0140 (41) 4042-1050 Site pessoal: http://Checchia.NET

×