Presentación de ModularIT en la Universidad Carlos III, Madrid

Mañana jueves 5 de febrero estaré presentando en la Universidad Carlos III de Madrid el proyecto ModularIT. La charla tendrá lugar a partir de las 9:30 en el salón de grados de la Universidad, en C/. Butarque, 15 Leganés (Madrid). Edificio Betancourt, Salón de Grados 1.2.C.16.

Tras su finalización, Kuko armas estará respondiendo a las preguntas de los participantes desde Lanzarote (audio conferencia).

Esta charla entra dentro de la política de difusión del proyecto, que tendrá su punto culminante el próximo domingo 8 de febrero del presente año en el evento FOSDEM, que se celebrará en Bruselas.

Grado de madurez de un proyecto de software libre desarrollado en comunidad

A lo largo de los próximos meses seguiremos con nuestra idea de promocionar ModularIT y añadir algunas mejoras y documentación, tanto en castellano como en inglés. Aunque a nuestro ritmo, seguimos avanzando hacia lo que esperamos se convierta en un proyecto de comunidad maduro. Andamos discutiendo un poco sober algunos pasos a seguir durante los próximos meses.

Esto me lleva ha llevado a tratar de definir qué es un proyecto de comunidad maduro. ¿Cómo se mide la madurez de un proyecto?

El número de personas que contribuyen al proyecto no es una medida demasiado eficaz en este caso. Existen proyectos con muy pocos desarrolladores con un gran éxito y solvencia y otros que, a pesar de tener una gran comunidad, no es posible considerarlos proyectos de desarrollo en comunidad. Hay varios ejemplo pero uno de los más interesantes es aquel en el que una empresa tiene la sartén por el mango del desarrollo y, aunuqe libera el software y la documentación, no libera el know-how o no desarrolla en abierto.

El nivel de uso o popularidad tampoco en un factor definitivo. Hay productos libre de desarrollo en comunidad muy usados que son bastante inmaduros y viceversa. Ejemplos pos ambos lados hay muchos.

El nivel de madurez de la documentación o la cantidad de información publicada dice mucho del las bondades de un proyecto sin embargo, existen proyectos muy consolidados que carecen de documentación al nivel de otros aspectos del mismo. También hay algunos ejemplos, pocos, de proyectos bien documentados sin ningún tipo de comunidad alrededor. Existen ejemplos de iniciativas de comunidad que tienen el apartado organizativo y legal bien trabajado mientras que otros no prestan importancia excesiva a esos elementos. Algunos muy relevantes han tenido problemas por estos detalles y otros parecen convivir fantásticamente con el caos organizativo pues el debate se estructura debidamente.

El factor económico es otro elemento a tener en cuenta. Existen ejemplos de proyectos pequeños tremendamente rentables frente a otros enormes y de impacto global que no se mantienen económicamente por lo que deben recurrir a llamadas desesperadas a la comunidad para recabar fondos. Quiere esto decir que la supervivencia económica tampoco es un factor definitivo.

Existen factores adicionales pero las conclusiones para casi todos ellos son similares. No parece que haya un único elemento clarificador para establecer el grado de madurez de un proyecto de desarrollo en comunidad. Tampoco creo que dos o tres de ellos analizados simultáneamente definan el grado de madurez en un porcentaje lo suficientemente relevante como para permitirnos establecer un patrón a partir del cual comenzar un análisis comparativo serio usando la estadística. Me conformaría por ahora con poder aplicar el arte de la magia de los números como antesala de la ciencia.

Resulta difícil comparar si no puedes determinar las variables independientes del sistema.

Y tal vez sea ese parte del problema. Determinar el grado de madurez de un proyecto de desarrollo de software libre en comunidad, es decir, comparar unos proyectos con otros, requiere primero del establecimiento de las variables a estudiar, su relación y los entornos de laboratorio que se utilizarán para fijar todas las variables salvo aquella objeto de estudio en un entorno controlado, pasando posteriormente a evaluar el impacto que provocan esas variaciones en el propio sistema. Así, podrá entenderse mejor los cambios reales. Vamos, metodología básica de experimentación.

