Entornos de producción y desarrollo optimizados para Drupal
Optimizamos y configuramos tus entornos de desarrollo y producción mediante un stack que permite servir aplicaciones web Drupal con todas las garantías.
Stack
Nuestro stack base permite el hosting de una aplicación Drupal preparado para hacer frente a un tráfico exigente sin requerir grandes infraestructuras. Optimizado tanto para servir Drupal como para no ser un obstáculo al desarrollo de nuevas funcionalidades, este stack es adecuado para la gran mayoría de plataformas basadas en Drupal.
- Servidor web Apache.
- Motor PHP FPM.
- Cache, terminación SSL y contenido estático con NGINX.
- Base de datos MariaDB.
- Caché-en-memoria con Redis.
Servidor web Apache
El cuerpo de una aplicación web es su servidor web. Apache, el servidor web de mayor trayectoria, se adapta perfectamente a Drupal, por lo que requiere menos ajustes que otros servidores. Esto se debe principalmente a que, en caso de que Drupal o uno de sus módulos requieran algún tipo de configuración específica para el servidor web, siempre viene dada al menos para Apache. Es sencillo adaptar la configuración otros servidores, pero es un paso adicional que realizar innecesario al usar Apache.
Motor FPM
FastCGI Process Manager (FPM) se encarga de gestionar los procesos PHP que sirven contenido al servidor web. Está orientado a sitios con alto tráfico y es la opción óptima para un stack Drupal.
Cache, terminación SSL y contenido estático con NGINX
NGINX es un magnífico servidor web con múltiples capacidades como proxy reverso o balanceo de carga. Su rendimiento sirviendo contenidos estáticos es ampliamente reconocido, por lo que es una gran opción como frontal web. Su cometido es servidor contenido estático como imágenes o ficheros, servir contenido cacheado y de terminador SSL, delegando en Apache aquellos contenidos que no pueda manejar.
Base de datos MariaDB
MariaDB nace de MySQL y aglutina a la gran mayoría de desarrolladores originales de MySQL. Sustituye desde hace casi 10 años a MySQL en la mayoría de las distribuciones Linux, además de ser la opción elegida por Google o Wikipedia. MariaDB es la mejor opción para Drupal porque no requiere ningún de tipo de configuración o módulo adicional para su uso y es la opción privilegiada por los desarrolladores de Drupal.
Caché-en-memoria con Redis
Drupal, al igual que otras aplicaciones web, pueden crear situaciones de fuerte estrés sobre la base de datos sobre la que se apoyan. Esto es especialmente común con las tablas de caché o datos regenerables que puede experimentar fuertes picos carga. Mediante Redis, estas tablas se mueven a memoria, descargando de forma muy notable al servidor de base de datos. Dada la naturaleza de estos datos, reconstruibles en caso de necesidad, pueden ser almacenados en memoria volátil sin correr ningún riesgo.
Opciones avanzadas
No todas las aplicaciones web manejan el mismo tipo de tráfico, cantidad de usuarios o complejidad interna. En ciertos casos se requiere un stack mucho más especializado. Para estas situaciones contamos con soluciones que pueden ser añadidas al stack base o sustituir componentes concretos buscando el máximo rendimiento.
- Varnish caché
- CDN
- Múltiples frontales
- Base de datos principal y réplicas
Varnish caché
Es un proxy inverso especializado que puede dar excelentes resultados en las circunstancias correctas. Ofrece un lenguaje propio de configuración, VCL, que hace de Varnish más adaptable y configurable que la mayoría de aceleradores web. A diferencia de NGINX, no actúa como terminador SSL, por lo que necesita un terminador como HAProxy o Hitch.
CDN
Un CDN es una forma más avanzada y potente de proxy inverso. Incorpora sistemas de protección ante ataques, menor tiempo de respuesta, mayor velocidad de entrega y solventa las restricciones de acceso que puede haber en lugares como China. Esto se consigue mediante una red servidores repartidos por todo el globo listos para entregar el contenido solicitado. Metadrop se integra con las diferentes soluciones CDN del mercado para que Drupal no sea vea afectado por esta capa adicional de caché.
Múltiples frontales
Cuando por diversas razones no es posible o no es conveniente hacer un escalado vertical, es decir, aumentar la potencia de la máquina, la solución ante una necesidad de mayor rendimiento es el escalado horizontal. Esto significa añadir más servidores, de manera que los usuarios puedan ser atendidos por más de un servidor web. De esta forma, se consigue aumentar la capacidad de servicio de la aplicación web Drupal. Como complemento, se hace uso de un sistema de balanceo de carga como HAProxy, encargado de distribuir equitativamente las peticiones entre los frontales disponibles.
Base de datos principal y réplicas
La base de datos suele ser un punto crítico de una aplicación web, pudiéndose convertir en un cuello de botella en algunas webs con alta cargas sobre la base de datos. Esta situación se puede abordar mediante la adición de servidores de base de datos que actúan de réplica de la principal, permitiendo a esta descargar su trabajo en dichas réplicas. Drupal permite el uso de réplicas de forma casi automática, por lo que solo es necesario configurar correctamente el sistema de comunicación entre todos los servidores de base de datos implicados.