Requerimientos de hosting para Drupal

Con la evolución de los gestores de contenido cada vez es más usual abordar desarrollos más complejos y potentes en las plataformas Open Source, especialmente en Drupal. Al ser Drupal reconocido como un potente marco de desarrollo para gestores a medida es fácil crear grandes proyectos pletóricos de funcionalidades: contenidos de muy diversos tipos con vinculaciones cruzadas entre ellos, redes sociales integradas, comercio electrónico, calendarios, envíos de newsletters, intranets, formularios, CRM, inscripciones en eventos, elementos a medida sobre numerosos comportamientos,... y todo junto al mismo tiempo. Esto es fantástico, ciertamente, pero acaba incidiendo en el número de recursos necesarios por parte del servidor.

Muchas veces, sean los proyectos grandes o pequeños, estos se ven muy penalizados en su éxito por haber realizado una mala elección en el tipo de hosting o en el proveedor del alojamiento. Este suele ser un problema difícil de comprender por muchos clientes que no entienden los requerimientos técnicos del hardware sobre el que funciona la web. En cambio a todo el mundo le es fácil entender que una empresa de pastelería local, que reparte a diario sus productos con pequeñas furgonetas que se adaptan al tráfico urbano no tendrá éxito si sigue usando esas furgonetas para empezar a distribuir a nivel internacional. El mismo producto, el mismo interés por mantener el servicio y la calidad, requerirá ahora nuevos medios: camiones de gran formato adaptados a las rutas de largo recorrido.

Esto que es tan fácil de entender para todo el mundo, porque todo el mundo entiende de forma muy clara y visual la diferencia que hay entre una furgoneta de reparto urbano y un camión de transporte internacional, pues no resulta tan evidente a todos los usuarios de una web si no disponen de los conocimientos para comparar las características de un tipo de alojamiento respecto de otro. Además, revisando los proveedores de alojamiento nos encontramos como con cualquier otro servicio tecnológico, los hay de muy diversos tipos, tamaños, y no siempre un servicio nominalmente igual en dos proveedores ofrece el mismo nivel de rendimiento. Y esto a veces es incluso sorprendente para los que llevamos años dedicandonos a esto.

Arquitectura de Drupal

Primero vale la pena analizar porque Drupal tiene unos requerimientos tan altos. Una de las ventajas de Drupal puede ser vista en este aspecto del hosting como un inconveniente. Una característica de Drupal que le han hecho tan atractivo a ojos de especialistas en desarrollo web de todo el mundo es que en su forma de programar los módulos está previsto que cualquier módulo pueda modificar a otro. Esto exige cargar todo el código cada vez que hay que ejecutar la creación de una página, pues todos deben estar presentes para decidir qué hay que hacer cuando se quiere mostrar una página u otra. Este tema ha sido analizado en nuestra entrada sobre rendimiento de webs al hablar sobre entregar contenidos dinámicos o estáticos.

Técnicamente no significa más que esto, se carga todo el código porque cada módulo puede estar añadiendo algo o perfilando el comportamiento de otro, y ya está. Las ventajas en la facilidad de desarrollo son muchas. Cuantitativamente quiere decir que hay que tener un servidor "grande", económicamente quiere decir que hay que tener un servidor "caro". ¿Cómo de caro? Depende de la web que necesitemos alojar, pues esto de caro o barato es relativo y está en función de muchos elementos particulares de cada proyecto.

Por otro lado es normal que los proyectos en Drupal cada vez sean de tamaño medio y grande con tendencia al crecimiento paulatino. Esto quiere decir que el simple hecho de desarrollar una web en un sistema como Drupal es el anticipo a tener una web que con el tiempo crecerá y tendrá altos requerimientos. En una web de este tipo, hecha con Drupal o con cualquier otro sistema, puede requerir configuraciones de alto rendimiento para satisfacer grandes tráficos, o a medida de intranets con grandes índices de actividad. Configurar soluciones de mucha performance será algo normal, con optimizadores de código, cachés de páginas estáticas del tipo que sean, y servicios CDN de imágenes.

Requerimientos del servidor

Los requerimientos del servidor han ido aumentando con cada versión de Drupal. En Drupal 6 una web compleja podía requerir 128 Mbs de Ram, en el límite de ejecución de PHP. Hoy, con Drupal 7, alcanzamos rápidamente ese límite con webs de tamaño medio, y una grande puede requerir 256 Mbs. Los proveedores de hosting no ayudan mucho a aclarar este requerimiento porque a menudo ni siquera hablan de él. Cuando se consulta las tablas de alojamiento en los distintos tipos de servicio que ofrece un proveedor nos dan mil datos, pero muy pocas veces este.

