Los motivos que te podrían llevar a contratar un servidor, en vez de usar alojamientos compartidos o hosting tradicional. Ventajas e inconvenientes de los servidores con respecto a otras opciones de alojamiento más básicas.
Si se trata de publicar una página web sencilla y unitaria, el alojamiento tradicional, lo que se suele llamar "hosting", es el más sencillo de manejar y adecuado para la mayoría de las personas. El hosting nos ahorra muchas complejidades de la publicación de un dominio en la web, así como la gestión de los recursos asociados, como el correo o las cuentas de FTP, ya que todo bien dado como un servicio cerrado y completo por nuestro proveedor de alojamiento.
De hecho, cualquier persona sin conocimientos previos sería capaz de contratar un dominio y, una vez contratado gestionar sus recursos con muy poco esfuerzo. Para ello el hosting ofrece un panel de control del alojamiento elemental pero suficiente para dar de alta los correos, crear cuentas de FTP, cambiar las claves de acceso, etc.
Dada esa facilidad ¿Por qué en algunas ocasiones es necesario liarse más y contratar un servidor en vez de un alojamiento tradicional? Sobre ello vamos a tratar en este artículo. Pero no solo eso, a lo largo de los siguientes post vamos a explicar cómo podremos crear un servidor y configurar los recursos para publicar una web, crear los correos electrónicos y cosas similares, siempre tratando de mantener la sencillez máxima y con la intención de ayudar a los interesados a dar los primeros pasos en el uso de servidores.
Cuándo necesito un servidor
Un servidor requiere un esfuerzo mayor para la configuración y también un grado de conocimiento más elevado para poder gestionarlo. De manera contraria a lo que muchos piensan, tener tu propio servidor no requiere mayor inversión y, de hecho, podemos ahorrar mucho dinero contratando un servidor que contratando dominios sueltos, básicamente porque el servidor nos permite alojar cualquier número de proyectos, cada uno con su propio dominio.
Sin embargo, olvidándonos del apartado de costes o comodidad, en muchas ocasiones es absolutamente necesario disponer de un servidor para conseguir una plataforma adecuada para publicar un proyecto. IEn este artículo vamos a estudiar los casos en los que es más la necesidad que la conveniencia.
Instalar software, lenguajes de programación y librerías
El primer caso y además el más fundamental, consiste en la necesidad de instalación del software necesario para que una aplicación se pueda ejecutar.
Habitualmente los alojamientos se entregan en servidores con una configuración estándar muy específica, que comúnmente soluciona las necesidades de una gran parcela de proyectos, pero no todos. En los planes de hosting solemos encontrar soporte para el lenguaje de programación PHP y para la base de datos MySQL. Pero ¿Qué pasa si mi aplicación requiere otros lenguajes, o un motor de base de datos distinto?
En los alojamientos tradicionales no es posible instalar software, por lo que no podrás usar más allá de lo que viene instalado de casa. Obviamente esto es por un tema de seguridad y fiabilidad del servidor. Si cada persona instalase sus propios programas en un hosting sería muy complicado mantener la estructura afinada para que todos los dominios alojados en un mismo servidor puedan funcionar de manera optimizada.
En estos casos es necesario contar con un servidor para poder configurarlo a nuestras necesidades:
- Lenguajes y plataformas de ejecución: Existen plataformas y lenguajes estupendos para el backend, como NodeJS, Python, .NET, Ruby y muchos otros. Cada plataforma tiene sus características y un tipo de proyectos adecuado para ellas, pero los servidores de hosting no los soportan. Si nuestro proyecto se basa en algo distinto de PHP, será necesario contar con un servidor propio donde podamos instalar estos lenguajes.
- Motores de bases de datos: Si necesitas PostgreSQL, Oracle, MariaDB o cualquier otro motor más allá de MySQL (o MS SQL en hostings Windows) necesitas un servidor.
- Librerías: A veces basamos el software y librerías específicas que no siempre es posible publicar en un hosting tradicional y necesitamos acceso al servidor para instalarlas.
PHP: usar composer / frameworks
A veces, aunque usemos PHP y base de datos MySQL, es necesario disponer de una herramienta fundamental para los desarrolladores, como es Composer. Composer nos permite instalar dependencias sobre las que construimos las aplicaciones. Para usar composer convenientemente es necesario contar con un servidor propio.
Asimismo, las herramientas de desarrollo avanzadas como los frameworks hacen necesario el uso de Composer generalmente o requieren muchas veces el acceso al servidor para poder desplegar los proyectos o configurar el servidor.
Configuración del servidor
A veces podemos usar PHP, MySQL y puede parecer que un alojamiento sea suficiente, pero debemos tener en cuenta que el servidor tiene unas configuraciones muy determinadas, pensadas para solucionar la mayoría de las necesidades. Sin embargo, a veces requerimos una configuración especial de PHP, por ejemplo que permita el upload de ficheros muy grandes, o que permita la ejecución de páginas durante más tiempo sin que el servidor arroje el típico error de timeout.
Flujos de despliegue e integración continuos
Otra situación muy relevante que nos puede llevar a la necesidad de implementar un proceso de despliegue particular. A veces, algo tan sencillo como realizar el despliegue de un proyecto a través de Git nos obliga a conectarnos con el servidor por SSH para acceder a la línea de comandos. Pero además, si deseamos aplicar nuestros propios pipelines o workflows para implementar procesos de integración continua y despliegue continuo será necesario tener acceso total al servidor.
Si te interesa saber más sobre workflows tienes por ejemplo en este artículo de despliege usando GitHub Actions.
Proyecto con mucho tráfico
Hasta ahora hemos hablado siempre de requisitos del servidor, pero también puede haber requisitos del propio proyecto y el tráfico necesario para que funcione correctamente. Aunque los hostings puedan tener transferencia ilimitada es importante saber que, para la buena salud de todos los dominios alojados, sí que se limitan los recursos que un dominio en particular pueda necesitar, como los ciclos de CPU, la cantidad de memoria, etc.
En proyectos con elevado tráfico y la necesidad de atender de manera concurrente a muchos usuarios, en un hosting tradicional podríamos experimentar retrasos en la respuesta del servidor, lo que es muy negativo de cara a los usuarios y las conversiones en clientes.
Esto no quiere decir que el alojamiento contratado sea necesariamente de mala calidad, sino que la configuración de los dominios es generalmente bastante restrictiva, para que uno de los dominios del hosting compartido no acabe perjudicando otros dominios que haya publicados en el servidor. Además, debemos tener en cuenta que un servidor puede tener cientos de dominios en hosting compartiendo el mismo espacio!!
Por ello, si tenemos necesidades especiales de tráfico, o si necesitamos garantizar la calidad elevada del servicio, lo mejor es que dispongamos de una infraestructura adecuada y específica para el sitio o aplicación web, con amplios (o al menos suficientes) recursos dedicados a nuestros proyectos.
Ahorrar con un servidor donde puedes publicar muchos dominios
Finalmente, es también importante saber que un servidor puede alojar a múltiples dominios y que si tenemos que alojar las webs de diversos proyectos, de clientes distintos, es muy probable que con un servidor propio acabemos ahorrando mucho dinero.
Actualmente los servidores VPS tienen unos costes asombrosamente bajos y en ellos tenemos una cantidad generosa de recursos.
La cantidad de recursos puede ser generosa o no. Esto depende del proveedor, pero muchas veces incluso los servidores más pequeños son suficientes para alojar varios dominios, o incluso decenas de ellos si no tienen mucho tráfico.
Si tenemos que contratar dominios sueltos, la suma de la inversión de todos los alojamientos por separado sería sensiblemente superior a la de un VPS con bastantes recursos. De hecho, la conveniencia de contratación de un VPS comenzará a notarse, en media, a partir del segundo dominio que contratemos.
Paralelamente, en un VPS podríamos conseguir todavía mejor rendimiento del que obtendríamos en alojamientos tradicionales, por lo que incluso tener estos dominios en nuestro propio servidor garantizará mejor servicio para los clientes.
Conclusión sobre la necesidad de contratar un servidor
Si estás comenzando en el mundo web y tienes poca experiencia un hosting tradicional te ayudará mucho. Sin embargo, a poco que tengas mayores necesidades, disponer de un servidor es fundamental, no solo por las posibilidades que se te abren, sino porque a veces los proyectos lo requieren.
Incluso, aunque los proyectos que manejes sean sencillos y los puedas mantener correctamente en un alojamiento tradicional, sin tienes que alojar varias webs con su propio dominio, si lo haces mediante un VPS o servidor cloud estarás ahorrando dinero!!
La única dificultad es que un servidor propio te obliga a administrarlo. Esto no es un problema porque existen incluso paneles de administración de te permiten realizar el trabajo de una manera sencilla y amistosa. En próximos artículos vamos a abordar soluciones herramientas y consejos para mitigar esos inconvenientes. Podéis ver más información ya mismo en el Manual de Administración de servidores y en concreto recomendamos ver algunas herramientas como el cPanel.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...