¿Su sitio web de WordPress es escalable?
Publicado: 2017-05-16¿Su sitio web de WordPress es escalable? Hay muchos ejemplos de instalaciones de WordPress a gran escala en la naturaleza. WordPress.com, por ejemplo, es una gran instalación de múltiples sitios que obtiene decenas de millones de páginas vistas cada mes. También sirve a miles de usuarios en cualquier momento.
Otros ejemplos incluyen Time, TechCrunch y CNN. No hay duda al respecto. Definitivamente puede crear un sitio web escalable con WordPress que sea lo suficientemente potente como para manejar cualquier cantidad de tráfico, siempre que cree el entorno adecuado. Configurar su instalación a escala puede ser complejo, pero es una inversión que vale la pena para cualquier propietario de un sitio. En esta publicación, repasamos algunas áreas en las que puede concentrarse para garantizar la escalabilidad y ofrecemos consejos sobre cómo configurar un entorno escalable.
¿Qué entendemos por escalable?
¿Qué hace que un sitio web de WordPress sea escalable? Un sitio web de WordPress escalable tiene la capacidad de aumentar la capacidad escalando hacia arriba o hacia afuera.
- Escalar hacia arriba: aumente la potencia del hardware (más RAM, una CPU más potente).
- Escala horizontal: aumente la capacidad agregando más nodos (teniendo copias idénticas de su sitio distribuidas entre varias máquinas).
Hacerlo le da la flexibilidad para adaptarse al crecimiento. Básicamente, desea poder ampliar su sitio sin ningún problema. Con WordPress, no tendrá que preocuparse por el software. El núcleo de WordPress implementa convenciones de arquitectura de software en capas, como separar el marcado (HTML y CSS) de los datos (base de datos MySQL). A continuación, exploraremos algunas formas en las que puede garantizar la máxima escalabilidad.
Entorno de desarrollo

Imagen de Sentavio / shutterstock.com
Una de las partes más difíciles de escalar un sitio de WordPress es configurar un entorno de desarrollo. Un buen entorno de desarrollo reflejará el entorno de producción sin ningún problema. Si tiene un sitio pequeño, puede salirse con la suya desarrollando en vivo, aunque definitivamente no escalará.
Necesitará algún tipo de control de versiones para asegurarse de que los desarrolladores no se pisoteen los unos a los otros. El software de control de versiones registra los cambios en sus archivos a lo largo del tiempo para que puedan recuperarse más tarde. Además, es una forma mucho más eficiente y profesional de desarrollar un sitio web de WordPress escalable.
Hay muchas soluciones elegantes disponibles gracias al arduo trabajo de la comunidad de código abierto. Git es un software de control de versiones distribuido que permite a varios desarrolladores trabajar de forma remota en repositorios separados. Es confiable, rápido y capaz de manejar proyectos increíblemente grandes. Después de todo, Git fue creado por Linus Torvalds para el desarrollo de Linux.
Puede crear un entorno de desarrollo espectacular con VVV (Vagrant Vagrants Varying). Este software gratuito de código abierto es ideal para crear entornos de desarrollo distribuidos con WordPress. Consulte nuestra Guía definitiva para configurar su entorno de desarrollo de WordPress para obtener un tutorial detallado sobre esto. WordPress.org también tiene un tutorial útil sobre cómo instalar VVV.
Escalabilidad horizontal
El escalado horizontal, o escalado horizontal, es uno de los conceptos más importantes de la creación de un entorno escalable. Esto le permite ejecutar su sitio web en muchas máquinas (servidores) diferentes. Algunas personas llaman a la infraestructura "arquitectura elástica", porque la cantidad de recursos que tiene puede expandirse o disminuir según la cantidad que se necesite.
Esto se hace a través de métodos de computación en la nube, como agrupación en clústeres, equilibrio de carga y virtualización. En informática, la agrupación es el proceso de organizar objetos similares en grupos. Por lo tanto, un solo clúster contendrá los archivos, la base de datos y el software de su sitio web. La agrupación en clústeres garantiza que su sitio web tenga una alta disponibilidad al eliminar los problemas debidos a fallas de hardware y software. ¿Como funciona?
Si su sitio obtiene un aumento en el tráfico, un equilibrador de carga determinará cómo asignar adecuadamente más recursos para compensar la holgura mediante el escalado horizontal; esto sucede de forma dinámica y sus visitantes nunca notan nada. La idea es que tenga copias idénticas de su sitio web distribuidas entre varias máquinas y que todas se conozcan entre sí. Por lo tanto, siempre hay una computadora en el clúster en espera si hay un aumento en el tráfico o falla un componente de la pila.
Los servicios de alojamiento en la nube como Amazon Web Services (AWS) o RackSpace son dos proveedores de alojamiento en la nube populares que permiten la escalabilidad horizontal. Consulte este tutorial sobre cómo implementar un sitio web de WordPress de alta disponibilidad con AWS para ver un ejemplo de una infraestructura de servidor típica con arquitectura elástica.
Almacenamiento en caché
Un caché es un espacio de almacenamiento temporal para la memoria. El almacenamiento en caché puede ayudarlo a entregar contenido más rápido y evitar problemas con la simultaneidad. Cada CMS necesita algún tipo de almacenamiento en caché, WordPress no es diferente. La mala noticia es que el almacenamiento en caché puede ser ridículamente complejo. La buena noticia es que la comunidad de código abierto ha encontrado muchas soluciones diferentes al respecto. Hay muchas herramientas para ayudarlo, incluidas WP Super Cache y Batcache.