La memoria Ram es un recurso que el proveedor de un servidor vigila porque no quiere que nadie sature la memoria de la máquina con sus programas, ya que un programa mal hecho podría entrar en un bucle de procesado de datos que se hiciera enorme y pudiera llegar a colapsar la máquina, a exigir demasiada CPU. Esto podría tener un efecto de imagen pobre sobre el resto de las webs alojadas en ese mismo servidor, y podría llegar a tumbarlo. Los proveedores de servicio vigilan mucho la estabilidad de sus servidores, ya que a menudo en un mismo servidor hay cientos de webs, de las que no se sabe muy bien como están hechas, si bien o mal, si con un gestor de contenidos o programadas a mano.

Diferencias entre tipos de hosting

También es cierto que hay varios tipos de hosting, con características distintas de servicio. Muchos propietarios de proyectos web no conocen muy bien las diferencias entre unos tipos y otros. En general, una aproximación actual los dividiría en 4 tipos básicos que pueden variar de un proveedor a otro, sobre todo en el nombre:

  • Hosting compartido. En este tipo el proveedor nos alquila un "espacio cerrado" para nuestra web, y en el solo cabe esa web con su dominio, su correo, un cierto espacio de disco y poco más. Este es el formato más simple, y en un servidor como los que usan las empresas de hosting pueden llegar a alojar hasta 300 webs de esta categoría. Se entiende por tanto que sirve para webs poco complejas o sin mucho tráfico y su ventaja suele ser el precio, el inconveniente principal que no es flexible si nuestra web tiene algún tipo de requerimento especial.
  • Servidor dedicado. Este otro tipo representa el extremo del hosting compartido, simplemente quiere decir que alquilamos la máquina entera. La ventaja es óbvia ya que podremos hacer con ella lo que queramos, si disponemos de un técnico propio capacitado para mantenerla, y la tenemos con todo su rendimiento para nosotros. La desventaja es su alto precio y que si no necesitamos todas esa potencia puede ser absolutamente desmesurada. Hay que tener en cuenta que algunos proyectos web pueden llegar a requerir varias máquinas de estas.
  • Servidor virtual o VPS. Este formato es un punto intermedio entre los dos primeros ya que nos dan un trozo cerrado del servidor que virtualmente funciona igual que el servidor dedicado. Esto quiere decir que por un precio más contenido tenemos algo que se comporta como un servidor dedicado. Los proveedores suelen ofrecer un escalado que va desde dividir un servidor en 4 VPS a dividirlo en 10. En principio tenemos todas las ventajas del servidor dedicado, ya que en nuestro trozo podremos instalar todo lo que queramos y alojar tantas webs como nos quepan.
  • Servidor Cloud. Últimamente se está extendiendo una nueva fórmula en la que el proveedor nos ofrece un servicio sin importar de cuantos recursos informáticos requiere ya que ellos lo escalan en función de las necesidades que observan en nuestras webs alojadas. Esto quiere decir que como cualquiera de los tipos de hosting anteriores siempre hay un límite superior de servicio (por grande que sea) en este nunca hay límite ya que el proveedor seguirá poniendo recursos para atender todo el tráfico que entra en el servidor. Esto es muy interesante para webs que tienen grandes puntas de peticiones en momentos concretos, pero fuera de eso suelen manejar un tráfico muy discreto. En este tipo de hosting pagamos por el servicio de forma flexible y es útil para entidades que su negocio está basado en esas puntas de servicio pero que tener esa infraestructura todo el tiempo les resultaría muy caro.

Encontrar la fórmula de servicio adecuada puede ser complejo para algunos proyectos grandes, pero el problema es que los propietarios de proyectos web se suelen guiar más por el precio que por las características del alojamiento. Por otro lado hay que tener en cuenta que no todos los proveedores hacen servir los mismos servidores, ni el mismo sistema de control, ni los mismos discos duros, ni las mismas infraestructuras, por lo que si un cliente exige trabajar en un cierto proveedor de alojamiento que los desarrolladores de la web no han usado nunca no es posible saber a priori qué rendimiento tendrá ésta en esos servidores hasta que se instale la web y se pruebe.

A veces las características de los alojamientos pueden ser desconcertantes. Al tener una web en un servidor compartido generalmente quiere decir que está en un máquina muy potente, con procesador de 8 nucleos y mucha memoria Ram, con muchas configuraciones para alta performance. Es normal que el proveedor tenga esa máquina muy preparada precisamente para asumir el volumen enorme de webs que hay en ese servidor. Pero para un proyecto que ha crecido y progresado puede hacerse necesario crecer hacia un VPS. En este caso el escalado de precios hace que el cliente empieze por contratar un VPS de 1 core. En este nuevo alojamiento, en principio "mas caro", y por tanto "más bueno" y "más potente", la web irá más lenta. Se está pagando por tener más recursos, no por ir más rápido.

Precisamente porque hay proyectos que requieren un alto nivel de optimización y mantenimiento es bueno contar con proveedores pequeños y especializados. Generalmente este nivel de dedicación a afinar nuestro proyecto tendrá un precio mayor que el de proveedores de alojamiento "de volumen". Pero como en todos los campos, los especialistas en éste son muy valiosos, y son los únicos que en algunas ocasiones consiguen optimizar el hardware en los proyectos más complejos y densos para llegar a un rendimiento que pueda generar grandes volumenes de ingresos a partir de las visitas.