Arriba se han apuntado algunos factores que pueden convertirse en magnitudes independientes, pero hay más. Últimamente han salido varios desarrolladores enseñando estadísticas de commits que permiten hacer análisis de interés sobre la evolución de un proyecto. He asistido a alguna charla o conferencia en la que se han presentado estudios primarios sobre proyectos libres utilizando los grandes repositorios conocidos por todos como Sourceforge o Freshmeat. Y como yo no soy experto en la materia, probablemente todo este post carece de sentido porque hay gente que ha estudiado el tema y ha obtenido primeras conclusiones de interés. Si este es el caso, ruego al lector que me apunte los enlaces para salir de mi ignorancia. mi rss está saturado pero puedo borrar algunas entradas para dar cabida a nuevas 😉

Esta disertación tiene sentido para mí puesto que ando estableciendo el roadmap de ModularIT. Para su definición, casi todos los factores que estoy teniendo en cuenta son de carácter interno. Esto es lógico porque aún no somos más que un aspirante a proyecto de desarrollo en comunidad. Pero existe un pequeño espacio para definir tareas que importen a otros o que ayuden a otros a participar. Por tanto, si dispusiera de una definición clara de madurez, esto es, si existiera un punto final, sería posible en teoría establecer una ruta a seguir. Como no la hay… pues no queda más remedio que emplear muchas dosis de observación de otros proyectos, aplicar intuición y debate.

He tenido a lo largo de estos años la oportunidad de vivir de modo cercano dos proyectos muy distintos, LTSP primero y KDE después. También conozco Debian (he trabajado con desarrolladores de ese proyecto y he compartido tiempo y disertado con muchos algunos más), Ubuntu y ahora estoy comenzando a dar pasos pequeños en el conocimiento de GNOME (superficiales todavía). Me interesan especialmente el proyecto Apache y el kernel, pero mi tiempo es limitado…. De todos se aprende algo…pero no debe uno centrarse sólo en casos de éxito. Los fracasos enseñan. El caso twiki nos afecta en la empresa y es muy interesante, así como Compiere, PXES, los CMS en php y otros que hemos conocido en Grupo CPD con más o menos profundidad. Atesoramos alguna experiencia también en proyectos propios fallidos de la que hemos aprendido mucho.

Pero estamos en lo de siempre, si no sistematizas el aprendizaje, no es posible transmitir la experiencia a gran escala. Y para eso es necesario conocer el problema. No es posible conocer sin experimentar, ni experimentar sin definir, ni definir sin acuerdo. Y en el aspecto sobre el que ando liado no hay maldito acuerdo.

Esta es la parte dolorosa de estar situado en vanguardia, la conciencia que se adquiere sobre el error. Del mismo modo, se siente una especial exitación. Es la satisfacción de la curiosidad.

Maldita sea….hoy me gusta mi trabajo.

ModularIT 1.1 lanzado como proyecto libre de desarrollo

A lo largo de estas Navidades hemos lanzado ModularIT como proyecto libre de desarrollo. Para Grupo CPD este lanzamiento es el final de un trayecto y el comienzo de otro. Damos por fin un paso con el que siempre habíamos soñado. Tener la oportunidad de desarrollar en abierto un producto que nos identifique como Grupo.

Se inicia por tanto una andadura que, como mínimo, nos llevará a lugares similares a los que llegaríamos igualmente si no abriéramos el proyecto. Como se ha comentado en otras ocasiones, ModularIT es algo que nosotros implantamos en nuestros clientes desde hace algún tiempo, por lo que confiamos y apostamos por él en el futuro próximo. ModularIT es un tren en marcha. Tratamos de imprimirle un mayor empuje con la colaboración de otros administradores de sistemas.

Para liberar el desarrollo del proyecto hemos apostado por Redmine, una herramienta realizada en Ruby. Quienes nos conocen saben que tenemos especial predilección por ese lenguaje. Se trata de una manera natural de abrir caminos de interacción entre nuestros desarrolladores de software y el proyecto ModularIT, que nace del equipo de redes y sistemas del Grupo.

Como sistema de versionado hemos apostado por git. Mientras que nuestros compañeros de desarrollo están ampliamente familiarizados con sistemas distribuidos de versionado de software, la mayor parte de los que componen el grupo de sistemas y redes han usado hasta ahora SVN principalmente. Así, para muchos de nosotros git es un salto de calidad que, como siempre ocurre, nos costará digerir al principio, pero que será rentable. Sin aprendizaje no hay diversión. Somos conscientes que algo similar le ocurre a muchos de nuestros posibles colaboradores. Sólo esperamos que se enfrenten a este reto con la misma voluntad de aprender que nos ha llevado a esta elección. Asumimos por tanto el riesgo de aumentar la barrera de entrada al proyecto a cambio de un poco de diversión.

