SlideShare uma empresa Scribd logo
1 de 24
Tirando leite de Pedra
Escalabilidade e Alta Disponibilidade
em WordPress
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
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....
Agenda
Conceitos Básicos sobre Escalabilidade e Alta Disponibilidade
Conceitos Básicos sobre Performance WEB
WordPress: Crescendo aos Poucos
Encerrando.....
Conceitos Básicos
Sobre Escalabilidade e Alta Disponibilidade
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
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
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
Conceitos Básicos
Sobre Performance WEB
Conceitos Básicos sobre
Performance WEB
• Melhores Práticas:
• Yslow (Yahoo!)
• Google PageSpeed
• Google PageSpeed faz teste
em mobile!
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
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
Crescendo aos Poucos
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
Escalando 01: Varnish / CDN
• Servidor Único:
• Varnish
• Cache em memória
• PHP
• Apache (Nginx)
• Banco de dados
Escalando 02: “cacheando” o
Banco
• Servidor Único:
• Varnish
• PHP
• Apache (Nginx)
• Memcached
• Chave+valor em memória
• Banco de dados
Escalando 03: Separando Banco
• Servidor APP:
• Varnish
• PHP
• Apache (Nginx)
• Servidor Banco de Dados:
• Memcached
• Banco de dados
Varnish
Apache
PHP
MemCached
MariaDB
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
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
Escalando 06: Suporte Especialista
• HHVM
• Auto Scalling
• Etc....
Encerrando....
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
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.
Obrigado!!
Daniel Checchia
daniel@checchia.net
@checchia
Skype: daniel.checchia
(11) 3010-0140
(41) 4042-1050
Site pessoal:
http://Checchia.NET

Mais conteúdo relacionado

Mais procurados

Bancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureBancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureJoel Rodrigues
 
4° Cloud Girls SP - Levando meu desenvolvimento para nuvem com Microsoft Azure
4° Cloud Girls SP - Levando meu desenvolvimento para nuvem com Microsoft Azure4° Cloud Girls SP - Levando meu desenvolvimento para nuvem com Microsoft Azure
4° Cloud Girls SP - Levando meu desenvolvimento para nuvem com Microsoft AzureJaqueline Ramos
 
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Alvaro Viebrantz
 
Soluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudSoluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudAlvaro Viebrantz
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDBDavid de Lucca
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
Lgpd webinar hashitalks brasil 2020
Lgpd webinar   hashitalks brasil 2020Lgpd webinar   hashitalks brasil 2020
Lgpd webinar hashitalks brasil 2020Stenio Ferreira
 
Arquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google CloudArquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google CloudAlvaro Viebrantz
 
Azure na pratica - Mini Curso Infraestrutura na Nuvem
Azure na pratica -  Mini Curso Infraestrutura na NuvemAzure na pratica -  Mini Curso Infraestrutura na Nuvem
Azure na pratica - Mini Curso Infraestrutura na NuvemDiego Moreira Matos
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureGiovanni Bassi
 
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPNovidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPLuiz Henrique Zambom Santana
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...Walter Coan
 

Mais procurados (20)

Bancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureBancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft Azure
 
4° Cloud Girls SP - Levando meu desenvolvimento para nuvem com Microsoft Azure
4° Cloud Girls SP - Levando meu desenvolvimento para nuvem com Microsoft Azure4° Cloud Girls SP - Levando meu desenvolvimento para nuvem com Microsoft Azure
4° Cloud Girls SP - Levando meu desenvolvimento para nuvem com Microsoft Azure
 
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
 
Streaming architecture with big data clusters
Streaming architecture with big data clustersStreaming architecture with big data clusters
Streaming architecture with big data clusters
 
Soluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudSoluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google Cloud
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDB
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Sql server 2019 big data cluster
Sql server 2019 big data clusterSql server 2019 big data cluster
Sql server 2019 big data cluster
 
Ingestão de Dados
Ingestão de DadosIngestão de Dados
Ingestão de Dados
 
Lgpd webinar hashitalks brasil 2020
Lgpd webinar   hashitalks brasil 2020Lgpd webinar   hashitalks brasil 2020
Lgpd webinar hashitalks brasil 2020
 
Meetup Everis Cassandra
Meetup Everis CassandraMeetup Everis Cassandra
Meetup Everis Cassandra
 
Data Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na práticaData Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na prática
 
Arquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google CloudArquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google Cloud
 
FLISOL 2017 - SQL Server no Linux
FLISOL 2017 - SQL Server no LinuxFLISOL 2017 - SQL Server no Linux
FLISOL 2017 - SQL Server no Linux
 
Azure na pratica - Mini Curso Infraestrutura na Nuvem
Azure na pratica -  Mini Curso Infraestrutura na NuvemAzure na pratica -  Mini Curso Infraestrutura na Nuvem
Azure na pratica - Mini Curso Infraestrutura na Nuvem
 
Cassandra NoSQL JUG Vale 2012
Cassandra NoSQL JUG Vale 2012Cassandra NoSQL JUG Vale 2012
Cassandra NoSQL JUG Vale 2012
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows Azure
 
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPNovidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHP
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
 

