<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TUREGANO.NET &#187; Arquitectura</title>
	<atom:link href="http://www.turegano.net/tag/arquitectura/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.turegano.net</link>
	<description>El blog de los Turegano.</description>
	<lastBuildDate>Mon, 24 Oct 2011 14:35:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Una pieza que faltaba: El Sistema de Integración</title>
		<link>http://www.turegano.net/2008/10/01/sistema-integracion/</link>
		<comments>http://www.turegano.net/2008/10/01/sistema-integracion/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 14:20:05 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[La Comunidad]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Andago]]></category>
		<category><![CDATA[Arquitectura]]></category>

		<guid isPermaLink="false">http://www.turegano.net/?p=604</guid>
		<description><![CDATA[Bueno ya llevo mis primeras semanas dedicadas al tema de Arquitectura de Plataforma y sumergiéndome en el mundillo del desarrollo Java, aunque sea desde el punto de vista no ya del desarrollador sino de la gestión de sistemas y la organización de proyectos. El primer punto en el que queríamos focalizar los esfuerzos es en [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno ya llevo mis primeras semanas dedicadas al tema de Arquitectura de Plataforma y sumergiéndome en el mundillo del desarrollo Java, aunque sea desde el punto de vista no ya del desarrollador sino de la gestión de sistemas y la organización de proyectos. El primer punto en el que queríamos focalizar los esfuerzos es en la gestión de entornos: desarrollo, pre-producción y producción y el paso que realizan los proyectos a través de estos.</p>
<p>Primero describir el escenario inicial: existen diversos grupos de desarrolladores trabajando en varios proyectos, muchos de ellos interelacionados entre si. Este proceso de desarrollo muchas veces se realiza en la propia máquina de los desarrolladores y se va subiendo a un repositorio común, en nuestro caso <a href="http://subversion.tigris.org/">subversion</a>. El problema aparece cuando se intenta llevar una versión a producción y esto se hace desde el equipo de algún desarrollador, por lo que en muchos casos ese código ni ha subido aún al subversion, se tienen instaladas librerías o versiones del JDK que no se corresponden con las que hay en producción, no queda registrada que versión pasa a producción y cuál había, otras veces el proyecto se compila dentro de la máquina de producción, etc&#8230; es decir, en el caso de un desarrollo ya medianamente grande se va creando un pequeño/gran caos.</p>
<p>Para solucionar este problema hemos desarrollado el siguiente esquema de funcionamiento en el que encontramos una pieza clave: el <strong>servidor de integración</strong>. </p>
<div align="center"><img src="http://www.turegano.net/wp-content/uploads/2008/10/gestionentornos.png" alt="" title="gestionentornos" width="500" height="360" class="alignnone size-full wp-image-605" /></div>
<p>Todas las &#8220;piezas&#8221; que se quieran pasar a producción deberán ser construidas en este servidor de integración y además siempre se obtendrán todos los elementos necesarios para la construcción del sistema apartir del control de versiones. </p>
<p>Con ello matamos varios pájaros de un tiro:</p>
<p>- Tendremos controlada la versión de los proyectos desplegados, sobretodo si generamos un Tag de subversion tras la compilación correcta.<br />
- El entorno de construcción está controlado, siempre se usará la misma versión de la máquina virtual, librerías, etc&#8230; y nos aseguraremos que en producción dispongamos de ese mismo entorno.<br />
- No requeriremos de compiladores ni dependencias de ese tipo en los entornos de producción, cosa que es altamente recomendable por motivos de seguridad.<br />
- Los desarrolladores ya no tendrán acceso a las máquinas de producción, simplemente tendrán que solicitar una nueva compilación de su proyecto al servidor de integración y los encargados de sistemas lo pasarán a pre-producción y una vez probado a producción.</p>
<p>Buscando alguna interfaz que nos permita hacer más amigable el proceso de compilación de proyectos en una máquina remota me he encontrado con los llamados servidores de <a href="http://en.wikipedia.org/wiki/Continuous_Integration">integración continua</a>, a los que dedicaré un post individual, pero que nos pueden facilitar enormemente esta tarea además de darnos algunas ventajas adicionales.</p>
<p>Por otro lado hemos descubierto que no debemos basarnos únicamente en los elementos ejecutables que pasan a producción, sino que en muchos casos habrá que hacer subidas también de datos requeridos para el funcionamiento de la aplicación: modificaciones a las bases de datos o al LDAP o directorios con ficheros necesarios. Estos objetos se empaquetarán junto con la consiguiente nueva versión del proyecto y deberán gestionarse de forma paralela a este, tanto en versionado cómo en su posterior subida a producción.</p>
<p>Finalmente otra gran ventaja la encontramos al disponer de entornos de pre-producción para cada proyecto que nos permitan probar las nuevas versiones de las aplicaciones antes de pasar a producción. Una buena infraestructura de virtualización nos puede ser de gran ayuda en esta parte ya que nos va a permitir tener multiples entornos dentro de un mismo servidor compartiendo recursos.</p>
<h3  class="related_post_title">Artículos relacionados:</h3><ul class="related_post"><li><a href="http://www.turegano.net/2011/10/09/aplicando-scrum-en-el-departamento-de-it/" title="Aplicando Scrum en el departamento de IT">Aplicando Scrum en el departamento de IT</a></li><li><a href="http://www.turegano.net/2011/08/15/trabajar-desde-casa/" title="Trabajar desde casa">Trabajar desde casa</a></li><li><a href="http://www.turegano.net/2011/07/16/en-el-openstack-emea-day/" title="En el openstack EMEA day">En el openstack EMEA day</a></li><li><a href="http://www.turegano.net/2011/07/11/mudanza-virtual-de-servicios-a-la-devops/" title="Mudanza virtual de servicios a la devops">Mudanza virtual de servicios a la devops</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.turegano.net/2008/10/01/sistema-integracion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