¿Quién dijo que la diversión está reñida con los negocios?

Como primicia, les comento que nos han aprobado una presentación del proyecto en FOSDEM, uno de los eventos relevantes a nivel europeo relacionados con software libre. Se celebra anualmente en Bruselas en el mes de febrero y el inglés es obligatorio. Desde el año 2005 venimos participando activamente en eventos internacionales presentando trabajos individuales o corporativos. Este es para nosotros un caso especial puesto que se trata de un proyecto salido de nuestra cocina, financiado enteramente por nuestros clientes (¿qué seríamos sin ellos?) y nosotros mismos. Esta presentación, junto con nuestra activa participación en la organización del Gran Canaria Desktop Summit 2009, representan para Grupo CPD el colofón a más de 10 años de trayectoria profesional o empresarial así como a 4 años de andadura como Grupo (red de empresas). También es una responsabilidad.

Nos han preguntado por qué esta versión que lanzamos ha sido numerada con la serie 1.1. La razón es simple. Hace algo de más de un año fue liberada la versión 1.0 de ModularIT. Dicho proyecto estaba orientado a que los administradores de sistemas pudieran descargar y usar esta arquitectura de servicios, pero no era un objetivo prioritario que participaran en su desarrollo. Esa versión 1.0 fue implantada en algo más del 80% de nuestros clientes. Durante el verano comenzamos a trabajar en las mejoras de la serie 1.0 y en otoño ya disponíamos de una depurada versión, que comenzó a implantarse en nuestros nuevos clientes. Aquellos que disponían de la versión 1.0 están siendo migrados a la serie 1.1 desde entonces. Este proceso es lento…pero infinitamente más simple que antaño. La versiones previas de ModularIT fueron implantadas en clientes, pero no liberadas.

Llamando a la serie que presentamos estos días 1.1 queremos reflejar que se trata de una arquitectura de servicios madura, que ha pasado el filtro del tiempo, el uso de muchos usuarios y ha sido a su vez soportada y mantenida por nuestro departamento de redes y sistemas (y algunos ingenieros de clientes). Esto no asegura que se encuentre libre de fallos, pero sí aporta una solidez nada común entre proyectos de reciente liberación, en especial, entre aquellos de complejidad similar a la de ModularIT .

La serie 1.1 que se ha publicado aún adolece de algunos servicios clave que sí estaban disponibles en la versión anterior. Poco a poco iremos incorporándolos. Sin embargo, añadir servicios no va a ser durante los próximos meses nuestra principal prioridad. Lo será seguir avanzando en el apartado de gestión, soporte y mantenimiento de la arquitectura junto con la incorporación de nuevas integraciones entre los servicios disponibles. Animamos a los lectores que modularicen los servicios que más les gusten o usen, de modo que puedan ser incorporados al proyecto, beneficiando a un número mayor de empresas y usuarios.

Todos los días aprendemos algo nuevo sobre ModularIT en nuestra actividad diaria de despliegue, soporte y mantenimiento en nuestros clientes. Ese conocimiento lo incorporamos a las distintas actualizaciones del proyecto. Esto tiene como positivo que aporta un valor importante al producto, sin embargo, administradores que pretenden implantar el proyecto en escenarios diferentes a aquellos para los que se ha diseñado ModularIT, necesitarán invertir cierto esfuerzo de adaptación.

Hemos desarrollado ModularIT pensando en nuestros clientes, sin embargo, los escenarios planteados por éstos son tan diversos, que llegamos pronto a la conclusión de que ModularIT se adapta a multitud de circunstancias. Parte de su complejidad reside precisamente en este punto. ¿Dónde aplicamos la tijera?¿Qué funcionalidad o configuración es la más relevante? Algunas configuraciones, herramientas o decisiones de diseño que ModularIT 1.1 incorpora son discutibles. No somos infalibles y los factores históricos pesan. Estamos abiertos a discutirlas y sacar conclusiones nuevas que desemboquen en mejoras o cambios en el proyecto. No tiene sentido establecer un proyecto de comunidad si no asumiéramos ese compromiso.

La traducción al inglés de las guías de despliegue y soporte es de prioridad máxima en este momento. A lo largo del mes de enero esperamos resolver este importante punto, de modo que personas de otras lenguas puedan incorporarse realmente a la comunidad ModularIT.