Requerimientos del proveedor

Esto quiere decir que elegir a proveedor adecuado es parte de la ecuación para el éxito de la web. En el mercado en el que nos encontramos hay muchos proveedores nacionales de tamaños muy diversos, algunos con mucha marca, pero también otros muy pequeños y especializados. Lo que es cierto es que es importante escoger un proveedor nacional por mucho que hayan proveedores globales (generalmente norte-americanos) con hostings de $5 al mes. Solo de ver este precio ya deberiamos darnos cuenta de que el servicio que proporcionan no debe ser muy bueno, ¿porque íbamos a escatimar en esto?.

El hosting es un activo de la empresa que posee una web, es el lugar donde está alojada y debe tratarlo en consonancia a la importancia que tenga para el negocio. Por tanto, lo primero que tiene que hacer el cliente es contratarlo él mismo, y debe estar a su nombre, ser de su propiedad. Otra cosa es que no sepa manejarlo y delegue esa tarea a especialistas a los que pague por tal servicio y dedicación. Hay muchos tristes casos de clientes que han perdido sus webs y sus dominios porque las claves de acceso no las tuvieron nunca y por tanto estaban totalmente en manos de quienes les mantenían la web.

Algunos proveedores se han especializado no solo en ponernos una máquina a bajo precio e inflarla de webs, sinó en proporcionar máquinas que funcionaran sin caídas de servicio todas las horas del día, todos los días del año. Hay proveedores que garantizan el servicio y que especialmente en webs con niveles críticos de tráfico y negocio ofrecen alertas que avisan de cualquier alteración significativa del rendimiento.

Por tanto elegir un buen proveedor nacional es importante: si hay problemas nos atenderá alguien en nuestro idioma y en nuestro horario de trabajo, no de madrugada o a través de emails en inglés. El contacto telefónico es muy importante en este tipo de atención con el cliente porque aunque el proveedor permita hacer un seguimiento de las incidencias y mantenimientos a través de un sistema de tickets, estos pueden llegar a ser complejos y hay que tratarlos con proximidad, poder realizar consultas, hacer preguntas, evaluar datos, sacar conclusiones.

Conclusiones

El trabajo de la realización de un proyecto web no acaba cuando se acaba la web. La elección de un buen proveedor de servicio de alojamiento es un punto crítico para el desarrollo de cualquier proyecto web y sobre todo para su éxito. El hosting debe estar siempre bien dimensionado, sobre todo si la web realiza un procesado de datos intenso. Evidentemente si el proyecto es un ecommerce de alcance local o con un volumen de ventas diarias discreto no es necesario realizar una inversión muy elevada en recursos, pero eso es algo que la evolución del uso de nuestra web nos va a indicar por sí mismo.

En ciertas ocasiones el cliente que promueve el proyecto web quiere una web que se adapta muy a medida a sus procesos de trabajo. Aunque ese proyecto se realice en un gestor de contenido Open Source puede tener muchos desarrollos específicos, y habrá requerido una inversión importante en las tareas de programación. No es lógico presuponer que al acabarlo ese proyecto estará alojado en un servidor barato años y años sin dar ningún problema. Sabemos que el entorno tecnológico es muy cambiante, que está evolucionando constantemente, casi anualmente. Además las web suelen ser atacadas, o vamos a decir "abordadas" constantemente por todo tipo de visitantes sospechosos. Los registros de los servidores de hosting dejan constancia diario de estos. Mantener la web segura es otra tarea en sí misma de la que se puede hablar en otro momento y que no se puede olvidar.

Un aspecto que se suele olvidar cuando se ajusta mucho el precio de un proyecto es la posibilidad de disponer de dos versiones de la web: la de desarrollo y la de producción. Tener una web separada para desarrollo, que sea una réplica de la web de producción (la web que usa y navega todo el mundo) es un aspecto imprescindible de un proyecto serio y sólido. Cada vez que hay un problema o que se quiere implementar una nueva función no podemos estar "trasteando" la web "real". Poder tener una versión de desarrollo e investigación requiere tener un hosting multidominio, idealmente mínimo un VPS.

Tras tanto años haciendo webs en Innodus hemos pasado por muchas experiencias, algunas buenas y algunas malas, de todo se aprende. Con el tiempo hemos encontrado los proveedores que mejor funcionan y nos gusta trabajar con ellos para poder garantizar el servicio, siempre buscando la mejor rentabilidad para nuestros clientes. Pero como hemos dicho más arriba el sector tecnológico siempre está cambiando y hay que estar atento a las novedades y por eso también proveemos consultoría sobre soluciones de alojamiento a medida para niveles de rendimiento superiores a los normales.