Estrategia DigitalPortales y DXP

Drupal mucho más que un CMS

6 Mins de lectura

Descubre cómo podemos ayudarte a construir un sitio web flexible, potente y personalizable con Drupal.

A diferencia de otros CMS (content management system), Drupal es un potente CMF (content management framework) que nos permite crear no solamente soluciones a medida basadas en web, sino también puede ser usado como un API backend o sistema de gestión de contenidos omnicanal para conectar con otros sistemas o para alimentar otras aplicaciones con los datos que almacena.

Está construido sobre componentes Open Source y su core está basado en Symfony, lo cual quiere decir que el producto evolucionará siempre igual que lo hacen las librerías sobre las que está desarrollado su core. La versión actual (9.2.X) está basada en Symfony 4 y hay una iniciativa para migrar a Symfony 5.

Ahora mismo existen 2 versiones diferentes de Drupal con mantenimiento activo: Drupal 7 y 9. El soporte para ambas, Drupal 7 y Drupal 9, finalizará en noviembre de 2023, mientras que el soporte de Drupal 8 dejó de estar operativo en noviembre de 2021. Drupal 10 se lanzará en diciembre de 2022. Existe un roadmap perfectamente definido en el que se definen cuáles serán las fechas de lanzamiento de las futuras versiones así como las funcionalidades previstas para cada una de ellas.

Uso de Drupal

Hay más de 1.7 millones de sitios creados con Drupal y la cifra va en continuo aumento. Un 3,54% (35.443) del top 1 millón de sitios web a nivel de tráfico están usando Drupal como CMS. Unos 6.300 módulos disponibles para Drupal 9 cuya versión estable se publicó el 3 de junio del 2020

El sitio web oficial de Drupal dispone de una comunidad de 1.3 millones de desarrolladores registrados. Dicha comunidad es de las más activas en el mundo del software libre, se organizan diferentes tipos de eventos donde se realizan sprints de mejora del producto y del trabajo colaborativo con las incidencias, se realizan charlas y ponencias por los desarrolladores top y desde Hiberus colaboramos muy activamente.

Tanto el core de Drupal como los módulos y los temas contribuidos son open source y totalmente gratuitos, no es necesario gastar grandes cantidades de dinero en licencias o fees anuales para aplicar las actualizaciones del producto.

Drupal publica las actualizaciones de seguridad de los módulos contribuidos cada miércoles y las del core 1 vez al mes, que habitualmente suele ser el tercer miércoles del mes, por lo que los parches de seguridad no tardan en aparecer y las plataformas basadas en Drupal se pueden actualizar de una manera continuada.

Arquitectura de la información muy flexible

El modelo de datos de Drupal está basado en entidades (nodos, taxonomías, enlaces de menú, etc.), es muy escalable e incluye una gran variedad de campos (texto, texto enriquecido, referencia a otras entidades, teléfono).

Como mención especial, Drupal permite tratar los campos multimedia como entidades independientes y disponer de una biblioteca de medios para la búsqueda y reutilización de los elementos que ya han sido subidos.

La arquitectura de la información para almacenar los contenidos se puede crear usando la interfaz de la administración o mediante programación. Los contenidos se pueden mostrar usando los diferentes modos de visualización y también se pueden crear vistas que listan los contenidos.

Robustez en la edición de los contenidos

  • Revisiones (core): las entidades (nodos, bloques, términos de taxonomía, menús, media, etc) de Drupal disponen de revisiones que permiten visualizar las versiones anteriores de un contenido, ver quién lo ha editado y restaurarlo en el caso de ser necesario.
  • Estados de moderación (core): El módulo “Content moderation”  permite definir estados de moderación de un contenido, pudiendo tener una copia publicada y otra en un proceso de revisión.
  • Flujos de trabajo (core): El módulo Workflows permite definir un flujo de publicación de un contenido, con sus estados y transiciones entre los mismos.
  • Publicación automática (contrib): El módulo Scheduler permite publicar o despublicar un contenido en una cierta fecha y hora.
  • Layout builder (core): Permite crear las páginas landing de una forma visual mediante drag & drop de los componentes.
  • Roles de usuario (core): La atomicidad de los permisos de Drupal permite crear una experiencia editorial específica para el tipo de usuario editor, además permite crear secciones editoriales dentro de un mismo portal para usuarios editores que pertenezcan a distintas sedes o departamentos de una organización.
  • Contenidos multiidioma: Drupal permite la traducción de todas las entidades a cualquier idioma y dispone de una administración que permite ver si un contenido dispone de traducciones o no.

Alta escalabilidad