Hay detalles menores que esperamos solventar poco a poco, como quitar pequeñas referencias corporativas del proyecto, de modo que sea aséptico. Hay logos, direcciones de correo, etc. que aún hacen referencia a Grupo CPD o alguna de sus empresas miembro. Nos hubiese gustado eliminarlas a tiempo pero, en algunos casos, requiere más esfuerzo del inicialmente previsto. Si se analiza la evolución del proyecto (de solución interna a proyecto de comunidad) se entiende este hecho. La próxima serie esperamos que ya no incluya referencias no deseadas.

Tenemos disponibles dos listas de correo, una abierta para usuarios de ModularIT, y otra para desarrollo del sistema, a la que se accede por invitación tras propuesta del interesado. El primer paso que recomendamos para incorporarse al proyecto es la suscripción a la primera de las listas. Esto nos lleva a hablar del modelo que hemos establecido para colaborar en el desarrollo de ModularIT.

En primer lugar queremos poner de manifiesto que hemos liberado el proyecto para que los sysadmins puedan usarlo y colaborar si lo desean, luego todos son bienvenidos. Claro que ModualrIT es un proyecto que utiliza tecnologías punteras y conceptos complejos. La curva de aprendizaje es alta con lo que la barrera de acceso necesariamente debe serlo también. La confianza no se otorga, se gana.

Estos dos argumentos contrapuestos serán difíciles de gestionar. Esperamos ser inteligentes en este sentido y evitar que personas con interés se sientan excluidos. Aquí la transparencia como política será determinante puesto que hay campo de sobre para incorporar cualquier tipo de colaboración. Queremos aglutinarlas todas. El proyecto deseamos que madure y camine por sí sólo llevado por la voluntad de quienes formen parte de él, más allá de nuestra voluntad o interés. Esta intención tendremos que demostrarla diariamente, lógicamente.

Por último deseo animar al lector a aprender sobre ModularIT participando en un verdadero proyecto de I+D+i relacionado con software libre. Ha sido especialmente pensado para administradores de sistemas y redes distribuidas que necesitan simplificar su gestión, posibilitando la escalabilidad del servicio que prestan.

Si es que al final todo lo hacemos para ser más felices… o menos desdichados, según se mire.

ModularIT a new community project for system administrators

I want to write today about what I have been doing lately.

After finishing my job related with public administrations’ migration to free software in Extremadura and Malaga, Andalucia, Spain, I began to work again in November with my Canary Islands teammates (Grupo CPD) in ModularIT. This is a project we released under GPLv3 a few monthes ago that was ready to use but not to contribute to. In practice, as it happens too often, projects are published as free software but, since they don’t have the proper design and a right tool, it is not possible for developers to work on it, so nobody use them.

This was exactly what it happened to us. We made a big effort then but another extra effort was needed. It is not enough to public the software and wait for the community to use it. You also need to take care of a few other things. We decided not just to offer a new 100% percent community project, but also to release a new version of ModularIT, to make the release more attractive. So additional technical wok have been done. My job has been (still is) to design and organice the community project, as long as helping in translations, requirement definition and promotion.

Yesterday, december 26th of 2008, we published ModularIT 1.1 (codename “Timanfaya”) as long as the new project design, a new collaborative tool and a distributed repository (redmine + git). The first language for this new project is english, although we are still translating deployment and support guides from spanish. We hope some people and companies from other countries cooperate with us in this new adventure.

For a small company like us, mostly dedicated to give services to other companies, having a 100% community project means a lot of effort, but we are really happy for reaching this point. ModularIT is something we’ve been looking for so long … We always felt that we have recieved more than we gave from the community. This pretends to change that feeling. 🙂

¿What is ModularIT? This is a hard question….

ModularIT is an architecture of distributed, virtualiced, integrated, monitored, and centrally managed network services based on software libre. You can get a better description here

ModularIT uses, among other technologies and projects, XEN, Puppet, Munin, Nagios, Posfix, Hylafax, Jabber, AIDE, SElinux, Dirvish, Alfresco, Samba, OpenLDAP, Asterisk or eGroupware. Our goal is to deploy, support and migrate a variety of network services with a limited amount of human resources, trying to manage them with an affordable effort, alowing us to increase the number and dimensions of our customers (number of servers and services) under our control (in different levels). ModularIT is a step forward in that direction, not the final solution, obviously.

Previous versions of ModularIT have been deployed, supported and maintained in our customers the last few years. What we present is an evolution of what we have been doing. It is not a new software that haven’t been in production nor a bunch of appliance. We have been migrating our customers to this new ModularIT version for a few monthes and we feel confortable with the result. ModularIT has show us to be efficient. It is worth it for us. We hope it will also for other companies and system administrators.

