• No results found

Chapter 5 Temporal Ensemble Analysis

5.3 Member Segmentation

Primeramente es necesario destacar que algunas de las herramientas para la construcción de paquetes individuales tienen un potencial para ser reutilizadas. En ese caso se encuentran sbuild y

pbuilder. Ambas satisfacen la necesidades para la implementación de los nodos esclavos en un sistema distribuido de compilación. De ellas, pbuilder es la que mejor prestaciones brinda, sobre todo por la posibilidad de actualizar el sistema base donde se realiza la construcción de paquetes utilizando la funcionalidad “dist-upgrade” de apt de forma sencilla y correcta.

En el caso de los sistemas de construcción de paquetes que se estudiaron, existen varios inconvenientes para su reutilización. Koji se descarta como sistema debido a que sólo sirve para paquetería .rpm, cuando el objetivo de esta investigación es la utilización de un sistema que soporte paquetería .deb – se estudió fundamentalmente para conocer las características de estos sistemas y obtener ideas útiles para la implementación otros similares – . Queda centrar el análisis en Open Build Service, Buildd y Soyuz.

Todos los sistemas estudiados son libres y de código abierto. El código fuente de los mismos se puede descargar, utilizar, modificar, redistribuir de acuerdo con las cuatro libertades que propugna el movimiento de software libre. Sin embargo, estas acciones orientadas a liberar estos sistemas a la comunidad parecen haber sido hechas más para cumplir con un contrato social que con el objetivo de lograr un amplio uso de las mismas, pues los productos liberados no están en condiciones de ser desplegados con facilidad en la infraestructura de otras organizaciones. En la práctica, estos sistemas están configurados para funcionar perfectamente en la plataforma de hardware con que cuentan sus proyectos de origen, pero no están enfocados al uso por terceras partes. Esto se evidencia entre otras cosas, en la escasa documentación con que se cuenta para desplegar estas soluciones, así como alguna que explique sus interioridades. En definitiva, las personas o instituciones que deseen reutilizar estos sistemas de compilación, tienen que terminar estudiándose el código y deduciendo como implementar las mismas en la infraestructura con que cuenten.

Otro inconveniente que presentan estos sistemas es que requieren intervención humana para la creación del sistema base o imagen inicial donde se realiza la compilación de los paquetes. Lo

que se busca es un sistema que automatice todo el proceso de creación del repositorio con la menor intervención humana posible, reduciéndose la misma a las tareas básicas indispensables como suministrar los repositorios a usar o el nombre de la nueva distribución a crear, automatizando completamente el proceso de bootstrapping. Los sistemas existentes son incapaces de realizar un proceso de bootstrapping completo utilizando los paquetes binarios existentes en los repositorios de versiones anteriores de la distribución que se desea construir o en el de otras distribuciones.

Por otro lado, es conveniente que el sistema que se use se integre perfectamente a la plataforma de desarrollo del proyecto Nova, que se pueda extender con facilidad para incluir otras funcionalidades en el futuro, y que la complejidad inherente al mismo sea mínima. La mejor forma de lograr esto es diseñando un sistema teniendo en cuenta la visión que se tiene en el proyecto de qué es lo que se quiere lograr a corto, largo y mediano plazo. Tener un sistema propio brinda la posibilidad de tener control total sobre su desarrollo, sobre las decisiones a adoptar en cuanto a la inclusión de nuevas funcionalidades en cualquier momento, contando para ellos con un conocimiento completo del mismo.

De los sistemas de compilación estudiados se pudieron tomar varios elementos positivos, sobre todo comparándolos con los antecedentes que existían en cuanto a sistemas de compilación en el proyecto Nova. Algunos de estos elementos son: la arquitectura de software que implementan, el lenguaje de programación que utilizan, los protocolos de comunicación que emplean, los marcos de trabajos y bibliotecas de los que se sirven para su implementación, su interacción con otros sistemas, su utilización por parte de los usuarios, entre otras cualidades a tener en cuenta para la implementación de un nuevo sistema distribuido de compilación/construcción de paquetes. Por ejemplo, del estudio de estos sistemas se decide utilizar como lenguaje de programación Python, el marco de trabajo para la comunicación por red Twisted y seguir prácticamente la misma arquitectura de nodos esclavos con una herramientas de compilación/construcción avanzada de paquetes individuales y un nodo máster que controle el proceso y que presente una interfaz web por donde se pueda configurarlo y controlarlo.

Conclusiones del capítulo

A lo largo de este capítulo se han podido explorar las distintas aristas que componen el problema científico sobre el cual versa el presente trabajo. Se pudieron esclarecer los conceptos fundamentales involucrados en el campo de acción sobre el cual gira la presente investigación y los antecedentes que dieron origen al desarrollo de la misma, lo que ha permitido hacer una sistematización sobre la experiencia acumulada por las personas que a lo largo de los años han

estado vinculadas a la implementación de soluciones similares en el entorno donde se origina la presente investigación. También se ha podido realizar un estudio sobre herramientas existentes en el mundo que resuelven el mismo problema, analizando sus aciertos y debilidades, estableciendo cuales características se presentan como deseables para un sistema de construcción de repositorio de paquetes binarios y cuales no tanto, qué tecnologías son las más empleadas para la implementación de estos sistemas y la arquitectura que estos utilizan. Todo esto ha permitido determinar que no existe en la actualidad un sistema de construcción de repositorio de paquetes binarios que satisfaga las necesidades el proyecto Nova, lo que significa que para dar solución al problema científico planteado es necesaria lo creación de un sistema propio como continuación de la presente investigación. No obstante, los sistemas existentes cuentan con características deseables para implementar en la solución propuesta, a la vez que se pueden reutilizar algunas de las herramientas estudiadas en el presente capítulo.

Related documents