O documento discute conceitos de escalabilidade e alta disponibilidade no WordPress. Ele explica como o desempenho do WordPress pode ser melhorado através de técnicas como o uso de CDNs, cache, balanceamento de carga e arquitetura de microsserviços.
1. Tirando leite de Pedra
Escalabilidade e Alta Disponibilidade
em WordPress
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. 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. Agenda
Conceitos Básicos sobre Escalabilidade e Alta Disponibilidade
Conceitos Básicos sobre Performance WEB
WordPress: Crescendo aos Poucos
Encerrando.....
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. 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. 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
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. 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
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. Escalando 01: Varnish / CDN
• Servidor Único:
• Varnish
• Cache em memória
• PHP
• Apache (Nginx)
• Banco de dados
16. Escalando 02: “cacheando” o
Banco
• Servidor Único:
• Varnish
• PHP
• Apache (Nginx)
• Memcached
• Chave+valor em memória
• Banco de dados
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. 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.