Almacenamiento en caché de proxy inverso (almacenamiento en caché de páginas)
El almacenamiento en caché de proxy inverso es una forma eficaz de cargar páginas web dinámicas. El proxy inverso es un servicio que actúa como intermediario entre WordPress y el navegador. Esto puede ayudar a reducir la carga en su servidor principal y disminuir el tiempo de carga de la página percibido.
El problema es que los servidores PHP tienen muchos recursos. Ejecutan una gran cantidad de tareas complejas, que pueden atascar su servidor. Puede aligerar la carga en su servidor implementando un proxy inverso.
Por ejemplo, supongamos que recibe un visitante en la página de inicio de su sitio web. Es la primera visita del día. En este punto, todavía no hay una versión en caché de la página de inicio.
- El usuario ingresa la URL en la barra de direcciones, solicitando una página del servidor.
- La solicitud pasa a través del proxy, que aún no tiene una versión en caché de la página, a WordPress.
- WordPress genera la página de inicio y devuelve la respuesta al proxy inverso.
- Luego, el proxy envía la respuesta al navegador y guarda una copia en caché de esa página.
- Mientras el caché esté allí, cualquier usuario que solicite esa página recibirá la versión en caché de la página.
Almacenamiento en caché de objetos
El concepto detrás del almacenamiento en caché de objetos es similar al almacenamiento en caché de páginas, excepto que funciona en objetos individuales. Pueden surgir muchos problemas de concurrencia cuando hay muchos usuarios conectados a su sitio. El almacenamiento en caché de objetos guarda un objeto de aplicación (como un video, una imagen, un documento) en un almacén de datos. Al almacenar en caché los objetos de la aplicación, depende menos de la base de datos, lo que libera mucha memoria.
Hay muchas opciones para el almacenamiento en caché. Las redes de entrega de contenido como Cloudflare, Akamai, EdgeCast y KeyCDN pueden actuar como proxies inversos masivos. Varnish y WP Super Cache son dos opciones populares para implementar el almacenamiento en caché con WordPress.
Rendimiento de la consulta

Imagen de Oleg Erin / shutterstock.com
La base de datos a menudo puede ser la causa de los peores cuellos de botella. Las consultas lentas pueden bloquear la aplicación PHP en su servidor y detener toda la actividad, incluso si tiene una arquitectura elástica. Como mencioné antes, los servidores PHP pueden ralentizar significativamente el servidor. Si el almacenamiento en caché no funciona bien, puede encontrar formas de mejorar el rendimiento de sus consultas identificando consultas lentas.
Las consultas lentas se deben a problemas con la base de datos SQL, la red que ejecuta su sitio o el servidor. Hay una variedad de razones por las que esto puede suceder. Definitivamente no hay soluciones únicas para todos. El primer paso para mejorar el rendimiento de las consultas es identificar consultas lentas.
Una vez que identifique el problema, puede tomar medidas. A veces, la respuesta puede ser tan simple como comprar más ancho de banda, otras veces es posible que necesite modificar el código, lo que puede resultar complicado.
Consulte el complemento Monitor de consultas de WordPress si está buscando una herramienta para monitorear consultas.
Mejora de la búsqueda
Si tiene una gran cantidad de publicaciones, digamos 1 millón, tendrá que ser consciente de cómo están configuradas sus bases de datos. La mayoría de los sitios más grandes tienen un índice de búsqueda optimizado. Que es un motor de búsqueda personalizado agregado a WordPress.
La consulta de búsqueda de contenido en WordPress no funciona bien si tiene una gran cantidad de publicaciones en su sitio. También deja algo que desear en términos de velocidad. Una solución común para este problema es crear un índice de búsqueda dedicado. Hacer esto mantiene esas consultas fuera de la base de datos, brindando a los usuarios una mejor experiencia de navegación y aumentando el rendimiento de su base de datos.
Los motores de búsqueda populares para sitios de WordPress a gran escala incluyen ElasticSearch y ApacheSolr.
Terminando
Comenzar en la escala correcta también es importante. Empiece de forma sencilla y optimice más tarde. Para citar a Donald Knuth, "la optimización prematura es la raíz de todos los males". Acomódese para el crecimiento, pero no intente presionar un sitio de comercio electrónico enorme en una base pequeña o viceversa. Es posible que no necesite crear un sitio escalable si se trata de algo simple como una página de eventos.
Normalmente, la arquitectura elástica es el estándar para los sitios web de comercio electrónico. Si bien algunas de estas cosas pueden parecer increíblemente complejas, no es necesario que las comprenda todo. Siempre que conozca los conceptos básicos, puede crear un entorno sólido para un sitio a gran escala. Todo lo que necesita hacer es encontrar los servicios en la nube adecuados y conectarse con la CDN adecuada.
No dudes en compartir tus experiencias en la sección de comentarios. ¿Qué pasos tomó para hacer escalable su sitio web de WordPress?
Imagen en miniatura del artículo por turbodesign / shutterstock.com