Drupal se aloja en un stack de LAMP/LEMP y permite tanto la escalabilidad horizontal de las aplicaciones como el uso de sistemas que ayudan a soportar un gran volumen de tráfico en un sitio web, además del incremento de los contenidos o usuarios que pueda soportar.

Dispone de varias capas de caché que se invalidan dinámicamente mediante las caché tags. Cuando una página o vista de Drupal es cacheada y se modifica la entidad de un contenido, la caché se invalida dinámicamente afectando únicamente a las caches que tengan esa entidad referenciada. Las caches generadas se guardan por defecto en tablas de MySQL que puede ser reemplazado por las bases de datos que basan su almacenamiento en memoria RAM de documentos clave-valor como Redis o Memcached, para hacer que la generación de las páginas desde el lado de servidor sea muy rápida.

Drupal incorpora el módulo BigPipe dentro de su core que permite desarrollar bloques de forma asíncrona al resto de los componentes de una página, de esta manera el renderizado se realiza de forma instantánea y los bloques dinámicos se cargan mediante streams de HTTP. Además dispone de módulos que lo integran con Varnish para almacenar las copias estáticas de un contenido para que no se tenga que generar desde PHP y así bajar la carga a los frontales de nuestra aplicación web.

Despliegues mejorados

La configuración o el site building que se realiza mediante la interfaz de administración es exportable con el módulo Configuration Manager que viene con el core de Drupal. Esto permite tener la configuración versionada y hacer que se traslade entre entornos sin la necesidad de realizar despliegues manuales replicando la configuración en los distintos entornos.

Además cada entorno puede tener una configuración distinta por entorno (ips de los servicios, endpoints de prueba, módulos de apoyo al desarrollo activados, etc.) y por ello existe el módulo contribuido Config split que permite tener configuraciones distintas por entorno.

Conectividad e integración

Drupal sigue el foco de API First, por lo que hace posible conectar el contenido con otros sitios y aplicaciones de forma Headless.

JSON:API

Drupal viene con el potente módulo JSON:API que permite alimentar otras aplicaciones, como por ejemplo una aplicación móvil, un frontend desarrollado en React o un generador de sites estáticos tipo GatsbyJS, Next.js, etc.

Restful Web services

El módulo Restful Web Services, integrado en el core, permite definir los recursos REST para realizar desarrollos de integración con otras aplicaciones o bien sea para devolver una estructura de datos personalizada.

Junto al módulo Views y Serialization es posible crear endpoints de vistas que devuelven un listado de contenidos creados con el módulos Views desde la interfaz de administración, donde podemos indicar el tipo de contenido, añadir filtros contextuales en la URL y el endpoint que va a devolver los datos. Además es posible especificar si los datos se van a devolver en formato JSON o XML.

Autenticación del servicio web

El módulo contribuido SimpleOauth permite el uso de Drupal como repositorio de usuarios mediante el Oauth2, generando los Bearer token para atacar la API de JSON:API o Restful. Una vez obtenido el token y al acceder a los distintos recursos de la API Rest o JSON:API se tiene en cuenta el rol y los permisos del usuario, por lo que podemos crear los roles de usuario que puedan realizar acciones sobre ciertas entidades y tener la seguridad que no podrá afectar los contenidos de otros usuarios o los contenidos a los que no tiene acceso.

Migration API

La API de migraciones que viene con el core permite automatizar la importación del contenido hacia Drupal desde los distintos orígenes de datos, transformar y adaptar la información y guardarla en entidades y campos de la base de datos de Drupal. Así es posible utilizar Drupal como un frontend para mostrar los contenidos traídos de otras plataformas.

Hace unos meses Hiberus participó en un webinar explicando los diferentes casos de uso en los que se puede utilizar Drupal y que van mucho más allá de las funcionalidades de un típico CMS. En muchos casos se realizan integraciones con distintas tecnologías a través de las Api donde Drupal hace Backend o Frontend, dependiento de la situación. Allí explicaron a alto nivel las arquitecturas de algunos proyectos que habíamos implementado con las posibilidades que ofrece Drupal como un framework de gestión de contenidos.

 

En Hiberus contamos con un departamento de más de 120 desarrolladores Drupal. Nuestros más de 10 años de experiencia nos ha hecho trabajar en los principales casos de éxito Drupal a nivel nacional. Cuéntanos tu proyecto y conoce a nuestro equipo experto en Drupal.

 

¿Quieres más información sobre nuestros servicios de Drupal?

Contacta con nuestro equipo de Drupal

    9 posts

    Sobre el autor
    PHP Developer en hiberus
    Artículos
    Artículos relacionados

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    ¡No te pierdas nada!

    Te mantenemos al dia de tendencias y novedades sobre el futuro del trabajo, formas de hacer crecer tu negocio, liderazgo digital y muchas cosas más..

    Newsletter