Linux existe en un entorno complejo open source, con muchas distribuciones (distros) desarrolladas por programadores de todas partes y, al mismo tiempo, respaldadas por grandes compañías. ¿Qué distribución deberías instalar en tu nuevo servidor?
¿Cuál es la diferencia entre todas estas distribuciones?
Cuando ejecuta Linux en un servidor en la nube, es probable que acceda a él a través de SSH y no una GUI, por lo que las diferencias en el entorno de escritorio no importan mucho (si es que lo hacen). Aunque técnicamente puede ejecutar cualquier versión de Linux en un servidor, es mejor seleccionar una distribución optimizada para el uso del servidor.
La mayoría de las distribuciones variarán según el software que hayan preinstalado y su ubicación en el «árbol genealógico» de Linux. Casi todas las distribuciones de Linux son open source, por lo que muchas distribuciones se basarán en otras. A modo de ejemplo, Ubuntu se basa en Debian y muchas distribuciones se centran en Ubuntu. Red Hat Enterprise Linux se bifurcó y se convirtió en CentOS, con Red Hat (la compañía) apoyando el desarrollo de CentOS. Amazon bifurcó CentOS para lanzar su propia distribución. Cada una de estas distribuciones instalará software equivalente, aún cuando los números de versión exactos variarán de una distribución a otra.
En la práctica, la mayoría de las distribuciones destinadas al servidor serán relativamente similares. Después de todo, todo es Linux, por lo que siempre que no esté usando una distribución oscura, es probable que el software que desea ejecutar se compile para su sistema, o simplemente sea compatible de todos modos. El mayor problema es que la estructura de carpetas es distinto en ciertas distribuciones, aún cuando es factible que además deba acostumbrarse a las idiosincrasias de la distribución, como Ubuntu usando el apt
administrador de paquetes, mientras que RHEL, CentOS y Amazon Linux usan yum
.
Una forma de solucionar este problema por completo es usar un servicio de contenedorización como Docker. Docker empaqueta sus aplicaciones en contenedores, que se ejecutan de la misma manera independientemente del sistema operativo en el que se estén ejecutando (asumiendo que la distribución tiene un binario de Docker compilado). Inclusive puedes «emular» otras distribuciones; a modo de ejemplo, podría tener un servidor en Ubuntu que ejecute una aplicación en contenedor que piensa se está ejecutando en CentOS. Esto se debe a que Docker solo modifica los espacios de nombres del contenedor y todo se ejecuta en el mismo kernel de Linux bajo el capó. Puede cambiar ese servidor a un proveedor distinto que ejecute Fedora y todo lo que tendría que hacer para que su aplicación se vuelva a ejecutar sería copiar y ejecutar el contenedor de su aplicación en el nuevo sistema.
Ubuntu Server LTS
Ubuntu es tal vez la distribución de Linux más conocida. Es sin costes y open source, por lo que casi todos los proveedores de la nube lo ofrecerán como una opción, si aún no es el predeterminado. Si se cambia a un nuevo proveedor en el futuro, la transición debería ser perfecta.
Ubuntu Server es una distribución de propósito muy general. Si no le importa profundizar en todos los detalles de las distribuciones de la competencia, no tendrá ningún problema simplemente instalando Ubuntu y olvidándose de él.
Hay un algunos sabores de Ubuntu Server, pero sugerimos instalar la última versión de Long-Term Support (LTS), que se publica cada dos años en abril. En este momento, la última versión es Ubuntu 18.04.2 LTS (Castor biónico), con 20.04 LTS programadas para el próximo mes de abril. A pesar de esto, Canonical sigue admitiendo Ubuntu 18.04 LTS hasta 2022 con parches de seguridad extendidos hasta 2027.
Ubuntu es open source y los parches de Canonical son gratuitos, pero la compañía ofrece un servicio de pago llamado Ubuntu Advantage, que proporciona soporte telefónico y web 24 horas al día, 7 días a la semana. Más notablemente, además le da acceso a dos servicios muy útiles:Livepatch canónico y paisaje.
Livepatch instala actualizaciones del kernel automáticamente sin reiniciar su sistema, lo que le posibilita mantener su servidor en funcionamiento inclusive a través de errores críticos del kernel. No tiene costo para tres máquinas, pero cualquier otra cosa necesita Ubuntu Advantage. Paisaje es una herramienta de administración diseñada para monitorear el estado de su sistema e instalar actualizaciones por lotes para paquetes en múltiples servidores.
Si desea una distribución mínima equivalente a Ubuntu, puede intentar ejecutar Debian, la distribución en la que se basa Ubuntu. A pesar de esto, el soporte para Debian básico está basado en la comunidad y no es tan popular.
Amazon Linux
Amazon lanza su propia versión de Linux para utilizar en sus servicios. Viene preinstalado con herramientas para administrar sus recursos de AWS, como la interfaz AWS CLI. Además está «ajustado para un rendimiento óptimo en Amazon EC2», aún cuando no es claro el beneficio de rendimiento exacto de utilizar Amazon Linux sobre otra distribución.
Es probable que Amazon Linux contenga optimizaciones de rendimiento diseñadas para reducir los costos por parte de Amazon cuando se ejecutan varias instancias EC2 en un hipervisor, y en realidad no verá que su sistema se ejecuta más rápido en comparación con Ubuntu.
Amazon Linux se ofrece como Imagen de máquina de Amazon (AMI) cuando crea una nueva instancia EC2. Es la primera opción, por lo que si activó rápidamente un servidor EC2, es probable que se esté ejecutando en Amazon Linux a menos que especifique lo contrario.
Aunque una distribución creada específicamente para su proveedor de nube viene con excelentes integraciones, la principal desventaja de Amazon Linux es que es exclusiva de AWS. Si desea cambiar de proveedor en la nube, es factible que deba dedicar tiempo a configurar su software en un nuevo sistema operativo, lo que inevitablemente generará problemas. La transición más fácil probablemente sería a CentOS, la distribución en la que se basa Amazon Linux.
Amazon no ofrece ningún tipo de servicio de parcheo en vivo del kernel, aún cuando recomienda utilizar el KernelCare de terceros, que cuesta $ 2 por servidor, por mes.
CentOS, Red Hat Enterprise Linux, Fedora
Estas tres distribuciones comparten comunidades y son bastante similares entre sí. Red Hat Enterprise Linux (RHEL) es una distribución muy popular para servidores empresariales, pero a diferencia de la mayoría de versiones de Linux, no no tiene costo. Recientemente, Red Hat ha comenzado a ofrecer compilaciones de RHEL solo para desarrollo.
Fedora es el río arriba fuente de Red Hat, lo que significa que las nuevas características se implementan y prueban en Fedora antes de ingresar a RHEL. Como tal, la distribución se actualizará con bastante frecuencia y es más «vanguardista» que una distribución de servidor estable.
CentOS es la fuente descendente de RHEL. Es esencialmente la versión gratuita de RHEL, pero la mantiene un equipo independiente y es independiente de Red Hat. Si está buscando una distribución gratuita que no sea Ubuntu, CentOS es el principal contendiente. Se utiliza mucho menos que Ubuntu, pero se actualiza con menos frecuencia, lo que puede ser bueno o malo en el mundo de los servidores en la nube.
Una nota importante sobre RHEL y CentOS es que son la única distribución que admite oficialmente cPanel, un popular panel de control de hosting web. Si está buscando utilizar cPanel, tendrá que utilizar CentOS o intentar ejecutarlo en un Imagen de Docker, lo que probablemente sea más problemático de lo que vale para una aplicación diseñada para ahorrarle tiempo.
Red Hat es el desarrollador de Kpatch, una utilidad para el parcheo en vivo del kernel. Kpatch es sin costes, pero no está automatizado y necesita que aplique parches manualmente cuando sea necesario. Funciona en RHEL y CentOS, así como en Debian.