Migración de sitios web de la plataforma Drupal 7 a Backdrop
Información del reporte:
Licencia Creative Commons

El contenido de los textos es responsabilidad de los autores y no refleja forzosamente el punto de vista de los dictaminadores, o de los miembros del Comité Editorial, o la postura del editor y la editorial de la publicación.
Para citar este reporte técnico:
Wolf Iszaevich, G. E. (2024). Migración de sitios web de la plataforma Drupal 7 a Backdrop. Cuadernos Técnicos Universitarios de la DGTIC, 2 (4). https://doi.org/10.22201/dgtic.ctud.2024.2.4.69
Gunnar Eyal Wolf Iszaevich
Instituto de Investigaciones Económicas
Universidad Nacional Autónoma de México
ORCID: 0000-0001-6829-1906
Resumen:
Se describe el proceso de migración de un sitio web universitario medianamente complejo, esto es, desde la versión 7 de la plataforma Drupal a la plataforma Backdrop. Se asegura así un camino para su mantenimiento en operación, dado que la versión de Drupal en cuestión dejará inminentemente de tener mantenimiento. Se presentan playbooks para ayudar al usuario a tener una transición sencilla.
Palabras clave:
Sistema de administración de contenido web, migración, Drupal, Backdrop.
1. Introducción
1.1 Los Sistemas de Administración de Contenido
Prácticamente, la totalidad de las dependencias universitarias tienen un espacio en web dedicado a difundir las actividades que realizan. Si bien éste podría consistir de una serie de páginas web escritas manualmente en HTML y mantenidas por un diseñador con medianos conocimientos técnicos (de hecho, así se hizo predominantemente hasta alrededor del año 2000), esto se convierte en un cuello de botella en el momento en que se decide contar con más de un responsable de información o seguir las mejores prácticas en el campo y separar la tarea de diseño gráfico del sitio, su estructura técnica y el mantenimiento de la información en el día a día.
Hacia fines de los años 90, aparecieron los primeros Sistemas de Administración de Contenido (Content Management System, CMS por sus siglas en inglés). Uno de los primeros sistemas que se adoptó ampliamente en la UNAM fue PHP Nuke, que presentaba una estructura principal que todavía puede identificarse en sitios de publicaciones noticiosas e incluso en la mayor parte de las redes sociales: en la página principal, se presentan las últimas n publicaciones bajo un formato reducido y, al seleccionar el título de cualquiera de ellas, se lleva al artículo completo.
Esta estructura resultó adecuada para distintos grupos de trabajo y fue parcialmente responsable del surgimiento de las páginas tipo blog (de web log, bitácora en web). Sin embargo, para los sitios web institucionales de las diversas dependencias universitarias, fue necesario esperar a la aparición de nuevos sistemas que permitieran una mayor libertad de diseño para reflejar la estructura de la información.
Hacia 2005, habían aparecido ya numerosos otros sistemas CMS (Mooney, 2008), muchos de los cuales permanecen en uso hasta el día de hoy. Algunos de los más relevantes actualmente en las páginas de la UNAM son Wordpress, Mambo (renombrado a Joomla), y Drupal (Martínez-Caro et al. 2018), aunque indudablemente hay una gran variedad de sistemas más allá de los aquí mencionados.
1.2 El CMS Drupal
En el Instituto de Investigaciones Económicas (IIEc), se realizó la migración de un sitio basado en páginas estáticas a uno basado en Drupal en 2008. Drupal es un CMS desarrollado como software libre originalmente creado en los Países Bajos, aunque, hoy en día, cuenta con la participación de desarrolladores de todo el mundo. Según estimaciones del proyecto, aproximadamente el 2% de los sitios web del mundo están basados en Drupal (Melancon, et al. 2010).
El modelo de desarrollo de Drupal separa periódicamente la rama de desarrollo de la rama estable. Esto es, cuando el IIEc adoptó Drupal, se instaló un sistema basado en Drupal 6. El proyecto Drupal mantuvo siempre un mínimo de cambios entre versiones menores del proyecto (p.ej. 6.5, 6.6, 6.7, etc.), pero, para poder probar cambios más centrales que trajeran dinamismo al proyecto, las versiones mayores (como lo fue el cambio de 6.x a 7.x) requirieron una cuidadosa migración de datos.
La versión 7 de Drupal fue liberada en enero de 2011 y, para 2012, se presentó una nueva versión del sitio web del IIEc aprovechando esta nueva versión. En 2015, la Facultad de Ingeniería inició el proyecto PAPIME PE104415, el cual fomentaba la adopción de Drupal en nuestra universidad, incluyendo la celebración del congreso internacional Drupal Camp con decenas de desarrolladores de Drupal en la Torre de Ingeniería. Drupal goza de una amplia adopción en universidades, bibliotecas, museos y demás instituciones con características similares, ofreciendo módulos específicos para una gran cantidad de procesos y tipos de contenido típicos en ellas (Tramullas, 2013).
La política de mantenimiento de Drupal era, en esa época, proveer actualizaciones para la rama estable actual y anterior, con lo que, para cuando se celebró el Drupal Camp, se publicaban correcciones (“parches”) para los defectos (“bugs”) que se encontraban en las versiones 6 y 7.
1.3 Drupal más allá de la versión 8
Hacia fines de 2015, Drupal presentó la versión 8 de su CMS. Sin embargo, a diferencia de lo ocurrido en las versiones anteriores, la migración de sitios a la nueva versión no fue tersa ni ágil: la arquitectura central del sistema cambió radicalmente y muchos administradores de sitios web se vieron forzados, por la complejidad que esto significaba, a posponer la actualización de los sistemas Drupal 7 tanto como fuera posible. A fin de cuentas, la tradición de mantenimiento de Drupal marcaba que seguiría habiendo soporte por un par de años para la versión 7.
La distancia con las versiones nuevas de Drupal fue creciendo y se fue haciendo claro que habría muchos usuarios que no migrarían en el tiempo esperado. El plan original del proyecto Drupal era finalizar el soporte a la versión 7 al liberarse la versión 9 en noviembre de 2021 (6 años después de la liberación de la versión 8). Los desarrolladores decidieron demorar la finalización en atención a la dificultad del trabajo de los equipos de administración de sitios web durante la pandemia. En junio de 2023, el equipo de desarrollo de Drupal anunció que la fecha definitiva de fin de soporte para la versión 7 sería el 5 de enero de 2025. Esto reactivó, indudablemente, los planes de migración de miles de usuarios en el mundo, el IIEc incluido.
1.4 Backdrop
En 2013, mientras Drupal 8 aún estaba en proceso de desarrollo, un grupo de desarrolladores de Drupal se mostró inconforme con la nueva dirección que estaba tomando el proyecto, viendo que obligaría al proyecto a alejarse de parte importante de sus usuarios, e inició un proyecto paralelo de desarrollo, creando una bifurcación (fork) del proyecto, para adoptar nuevas prácticas y características de la web moderna, pero no abandonar la relativa simplicidad del modelo de datos de Drupal 7. Este nuevo proyecto tomó el nombre Backdrop.
La comunidad de usuarios y desarrolladores Backdrop es indudablemente más pequeña que la de Drupal, pero, para una gran cantidad de sitios, ofrece una alternativa ante el fin de vida de dicha versión, una atractiva opción para mantener un sistema actualizado y con mantenimiento sin tener que rediseñar por completo sus sitios.
1.5 Objetivo
Desarrollar un mecanismo sencillo y predecible para la migración de sitios Drupal 7 a Backdrop, que pueda ser replicado sobre otros sitios web del Instituto y de la Universidad.
2. Metodología: Desarrollo técnico de la migración
Si bien, desde el nacimiento del proyecto, Backdrop se planteó para facilitar la migración de sitios desarrollados bajo Drupal, el proceso siempre requirió de un alto grado de involucramiento manual (Tomlinson, 2015) y, para muchos administradores, esto ha demorado el prospecto de migrar sitios con cientos o miles de páginas existentes. En el caso del Instituto de Investigaciones Económicas, sólo la cercanía del fin de mantenimiento de Drupal 7 fue suficiente catalizador para dar el paso hacia la migración.
Cabe mencionar que, si bien el presente reporte ayuda a lograr una migración sencilla, se recomienda la consulta del libro de Tomlinson, mencionado en el párrafo anterior. Este libro está disponible de forma gratuita por parte de su editorial (https://link.springer.com/book/10.1007/978-1-4842-1760-3).
2.1 Módulo D2B Migrate
En noviembre de 2023, el desarrollador conocido como docwilmot dió a conocer la primera versión pública del módulo de automatización D2B Migrate (https://backdropcms.org/project/d2b_migrate). Este módulo automatiza la mayor parte de tareas de migración del contenido, los usuarios e incluso parte importante de la estructura, facilitando así en gran medida la creación de un nuevo sitio basado en uno preexistente.
A la fecha en que este texto se escribe, D2B Migrate está aún en su versión 0.8.0-alpha4, lo cual indica que los autores aún no consideran su desarrollo como finalizado para su uso general, pero la calidad de sus resultados y la cercanía de la fecha de fin de vida para la versión 7 de Drupal presentan la urgencia de encontrar herramientas para la actualización.
D2B Migrate resume las tareas de actualización en 4 pasos:
- Crear un nuevo sitio Backdrop vacío
- Instalar tanto el módulo D2B Migrate como el Backup and Migrate, de ámbito más genérico
- Habilitar ambos módulos
- Seleccionar el botón “Configurar” para dar inicio a la migración.
Con esto, D2B Migrate solicita los datos para la conexión al sistema Drupal 7 a convertir, copia todas las páginas web y las principales configuraciones, incluyendo el acomodo (layout) global del sitio y las vistas generadas.
Es importante destacar que, si bien la importación que realiza este módulo es bastante completa, no puede cubrir la funcionalidad de los módulos específicos empleados por cada sitio (más allá de la funcionalidad núcleo ofrecida por Drupal). Dado que siempre se presentó la extensibilidad como una característica importante de Drupal, es probable que los distintos sitios a migrar requieran trabajo adicional, ya sea para realizar la adecuación de los módulos mismos (programación en PHP), o para reimplementar la funcionalidad de éstos mediante vistas y tarjetas.
Cabe mencionar que algunos de los principales módulos de Drupal han sido ya convertidos y publicados para Backdrop.
2.2 Playbook Ansible para la migración
El Instituto de Investigaciones Económicas tiene varios sitios desarrollados sobre Drupal 7. Pensando en aprovechar la automatización para reducir tareas repetitivas y en la gran cantidad de sitios aún existentes basados en dicha plataforma, se desarrolló un playbook Ansible. Este playbook está disponible para su descarga desde: https://github.com/gwolf/d2b_ansible
Ansible es un sistema de administración de configuraciones que busca facilitar la automatización de tareas, integrándose al flujo natural de trabajo de los administradores en sistemas tipo Unix (Geerling, 2020; Fadhil, 2020).
Un playbook de Ansible es la descripción, con bloques descritos como pasos en un archivo en el lenguaje de marcado YAML y basado en los módulos desarrollados para la plataforma ya mencionada. Son los pasos necesarios para configurar a un servidor con el fin de llegar a un estado predefinido (Masek et al. 2018) — en este caso, el playbook desarrollado:
- Crea una base de datos para el sitio destino en un servidor MySQL ya existente, así como un usuario para controlar a dicha base.
- Genera un respaldo de la base de datos del sistema Drupal 7
- Respalda los archivos externos a la base de datos del sistema Drupal 7
- Instala y configura al servidor web nginx
- Descarga Backdrop e instala en el directorio especificado del servidor destino
- Descarga e instala la herramienta de línea de comando Bee para la administración local de Backdrop
- Descarga y activa la traducción de Backdrop al español
- Instala y activa el módulo D2B Migrate
- Habilita el editor CKEditor 5, facilitando a los usuarios el manejo de contenido con formatos de texto
- Mediante un programa de Perl, emplea la biblioteca WWW:Mechanize, sigue los pasos para la importación del respaldo del sitio Drupal 7 en el nuevo sitio Backdrop
- Corrige valores de configuración que han cambiado como consecuencia del cambio de plataforma
- Elige el tema gráfico “Basis” de Backdrop para asegurar el funcionamiento del nuevo sitio
Tras ejecutar el playbook, el contenido del sitio Drupal 7 estará transferido y activo en el nuevo sitio, listo para darle los toques finales que culminen con la migración y adecuación a gusto de los usuarios.
3. Resultados
El procedimiento delineado en este reporte permitió la migración completa de un sitio de mediana complejidad, con más de 10 años de trabajo, que presentaba ya problemas por conflictos con las últimas versiones de Drupal 7.
La calendarización de actividades del Instituto programa para los próximos meses de este año desplegar este mismo procedimiento a otros sitios basados en Drupal 7. Sin duda, se ha identificado como uno de los puntos claves la identificación y sustitución de contenido que depende de módulos que no están disponibles para Backdrop, por lo que esta migración tiene que realizarse cuidadosamente y detallando el proceso sitio por sitio, pero con confianza en las ventajas de la metodología descrita en el presente texto.
Es difícil aventurar el nivel de trabajo requerido tras la etapa de migración para diferentes sitios; en líneas generales, si los sitios no incluyen módulos adicionales al núcleo de Drupal, tanto la funcionalidad como la información deben quedar disponibles sin ningún paso adicional. Los administradores tendrán, eso sí, que verificar el funcionamiento y acomodo de los temas que elijan, dado que su estructura es uno de los puntos en que más se ha diferenciado Backdrop de Drupal; se tomó la decisión de elegir el tema por omisión de Backdrop en el último punto del playbook de Ansible detallado en la subsección 2.2 para tener la certeza de que el sitio migrado sea utilizable tras la migración; un tema sin soporte podría llevar a que el sistema no fuera siquiera visualizable.
Como resultado positivo adicional, puede observarse que, si bien la tecnología base de Drupal 7 y Backdrop es la misma, los sitios en cuestión se beneficiarán de temas modernizados, con mejor salida para dispositivos de todo formato.
El playbook Ansible, presentado como material suplementario a este texto, puede resultar de gran utilidad para los muchos sitios de la UNAM aún pendientes de migrar. Al realizarse la migración sobre un respaldo y de forma no destructiva, los administradores tendrán la certeza de no interferir con el funcionamiento de un sistema en producción con usuarios reales hasta el momento de estar listos para realizar el cambio en DNS.
Referencias
Fadhil, S. (2020). Automated ICT system health monitoring using Grafana. [Tesis de maestría]. JAMK University of Applied Sciences. Recuperado de: https://www.theseus.fi/bitstream/handle/10024/348544/Thesis_Fadhil_Sharif.pdf;jsessionid=E81D1F2D397F2FBE88399DA6C207F28C?sequence=2
Geerling J. (2020). Ansible for DevOps. Server and configuration management for humans. Leanpub.
Martínez-Caro, J. M., et al. (2018). A comparative study of web content management systems. Information, 9(2), 27. https://www.doi.org/10.3390/info9020027.
Masek, P., et al. (2018). Unleashing full potential of ansible framework: University labs administration. In 2018 22nd conference of open innovations association (FRUCT) (pp. 144-150). IEEE.
Melancon, B., et al. (2010). The Definitive Guide to Drupal 7. Apress.
Mooney, S. D., & Baenziger, P. H. (2008). Extensible open source content management systems and frameworks: a solution for many needs of a bioinformatics group. Briefings in bioinformatics, 9(1), 69-74.
Tomlinson, T. (2015). Migrating from Drupal to Backdrop. Apress.
Tramullas, J. (2013). Gestión de contenidos con Drupal: revisión de módulos específicos para bibliotecas, archivos y museos. Profesional de la información, 22(5), 425-431. https://www.doi.org/10.3145/epi.2013.sep.07.