martes, 21 de enero de 2014

Aplicaciones para la gestión de la configuración

Infraestructura

  • Accurev: esto se puede ver claramente a través de la web de Deiser - AccuRev. AccuRev es la mejor solución, para gestión de procesos software y gestión de la configuración (SCM), diseñada para modelos de desarrollo ágiles, en cascada e híbridos. Adicionalmente, AccuRev soporta de forma excepcional las necesidades de los complejos entornos de desarrollo en paralelo , geográficamente distribuidos y desarrollos externalizados. La arquitectura basada en streams de AccuRev ha sido diseñada para asegurar la óptima colaboración de equipos, reutilización de software y la apelación en un 30% del proceso de desarrollo de software.
  • Subversion: Subversion (SVN) es un sistema de control de versiones diseñado específicamente para reemplazar al popular CVS. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser el nombre de la herramienta utilizada en la línea de comando.
  • Git Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT. 2 Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. 3 Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux.
  • Chef: Chef es una herramienta para la gestión de configuraciones. Es decir, se encarga de instalar y configurar las aplicaciones en servidores o incluso estaciones de trabajo. Con él podemos realizar desde configuraciones básicas como establecer la hora del sistema, el idioma… hasta cosas tan complejas como levantar y configurar un cluster entero. Uno de sus objetivos es reemplazar los clásicos scripts hechos en bash por una alternativa más escalable y sencilla de mantener.

Automatización en la construcción y despliegue


  • Ant: Apache Ant es una herramienta usada en programación para la realización de tareas mecánicas y repetitivas, normalmente durante la fase de compilación y construcción (build). Es, por tanto, un software para procesos de automatización de compilación, similar a Make pero desarrollado en lenguaje Java y requiere la plataforma Java, así que es más apropiado para la construcción de proyectos Java. Esta herramienta, hecha en el lenguaje de programación Java, tiene la ventaja de no depender de las órdenes del shell de cada sistema operativo, sino que se basa en archivos de configuración XML y clases Java para la realización de las distintas tareas, siendo idónea como solución multi-plataforma.
  • Maven: Maven es una herramienta de software para la gestión y construcción de proyectos Java creada por Jason van Zyl, de Sonatype, en 2002. Es similar en funcionalidad a Apache Ant (y en menor medida a PEAR de PHP y CPAN de Perl), pero tiene un modelo de configuración de construcción más simple, basado en un formato XML. Maven utiliza un Project Object Model (POM) para describir el proyecto de software a construir, sus dependencias de otros módulos y componentes externos, y el orden de construcción de los elementos. Viene con objetivos predefinidos para realizar ciertas tareas claramente definidas, como la compilación del código y su empaquetado. Una característica clave de Maven es que está listo para usar en red. El motor incluido en su núcleo puede dinámicamente descargar plugins de un repositorio, el mismo repositorio que provee acceso a muchas versiones de diferentes proyectos Open Source en Java, de Apache y otras organizaciones y desarrolladores.
  • Gradle: Gradle es una herramienta para automatizar el proceso de construcción de software, o lo que comúnmente se llama, hacer una build. Viene a ser un Maven moderno, donde podemos destacar las siguientes diferencias:
    • Se escribe en un DSL de Groovy en lugar de en XML, por lo que queda mucho más conciso.
    • Al ser Groovy un lenguaje de programación, tenemos mucha más flexibilidad para particularizar el proceso. Ojo porque esto puede ser un arma de doble filo, ya que si nos salimos demasiado del estándar no habrá nadie que entienda nuestro proceso, así que esto tratarlo con cariño.
    • Soporta de manera sencilla el proceso de construcción de otros lenguajes que no sean Java, como Groovy, Scala, ... 
    Por supuesto, y al igual que Maven, tenemos gestión automática de las dependencias de nuestro proyecto, de hecho se conecta a los mismos repositorios de Maven o incluso de Ivy.
  • Continuum: Apache Continuum, un sistema complementario de Apache Maven, es un servidor de integración continua1 que ejecuta compilaciones de acuerdo con una calendarización configurable. De manera semejante a CruiseControl, Continuum envía correos electrónicos a los desarrolladores cuando la compilación arroja fallas, sugiriendo que el responsable subsane el problema. Para agregar un proyecto a Continuum, solo es necesario identificar el pom.xml en el sistema de control de fuentes.
  • Jenkins: Jenkins es un software de Integración continua open source escrito en Java. Está basado en el proyecto Hudson y es, dependiendo de la visión, un fork del proyecto o simplemente un cambio de nombre. Jenkins proporciona integración continua para el desarrollo de software. Es un sistema corriendo en un servidor que es un contenedor de servlets, como Apache Tomcat. Soporta herramientas de control de versiones como CVS, Subversion, Git, Mercurial, Perforce y Clearcase y puede ejecutar proyectos basados en Apache Ant y Apache Maven, así como scripts de shell y programas batch de Windows. El desarrollador principal es Kohsuke Kawaguchi. Liberado bajo licencia MIT, Jenkins es software libre.
  • Bamboo: Bamboo es un servidor de integración continua (CI) de Atlassian que se integra plenamente con Jira y que se paga en función del número de agentes de build que necesitas, lo que hace que la inversión esté alineada con tus necesidades. Incluso hay una versión on demand, es decir, en modalidad SaaS.
  • Cruise Control: CruiseControl es una aplicación de código abierto basado en Java que permite la compilación automática de proyectos Java, utilizando Ant o Maven. Es una herramienta comúnmente utilizada en integración continua que cada cierto tiempo, o cuando hay cambios en el gestor de versiones (por ejemplo CVS o Subversion), hace una compilación y ejecuta tests (más cualquier otra cosa que esté configurada en Ant o Maven) y una vez acaba presenta el resultado. Esta presentación puede ser en HTML, por correo electrónico, RSS, Jabber/XMPP, etcétera. Fue originalmente desarrollado por gente de ThoughtWorks como una manera de conseguir Integración Continua en alguno de sus proyectos. Posteriormente y dada su utilidad, la herramienta fue desarrollada como una aplicación independiente (stand-alone application). Actualmente, existe también una version de CruiseControl para .Net llamada CruiseControl.Net.

Related Posts

Aplicaciones para la gestión de la configuración
4/ 5
Oleh

Subscribe via email

Like the post above? Please subscribe to the latest posts directly via email.

Comenta este artículo, por favor: