¿Cuál es el sistema operativo más adecuado para tu servidor? Qué criterios te pueden llevar a elegir entre Linux y Windows. Por qué Linux casi siempre es la mejor opción.
En este artículo vamos a valorar las dos posibilidades más importantes de sistemas operativos para servidores existentes en el mercado, Linux y Windows. Además veremos qué sistema operativo podrías elegir para tu servidor, en función de las necesidades del proyecto con el que te encuentres.
Linux y Windows en realidad no son los únicos sistemas operativos que podemos encontrar en servidores, dado que últimamente también están apareciendo opciones con MacOS, aunque realmente no son muy populares y verdaderamente tampoco muy necesarios. Hay otros sistemas minoritarios como Solaris de Oracle, pero siguen siendo poco usados para la inmensa mayoría de los casos.
¿Qué características tienen los sistemas operativos para servidores?
Comencemos por establecer una serie de características de los sistemas operativos destacables para servidores.
Linux
Es actualmente el estándar más extendido para servidores. Es un sistema operativo de código abierto y gratuito. Linux consigue mucha estabilidad y extrae un estupendo partido de los recursos de las máquinas.
En Linux encontramos el concepto de "distribuciones", que no son más que el kernel o núcleo de Linux con una serie de programas entregados en el mismo sistema. Existen decenas de distribuciones de Linux como Debian, Ubuntu, CentOS, OpenSUSE, etc. Cada una de ellas incorpora su propia selección de software para completar el núcleo del sistema operativo.
Windows Server
El sistema operativo de Microsoft es mayoritario en su versión de escritorio (para ordenadores personales). En el ámbito de servidores Windows Server no es tan usado, si lo comparamos con Linux, pero sí alcanza unas cuotas relevantes. Para su instalación y uso requiere del pago de una licencia.
La principal diferencia diferencia con Linux es que en Windows se realiza la administración mediante interfaz gráfica, a la que se accede mediante programas de escritorio remoto.
Qué sistema operativo escoger para un servidor
A continuación veremos qué sistema operativo nos conviene para nuestros servidores. La respuesta corta sería:
Escoge siempre Linux, a no ser que los requerimientos de tus aplicaciones o el software a instalar te obliguen a usar Windows.
¿Por qué? El principal motivo es que la mayoría de los proyectos web requieren programas como Apache o Nginx como servidor web, bases de datos como MySQL o MariaDB o lenguajes como PHP o Python. Todo este stack de tecnologías habitual se ha creado con el sistema Linux en la cabeza. Aunque es verdad que estos programas soportan también Windows, no es la plataforma más natural para ellos. Paralelamente un servidor Windows es generalmente más caro, por la necesidad de pago de licencias, lo que lo hace recomendable si realmente lo necesitamos.
También es destacable mencionar, por desterrar posibles confusiones, que la elección de un servidor no depende del sistema operativo que usamos para desarrollar el software. Es decir, aunque nuestro ordenador de trabajo en el día a día sea Windows, podemos usar Linux en el servidor, y viceversa.
Criterios principales para escoger el sistema operativo del servidor
Aunque hayamos dado ya un primer resumen de los motivos para la elección, ahora vamos a detallar los criterios más relevantes a la hora de escoger el sistema operativo para el servidor.
Inversión económica
El primer factor no es otro que el dinero que vamos a tener que invertir en uno u otro servidor: con servidores de las mismas características, Windows siempre será más caro.
Esto se debe a que cuando usamos el sistema de Microsoft necesitamos realizar el pago de licencias de software.
Para hacernos una idea, el precio base medio de un VPS rondaría entre los 5 y 10 euros al mes, siempre que escojamos Linux como sistema operativo. Por su parte, este mismo servidor con Windows Server tendrá un precio de 20 a 25 euros al mes, por el gasto de la licencia del software.
Pero atención! Las licencias de Windows en VPS se pagan por los cores del procesador, por lo que si nos vamos a modelos, que tiene 4 cores en lugar de 2, duplicará más o menos el coste de la licencia si seleccionamos Windows como sistema operativo. Por supuesto el pago de las licencias no es algo propio de los VPS, servidores cloud, o dedicados Windows tendrán también que pagar licencias y a medida que se aumenta la capacidad de cómputo también aumenta el coste.
Paralelamente, el software que vamos a utilizar frecuentemente en servidores Windows también tiene su coste en términos de licencias.
Conocimientos
Windows se administra por medio de interfaz gráfica, conectados al servidor por medio de un software de escritorio remoto. Esto ¿Significa que si no tenemos muchos conocimientos puede ser más sencillo administrar un servidor Windows? No siempre es así. Aunque nos asuste la consola y prefiramos trabajar a golpe de clic, administrar un servidor Windows requiere también de bastante experiencia.
No nos llevemos a engaño y pensemos que con la interfaz gráfica todo está resuelto! Conocer los entresijos de las configuraciones Windows también requiere una buena cantidad de conocimientos sobre la plataforma.
Por su parte, en Linux toda la administración del servidor se realiza mediante consola, usando conexiones por SSH. Esto requiere que tengamos unos conocimientos superiores en lo que respecta a comandos y no le tengamos miedo a la consola.
Si bien es cierto que todas las distribuciones de Linux suelen tener versiones preparadas para su uso en ordenadores personales, con interfaz gráfica, las versiones específicas para servidores no tienen esta opción y cualquier acceso se realiza siempre mediante terminal.
Sin embargo, también hay que decir que es posible instalar en el servidor Linux un panel de administración que nos permita acceder a las configuraciones de sus servicios a través de una interfaz gráfica vía web. Esta posibilidad es muy adecuada para usuarios sin tanta experiencia y facilita mucho las tareas del día a día con el servidor. Igualmente, trabajar con un panel requiere ciertos conocimientos, aunque muchísimo menores de los que requiere hacer las mismas tareas mediante comandos de consola.
Los paneles de administración, como Plesk o cPanel (los más poderosos) también requieren el pago de una licencia para usarlos en el servidor. Ten en cuenta que estos paneles requieren el pago de una licencia por uso.
Lenguajes de programación
Este ha sido tradicionalmente el más fundamental a la hora de escoger un servidor: el stack de tecnologías de desarrollo de los proyectos que pretendemos desplegar en él.
La mayoría de los lenguajes de programación más comunes funcionan de manera más natural en Linux. Es el caso de PHP, Python, NodeJS, etc. Sin embargo otras plataformas como ASP o .NET son propias de Microsoft y su ejecución venía realizándose necesariamente sobre sistemas Windows.
Por lo tanto, si el stack de tecnologías con los que estamos trabajando incluye plataformas creadas por Microsoft, el ambiente más natural para la ejecución ha sido siempre Windows, hasta hace bien poco.
Durante los últimos años Microsoft ha hecho un esfuerzo importante por ampliar los entornos de ejecución de sus tecnologías, abriéndose a otros sistemas operativos. Por tanto, hoy es posible desarrollar en .NET en cualquier plataforma y, del mismo modo, es posible ejecutar los proyectos .NET también sobre cualquier plataforma, incluidas Linux y Mac. Pero ojo, esto solamente aplica en el caso que estemos utilizando proyectos en las últimas versiones de .NET.
Esta apertura comenzó con la aparición de .NET Core, aunque se mantuvo durante años el llamado .NET "full framework" que funcionaba solamente en servidores Windows. Desde .NET 6 se han unificado todos los frameworks de Microsoft en una única bandera (la de .net) y la amplia mayoría de proyectos que se pueden hacer con la plataforma de Microsoft son perfectamente cross-platform.
Por tanto, hoy, para los proyectos actuales de .NET ya no existe esta necesidad de usar servidores Windows. Incluso, aunque las tecnologías de Microsoft han tenido tradicionalmente a Windows como plataforma de ejecución, funcionan estupendamente en Linux y los profesionales usan este sistema operativo sin reservas para el despliegue de los proyectos.
Software a instalar en la máquina
Existe una cantidad enorme de programas que se deben instalar en los servidores para permitir que las aplicaciones web funcionen. Por ejemplo, servidor web, un sistema gestor de base de datos, pero también programas de firewall, gestores de colas, supervisores, etc.
Como hemos dicho, toda esta colección de software se puede conseguir en Linux de manera gratuita, ya que son software libre. Muchos de estos programas, como Apache, MySQL y muchos otros también funcionan en Windows, aunque la plataforma más natural para ellos es Linux.
Pero también hay programas específicos para Windows, como por ejemplo el sistema gestor de base de datos MS SQL Server. La necesidad de este motor de base de datos nos llevaría a la elección de Windows como sistema operativo, pero debemos saber que también requiere el pago de una licencia, que en este caso tiene un coste bastante elevado. Por ejemplo, una licencia SQL Server "Web Edition" tiene un coste mensual aproximado de 15 a 50 euros, pues a medida que el servidor aumenta el número de cores la licencia también se hace más cara. Aunque en este caso existe una versión gratuita SQL Server "Express" que tiene algunas limitaciones, como el almacenamiento máximo de 10 GB o su ejecución en máquinas de 4 cores como máximo.
Otro motivo que nos puede llevar a instalar Windows es el software que requiera nuestra organización, como Microsoft SharePoint o Exchange, Access, etc. Todos estos programas empresariales de Microsoft requieren su ejecución en Windows, así como el pago de licencias.
Rendimiento
En términos de rendimiento ambos modelos de servidores pueden alcanzar estupendos desempeños y ejecutar la mayoría de las aplicaciones con holgura. Sin embargo, los servidores con Linux suelen sacarle un mayor partido a los recursos de la máquina. Dicho de otro modo, con los mismos recursos un servidor Linux conseguirá atender mayor cantidad de usuarios. Por tanto, para un servidor básico es preferible instalar Linux y, si necesitamos Windows, se recomienda una cantidad de CPU y RAM más elevada comparativamente.
Si la cantidad de usuarios que un servidor debe atender es reducida, no encontraremos mucha diferencia entre un Windows o un Linux, sin embargo, si las aplicaciones desplegadas van a requerir mucho tráfico, será preferible hacerlas funcionar bajo Linux.
Seguridad
La seguridad podríamos decir que es similar para ambos sistemas, siempre que tengamos todo el software instalado perfectamente actualizado, tanto el sistema operativo en sí como los programas que necesitamos para ejecutar las aplicaciones y servicios.
En Windows es Microsoft el encargado de resolver los problemas de seguridad, publicando los correspondientes parches. En Linux existe una comunidad de miles o decenas de miles de contribuidores al código, atentos para publicar nuevas versiones del software cada vez que se conoce un agujero de seguridad. Ambos son capaces de publicar los parches o las actualizaciones necesarias con la suficiente rapidez. Nosotros como administradores de sistemas somos los responsables de mantener los servidores actualizados.
Es verdad que la mayoría de software malicioso está creado para afectar a los sistemas Windows. Sin embargo, éstos suelen estar direccionados a los usuarios de ordenadores personales. En el servidor generalmente vamos a instalar una cantidad de programas limitada y de procedencia controlada.
Estabilidad
Tanto Windows Server como Linux son sistemas operativos pensados para el uso empresarial, por lo que su estabilidad es muy buena. Sin embargo, es cierto que la gestión de memoria de los sistemas Linux es un poco mejor, por lo que es menos frecuente la necesidad de reinicios de la máquina.
En Linux solamente las actualizaciones del kernel requieren un reinicio, mientras que en Windows los reinicios son más frecuentes.
Conclusión sobre el sistema operativo para tu servidor
Como hemos visto, a no ser que tengas un requisito determinado en tu software que te obligue a usar Windows, la elección de servidores Linux siempre será más recomendada. No solo porque Linux es más barato en lo que respecta a las licencias que debemos usar, sino además porque sacaremos mejor partido a la inversión en la máquina.
Podemos encontrar servidores Linux a precios muy muy ajustados, que podrán satisfacer las necesidades de la mayoría de las aplicaciones web. Sin embargo, irnos a un servidor Windows nos obligará a contratar una máquina más potente. Sumado a la necesidad de pagar por el sistema operativo, hace que la inversión en Windows duplique o triplique la que tendrías que hacer en un servidor Linux.
Por supuesto, nuestra recomendación será utilizar siempre Linux y por ello hemos dedicado el Manual de Administración de Servidores a Linux. Así que si lo tuyo es también Linux querrás saber a continuación qué distribución de Linux sería más adecuada para servidores.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...