La importancia de la caché para un proyecto WordPress - WCSevilla2016

26
La importancia de la caché para un proyecto WordPress Fernando Puente @fpuenteonline

Transcript of La importancia de la caché para un proyecto WordPress - WCSevilla2016

La importancia de la caché para un proyecto WordPress

Fernando Puente @fpuenteonline

0 BIO Soy informático de vocación y de profesión, formador frustrado y beginner de comer y beber. 20 años de experiencia en TI, los últimos 10 años en medios de comunicación online. WordPress desde 2007, versión 2.1. CTO de La Estrategia de Chapman: nuestros medios son visitados por +10MM/mes. @fpuenteonline

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

Sumario §  Definición

§  Objetivos

§  Estrategias

§  Conclusiones

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

1 Definición de caché

Almacenamiento intermedio que guarda datos de manera temporal

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

1

§  Es un tipo de almacenamiento, diferentes soportes.

§  Intermedio, requiere de un elemento origen.

§  Temporal, limitado en el tiempo, volátil.

Almacenamiento intermedio que guarda datos de manera temporal

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

1 ¿Qué almacenar? 1.- Objetos estáticos 2.- Objetos dinámicos, su respuesta

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

1 WordPress: esquema básico

Navegador Servidor Web WordPress MySQL

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

1 ¿Dónde crear caché?

Navegador Servidor Web WordPress MySQL

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

Sumario §  Definición

§  Objetivos

§  Estrategias

§  Conclusiones

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

2 Objetivos 1.- Acelerar la velocidad de navegación del usuario 2.- Descargar el menor número de objetos 3.- Reducir la carga en el servidor

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

Sumario §  Definición

§  Objetivos

§  Estrategias

§  Conclusiones

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3 Estrategias de caché §  Navegador cliente.

§  CDN intermedia. §  Proxy inversa.

§  Servidor web.

§  PHP.

§  WordPress.

§  Conexión MySQL.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3 Tareas previas §  Determinar qué objetos son cacheables y qué periodo de

expiración tendrán.

§  Determinar qué recursos son necesarios para las estrategias a implementar.

§  Conocer cómo poner y quitar del caché los objetos.

§  Marcar objetivos de rendimiento, cuantificables.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3.1 Nivel básico (I) Cabeceras HTTP (Cache-Control & Expires)

§  Configurado en el servidor web.

§  Para objetos estáticos: media, HTML, CSS o JS.

§  En el fichero de configuración del servicio web o en el .htaccess o en la cabecera HTML.

§  Cuidado con los domain sharding.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3.1 Nivel básico (II) Plugin de caché estándar

§  Configurado en el propio WordPress.

§  Para objetos dinámicos, nuestras páginas. Algunos, para objetos estáticos.

§  Incorporan otras funcionalidades y mejoras de rendimiento.

§  Basados normalmente en filesystem.

§  Comprobar si vuestro servidor no tiene un pésimo disco.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3.2 Nivel intermedio (I) CDN de tipo DNS

§  Servicio intermedio entre el navegador y nuestro servidor, transparente para el usuario.

§  Cachea objetos estáticos en sus sistemas.

§  Posee servidores diseminados geográficamente para maximizar la entrega de contenido.

§  Añade más funcionalidades de rendimiento.

§  Requiere una configuración inicial básica.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3.2 Nivel intermedio (II) Plugin avanzado de caché

§  Configurado en el propio WordPress.

§  Para objetos dinámicos (páginas y objetos) y estáticos.

§  Incorporan muchas funcionalidades y mejoras de rendimiento adicionales.

§  Basados en memoria, filesystem local o CDN propio.

§  Requieren configuraciones más avanzadas, incluso servicios adicionales como Memcached, APC o Redis.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3.2 Nivel intermedio (III) Programación en WordPress

§  Almacenamiento en memoria o persistente de objetos.

§  Clase WP_Object_Cache + Memcached.

§  Transients API.

§  Nota: no acceder nunca directamente a la BD, hacerlo a través de WP.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3.3 Nivel avanzado (I) Proxy inverso – Reverse proxy

§  Se sitúa por delante del servidor web, cacheando en memoria la respuesta por URL.

§  Para cualquier URL (estática o dinámica).

§  Requiere de una configuración especial para los contenidos no cacheables.

§  Varnish o NGINX, por ejemplo.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3.3 Nivel avanzado (II) MySQL: servidor

§  Habilitar y configurar Query Cache.

§  Almacenamiento en memoria.

MySQL: proxy §  Almacenamiento en memoria.

§  Añaden más funcionalidades.

§  El mejor ejemplo, ProxySQL.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3.4 Nivel WTF!? Micro-caché

§  A nivel de balanceador, por delante de los servicios web.

§  Intervalos muy cortos de tiempo.

§  En memoria.

Precompilar PHP

•  Utilizar PHP-FPM en vez del PHP FastCGI estándar.

•  En memoria.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

3.5 ¿Esto es caché? §  Páginas AMP.

§  CDN externas.

§  Local storage.

§  Cookies.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

Sumario §  Definición

§  Objetivos

§  Estrategias

§  Conclusiones

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

4 Conclusiones No es costoso de implementar. Reduce la cantidad de tráfico transferido. Mejora el rendimiento del servidor. Acelera la descarga de páginas. Se pueden combinar diferentes estrategias de caché. Compatible con otras estrategias WPO, como balanceo de carga.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

4 Pero… §  El uso inadecuado puede generar problemas durante el

desarrollo o explotación.

§  Se activa tras la segunda visita.

§  Algunas estrategias dependen del usuario.

§  Nuestra funcionalidad debe ser la misma, con o sin caché.

§  No podemos utilizarla en todos los entornos, por ejemplo, transaccional o geoposicionamiento.

La importancia de la caché para un proyecto WordPress – WC Sevilla 2016 - @fpuenteonline

Gracias

Fernando Puente @fpuenteonline