You can try and judge by yourself. If you are interested in this solution, download it, deploy it and give ModularIT a try. If you think it is worth it, collaborate with us.

Merry Christmas

ModularIT. Un proyecto libre de comunidad

Los administradores de sistemas siempre han tenido menos vocación de desarrollo en comunidad que los desarrolladores de aplicaciones. Probablemente es porque tienen una orientación al servicio más acentuada. Así, son grandes consumidores de sofwtare libre pero no suelen ser grandes contribuidores. Al menos esa es la percepción que yo tengo.

Cuando nos planteamos el reto de liberar ModularIT, una de las principales motivaciones para el equipo de sistemas y servicios de Grupo CPD era precisamente la de poder participar activamente en un proyecto libre directamente relacionado y orientado a ellos. No es que no existan ya en la red, sino que no son horizontales. ModularIT es una arquitectura que usa software libre desarrollado por otros, no es un desarrollo en sí. Utiliza multitud de soluciones libres disponible en el mercado, personalizadas de tal manera que sean útiles inmediatamente en cualquier empresa, en especial, en aquellas con varios servidores distribuidos.

Estamos ahora mismo trabajando en el diseño del proyecto de comunidad, la definición de roles, la ordenación del código, la traducción de contenidos etc. Es decir, tratamos de pasar de un proyecto muy orientado al uso de la tecnología, accesible en la actualidad a través del enlace http://www.modularit.org , a un modelo convencional de desarrollo en comunidad. Si todo va según lo previsto, el día 26 de diciembre se relanzará el proyecto.

La tecnología que compone ModularIT está consolidada. Usamos software bastante probado y popular. Para ponerlo en producción debe ser así. Y es precisamente ese una de los valores importantes que Grupo CPD aporta con ModularIT, que posee un ciclo de vida que incluye su implantación en nuestros clientes, lo que le confiere una robustez impropia de proyectos nuevos. De modo que existe un aliciente de interés para usar el software que ponemos a disposición de la comunidad, pero también para participar en él. Al menos esa es nuestra creencia y con esa intención trabajamos.

Animamos a administradores de sistemas, a docentes y alumnos a usar una tecnología que a nosotros nos resulta útil, que facilita tareas tediosas y que puede crecer enormemente de la mano de todos, más allá de nuestros deseos, de nuestros objetivos y, esperamos y deseamos, de nuestro control. Eso significaría que ModularIT es un verdadero proyecto de comunidad.

Mientras tanto, a partir del 26 de diciembre, entra en la web y descarga las diferentes máquinas virtuales, procede a instalarlas y diviertete destrozándolas, analizándolas y, en último extremo, mejorándolas, poniéndolas en producción, monitorizándolas, etc. En fin, todo eso que se hace con un juguete nuevo. Para nosotros, ModularIT tiene también algo de eso, de juego, de diversión, de innovación.

ModularIT tiene un amplio recorrido en la aplicación de medidas prácticas relacionadas con conceptos como el soporte y mantenimiento. Marca una línea clara respecto a cómo deben realizarse algunas tareas asociadas a ellos. No son ideas nuevas, pero proponemos algunas implementaciones bastante simple, por lo que esperamos que muchos administradores puedan trabajar sobre ellas y aportar ideas y mejoras sin esfuerzos titánicos. Creemos haber reducido la curva de aprendizaje por motivos internos de coste, lo que esperamos tenga efectos colaterales positivos para personas en fase de aprendizaje, como nuestros técnicos más jóvenes.

Aún así, hablamos de una arquitectura de servicios virtualizados, modulares y distribuidos. No hay fórmulas mágicas para alcanzar unos niveles de conocimiento razonables en la materia sin esfuerzo. Hay que empollar, probar, volver a empollar… y pegarse como una lapa a los que saben, física o virtualmente (qué grande es el software libre).

Todo esto son palabras huecas que adquirirán, o no, sentido a partir del 26 de diciembre, cuando otros técnicos comiencen a emitir su veredicto. Sí quiero aclarar que liberamos ModularIT con humildad. Estamos dispuestos a mejorarlo con la colaboración de quienes quieran acompañarnos en este viaje. El hecho de que esta tecnología nos haya supuesto ya un claro beneficio no quiere decir que sea ideal o perfecta para otros, ni mucho menos.

Insisto, ustedes dirán.