Semelhante a Como escalar WordPress

Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Rodolfo Fadino Junior
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...Cleber Dantas
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoDavid Robert Camargo de Campos
 
Construindo Data Lakes e Analytics na AWS - BDA301 - Sao Paulo Summit
Construindo Data Lakes e Analytics na AWS -  BDA301 - Sao Paulo SummitConstruindo Data Lakes e Analytics na AWS -  BDA301 - Sao Paulo Summit
Construindo Data Lakes e Analytics na AWS - BDA301 - Sao Paulo SummitAmazon Web Services
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Luis Cipriani
 
Case PHP como base de digital asset management arizona
Case PHP como base de digital asset management arizonaCase PHP como base de digital asset management arizona
Case PHP como base de digital asset management arizonaiMasters
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance RailsVitor Pellegrino
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperCesar Romero
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralFabio Hara
 
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Rafael Schettino
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATALeonardo Dias
 

Semelhante a Como escalar WordPress (20)

Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 
Como um grande sistema REST funciona
Como um grande sistema REST funcionaComo um grande sistema REST funciona
Como um grande sistema REST funciona
 
Aceleracao+conteudo+dinamico
Aceleracao+conteudo+dinamicoAceleracao+conteudo+dinamico
Aceleracao+conteudo+dinamico
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
 
Construindo Data Lakes e Analytics na AWS - BDA301 - Sao Paulo Summit
Construindo Data Lakes e Analytics na AWS -  BDA301 - Sao Paulo SummitConstruindo Data Lakes e Analytics na AWS -  BDA301 - Sao Paulo Summit
Construindo Data Lakes e Analytics na AWS - BDA301 - Sao Paulo Summit
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
 
Case PHP como base de digital asset management arizona
Case PHP como base de digital asset management arizonaCase PHP como base de digital asset management arizona
Case PHP como base de digital asset management arizona
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance Rails
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão Geral
 
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
 
NoSQL e Python
NoSQL e PythonNoSQL e Python
NoSQL e Python
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATA
 

Mais de Daniel Checchia

BIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à PraticaBIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à PraticaDaniel Checchia
 
Federal cloud-computing-strategy
Federal cloud-computing-strategyFederal cloud-computing-strategy
Federal cloud-computing-strategyDaniel Checchia
 
Best Practices for Acquiring IT as a Service
Best Practices for Acquiring IT as a ServiceBest Practices for Acquiring IT as a Service
Best Practices for Acquiring IT as a ServiceDaniel Checchia
 
Políticas de Segurança: Verdade ou Mito?
Políticas de Segurança: Verdade ou Mito?Políticas de Segurança: Verdade ou Mito?
Políticas de Segurança: Verdade ou Mito?Daniel Checchia
 
IDM - Gereciamento de Identidades Corporativa
IDM - Gereciamento de Identidades CorporativaIDM - Gereciamento de Identidades Corporativa
IDM - Gereciamento de Identidades CorporativaDaniel Checchia
 
Monitoramento pro-ativo de Serviços
Monitoramento pro-ativo de ServiçosMonitoramento pro-ativo de Serviços
Monitoramento pro-ativo de ServiçosDaniel Checchia
 
Projeto de Backup com Bacula
Projeto de Backup com BaculaProjeto de Backup com Bacula
Projeto de Backup com BaculaDaniel Checchia
 

Mais de Daniel Checchia (9)

Projeto Calico Jack
Projeto Calico JackProjeto Calico Jack
Projeto Calico Jack
 
BIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à PraticaBIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à Pratica
 
Federal cloud-computing-strategy
Federal cloud-computing-strategyFederal cloud-computing-strategy
Federal cloud-computing-strategy
 
Best Practices for Acquiring IT as a Service
Best Practices for Acquiring IT as a ServiceBest Practices for Acquiring IT as a Service
Best Practices for Acquiring IT as a Service
 
The google file system
The google file systemThe google file system
The google file system
 
Políticas de Segurança: Verdade ou Mito?
Políticas de Segurança: Verdade ou Mito?Políticas de Segurança: Verdade ou Mito?
Políticas de Segurança: Verdade ou Mito?
 
IDM - Gereciamento de Identidades Corporativa
IDM - Gereciamento de Identidades CorporativaIDM - Gereciamento de Identidades Corporativa
IDM - Gereciamento de Identidades Corporativa
 
Monitoramento pro-ativo de Serviços
Monitoramento pro-ativo de ServiçosMonitoramento pro-ativo de Serviços
Monitoramento pro-ativo de Serviços
 
Projeto de Backup com Bacula
Projeto de Backup com BaculaProjeto de Backup com Bacula
Projeto de Backup com Bacula
 

Como escalar WordPress

  • 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
  • 10. Conceitos Básicos sobre Performance WEB • Melhores Práticas: • Yslow (Yahoo!) • Google PageSpeed • Google PageSpeed faz teste em mobile!
  • 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
  • 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. 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. 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. Escalando 06: Suporte Especialista • HHVM • Auto Scalling • Etc....
  • 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.
  • 24. Obrigado!! Daniel Checchia daniel@checchia.net @checchia Skype: daniel.checchia (11) 3010-0140 (41) 4042-1050 Site pessoal: http://Checchia.NET