Presentando Configuration Management, una alternativa al Módulo Features

En marzo de 2009 un nuevo módulo apareció en Drupal.org. Su nombre era Features y pronto se convirtió en uno de los más mencionados por los desarrolladores de Drupal.

Este módulo permitia empaquetar distintas características de un sitio, como tipos de contenido, vistas, permisos y campos dentro de un único módulo. La idea era poder reutilizar esa funcionalidad en todos los sitios en los que se necesitaran.

Luego de un tiempo, los desarrolladores comenzaron a utilizar Features para hacer deploys incrementales de sus proyectos. El método utilizado era exportar toda la funcionalidad del sitio en distintos features y volcarlos a un sitio comun. Una y otra vez, de forma incremental.

El impacto de Features fue tan grande que en Drupal 8 se esta diseñando e implementando todo un nuevo sistema de configuraciones para poder separar el contenido de la configuración.

Features es hoy en día la única opción para mover configuraciones entre sitios de forma gráfica. Aunque su proposito original no fue el de hacer soporte para este tipo de tareas. Es por eso que surgieron muchos módulos como Features Tools, Feaures Override para tratar de mejorar y forzar la forma en que features trabaja para adaptarse mejor a la idea de deploys iterativos.

El módulo Configuration Management surge como una alternativa y busca ofrecer respuesta a muchos de los problemas que presenta Features. Basado en algunas ideas implementadas en Drupal 8, este módulo pretende hacer el manejo de configuraciones mucho más sencillo y manejable para todas aquellas personas que trabajen profesionalmente con Drupal.

Interfaz de configuration Management

Algunos conceptos básicos

Configuration Management maneja el concepto de de ActiveStore y DataStore. El ActiveStore representa la base de datos del sitio de Drupal. El DataStore es un conjunto de archivos que representan el estado actual de las configuraciones del sitio.

Cuando una se inicia el 'Tracking' sobre una configuración automaticamente es exportada al DataStore, y desde ese momento pueden detectarse cambios sobre las configuraciones.

Cada configuración es almacenada en un único archivo. Por lo tanto, distintos desarrolladores pueden trabajar en distintos archivos y realizar commits al repositorio con menor chance de generar conflictos que utilizando Features.

Si bien Configuration Management posee un sistema para detectar dependendencias entre configuraciones, estas pueden ser modificadas para exportar e importar unicamente aquellas configuraciones

El 11 de Diciembre de 2012 después de cinco meses de trabajo, se liberó la primera versión de este módulo. Tiene algunos bugs pero puede comenzar a probarse.

Esperamos que les sea de utilidad, por favor pruebenlo y reporten bugs.

Link al proyecto: http://drupal.org/project/configuration

Hasta la próxima.

Compartir este material en...

Comentarios

Creo que la iniciativa es estupenda, y responde a una necesidad no cubierta (a pesar de la mejora que introduce features). Creo que es importante que tanto el concepto como la experiencia de usuario se asemeje al máximo posible con lo que va a terminar incorporando D8, ya que el módulo se puede beneficiar mucho de la extensa discusión que ha sucedido en esta iniciativa.