DigitalOcean es un proveedor de cloud computing y servidores privados virtuales (VPS). Actualmente es una de las compañías de más rápido crecimiento entre los proveedores de servicios en la nube en cuanto a cantidad de servidores en Internet, al punto que en 2013 el crecimiento de DigitalOcean superó al de (nada más y nada menos) AWS, de acuerdo al sitio NetCraft.

Según mi modesta opinión, DigitalOcean es un proveedor indicado para clientes con requerimientos simples y directos, como pequeñas empresas y desarrolladores. Antes de seguir vale aclarar que este no es un post patrocinado, DigitalOcean no me ha pagado nada por escribir este artículo. Personalmente soy un feliz cliente de RamNode, un proveedor de hosting más pequeño, asequible y robusto (quien tampoco me ha pagado por escribir ésto). Habiendo hecho esta aclaración, y siendo DigitalOcean un proveedor de hosting tan popular, me parece pertinente dedicarle un artículo (y compartir mi experiencia) respecto a la migración de sistemas Debian hacia Devuan, ahora que esta última ha liberado su primera versión estable. Especialmente dedicado a aquellos usuarios y administradores que desean evitar systemd en sus servidores, y a su vez mantenerlos actualizados.



DigitalOcean utiliza KVM como plataforma de virtualización, una tecnología de tipo full virtualization. Esto significa que las máquinas virtuales no comparten ni están fuertemente acopladas con el sistema operativo host. Cada máquina virtual está aislada y utiliza su propio kernel. A diferencia de tecnologías de paravirtualización o contenedores, donde los guests comparten el kernel e incluso el sistema de inicio con el sistema operativo host. Esto impide realizar cambios en el kernel o sistema de inicio, y fuerza a mantener userland compatible con estos mismos.

Con full virtualization se simula una máquina virtual, por ende uno puede realizar cualquier tipo de cambios a nivel kernel y sistema de inicio, por ello una migración a Devuan en droplets (nombre de una instancia o máquina virtual en DigitalOcean) es segura. Más aún teniendo en cuenta que Devuan comparte el kernel con Debian, con lo cual no hay riesgo de perder compatibilidad con el hardware virtual.

Manos a la obra

Por supuesto, siempre que se encara una migración en un sistema en producción se debe evaluar la compatibilidad de los servicios y aplicaciones actualmente instalados, tal como expliqué en el artículo Cómo migrar un servidor en producción desde Debian 6 a 7.

En mi caso particular, uno de mis clientes fue el conejillo de indias víctima del experimento:

Anteriormente expliqué detalladamente el proceso de "conversión" de un sistema Debian Jessie a Devuan Jessie (misma versión). Sin embargo en este caso el procedimiento es más drástico, pues además de conversión se está realizando una migración de versión mayor: desde Debian 7 a Devuan 1 (basado en Debian 8). Demasiados cambios para un servidor en producción un martes 13.

A tal fin, simplemente seguí el procedimiento paso a paso documentado por dev1fanboy:

Upgrading to Devuan

El primer paso consiste en editar la configuración de APT:

# nano /etc/apt/sources.list

Comentar o eliminar todos los repositorios, y reemplazarlos por los de Devuan:

deb http://auto.mirror.devuan.org/merged jessie main
deb http://auto.mirror.devuan.org/merged jessie-updates main
deb http://auto.mirror.devuan.org/merged jessie-security main

Revisar el directorio /etc/apt/sources.list.d/ y asegurarse de que no existan archivos que agreguen otros repositorios (por ejemplo backports). En tal caso eliminarlos, o comentar las líneas de configuración dentro de los archivos).

Habiendo agregado los nuevos repositorios, es necesario instalar el keyring del repositorio de Devuan y actualizar la caché de paquetes:

# apt-get update && apt-get install devuan-keyring -y --allow-unauthenticated
# apt-get update -y

Luego ya es posible comenzar la migración:

# apt-get dist-upgrade

Este servidor en particular posee Nginx compilado con PHP-FPM y MySQL de paquete. En total se actualizan 403 paquetes y se instalan 206 nuevos:

Durante la instalación es conveniente reiniciar los servicios que dependen de libc6. Una vez más, tener en cuenta que esta migración se debe planificar y realizar en un horario de baja carga:

Comienza la actualización e instalación de nuevos paquetes:

Para algunos servicios pueden surgir incompatibilidades en los archivos de configuración, por pasar a nuevas versiones. En estos casos se debe tomar una decisión. Personalmente prefiero mantener la configuración actual y adaptar los archivos de configuración luego, si surgen inconvenientes:

Finaliza la actualización:

Se observa que todos los servicios funcionan correctamente. Sólo resta reiniciar el sistema:

Al iniciar nuevamente, tenemos nuestro Devuan Jessie en perfecto funcionamiento:

Verificar todos los servicios y disfrutar esta nueva versión actualizada de sistema operativo, donde hemos pasado de PHP 5.4 a PHP 5.6. Verificar el correcto funcionamiento de las aplicaciones PHP con esta nueva versión (en realidad esto se hace siempre antes de planificar una migración en producción, tal como mencioné anteriormente).

Referencias


Tal vez pueda interesarte


Compartí este artículo y dejá tu comentario