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.
Tirando leite dePedra
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 eufaç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 sobreEscalabilidade e Alta Disponibilidade
Conceitos Básicos sobre Performance WEB
WordPress: Crescendo aos Poucos
Encerrando.....
Características Arquiteturas
escaláveis
• Aumentode 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
Algumas validações
• MinimizeHTTP 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 precisaser “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
Instalação Padrão
• “Tudoem 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
17.
Escalando 03: SeparandoBanco
• Servidor APP:
• Varnish
• PHP
• Apache (Nginx)
• Servidor Banco de Dados:
• Memcached
• Banco de dados
Varnish
Apache
PHP
MemCached
MariaDB
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
Projeto para Pluginsde
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-UsoNã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.