Una pieza que faltaba: El Sistema de Integración

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.

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 subversion. 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… es decir, en el caso de un desarrollo ya medianamente grande se va creando un pequeño/gran caos.

Para solucionar este problema hemos desarrollado el siguiente esquema de funcionamiento en el que encontramos una pieza clave: el servidor de integración.

Todas las «piezas» 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.

Con ello matamos varios pájaros de un tiro:

– Tendremos controlada la versión de los proyectos desplegados, sobretodo si generamos un Tag de subversion tras la compilación correcta.
– El entorno de construcción está controlado, siempre se usará la misma versión de la máquina virtual, librerías, etc… y nos aseguraremos que en producción dispongamos de ese mismo entorno.
– No requeriremos de compiladores ni dependencias de ese tipo en los entornos de producción, cosa que es altamente recomendable por motivos de seguridad.
– 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.

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 integración continua, a los que dedicaré un post individual, pero que nos pueden facilitar enormemente esta tarea además de darnos algunas ventajas adicionales.

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.

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.

Arquitectura de plataformas

Al hilo de mi último post sobre el curso de JBoss y demás quería hablar sobre mi nueva dedicación dentro de Andago: la creación de un departamento de arquitectura de plataforma o arquitectura de sistemas, todavía no está decidido el nombre, aunque el logo podría ser algo así:

Para comprender este paso hay que tener en cuenta el cambio de orientación que ha tenido Andago en los últimos años: pasando de trabajar más en el area de sistemas y Linux propiamente dicho a abrirse al mundo del desarrollo de soluciones abiertas para la administración y al impulso de una fuerte política de I+D en este area. Esto ha probocado que la tortilla dé de alguna manera la vuelta y que el mayor crecimiento se haya producido en el area de desarrollo, tanto en personal cómo en proyectos que se llevan a cabo. Llegados a este punto uno se pregunta si aún quedará trabajo para un jefe de proyecto especializado en el area de sistemas cómo es mi caso.

Y la respuesta es que hay muchísimo trabajo por hacer a la hora de mejorar las plataformas y sistemas que alojarán las soluciones que salen del horno de la sección de desarrollo y muchos de los procedimientos a través de los cuales se está trabajando en este momento. Así que el departamento de arquitectura será un elemento transversal a la compañía y separado del departamento de sistemas y soporte que afectará a todas las areas de trabajo.

Algunos de los objetivos que nos estamos fijando son los siguientes:

– Unificación de soluciones sobre un marco común que las haga interoperables y compatibles entre sí,
– Paquetización de productos tanto para facilitar el trabajo a los equipos de desarrollo cómo para su posterior distribución en el mercado.
– Definición de políticas de entornos para que todo proyecto disponga de sus correspondientes entornos de desarrollo, pre-producción y producción y guías de cómo se debe pasar entre ellos.
– Dotar a las plataformas de alta disponibilidad y balanceo de carga.
– Mejora de la seguridad de las soluciones.
– Pruebas de carga y mejora de rendimiento de las plataformas.

Y muchas más que nos irán surgiendo… aquí os dejo un mapa conceptual que hecho con Freemind (herramienta que nos recomendó acs y de la que me he convertido en un gran fan):

Además siguen surgiendo muchos proyectos de sistemas y de redes inalambricas metropolitanas que irán surgiendo y con los que tendré el gusto de lidiar, pero ya os iré comentando más cosas. Por otro lado si el proyecto de Arquitectura de plataformas te ha resultado interesante y tienes conocimientos de Linux y servidores de aplicaciones (preferentemente JBoss/Tomcat) estamos buscando gente cómo tú (mandame tu curriculum a través del formulario de contacto de esta mísma página web).

Jboss for administrators

La semana pasada asistí al curso JB336: Jboss for administrators que impartía la gente de Red Hat. Las sensaciones han sido bastante satis satisfactorias y he aprendido bastante por lo que quería hacer un post sobre el tema.

Lo primero que me llamó la atención del curso y lo que me llevó a solicitar a mi empresa que me inscribiera fue su orientación hacia la administración y no tanto hacia el desarrollo. Llevamos algunos meses buscando un experto en servidores de aplicaciones sin éxito con lo que decidimos impulsar el conocimiento dentro de la propia empresa y este curso venía cómo anillo al dedo.

Este es el segundo curso que hago con la gente de RedHat, el primero fué el de certificación RHCE, y en ambos casos he acabado bastante satisfecho, eso sí cómo siempre lo bueno sale caro, pero al final terminas amortizándolo a el largo plazo con la mejora que puedes aplicar a tu trabajo con un conocimiento orientado en la dirección correcta.

De toda la vida he sito muy contrario a la filosofía JAVA y a todo lo que la rodea optando siempre por otras alternativas, pero su amplía difusión me ha llevado a tener que lidiar con ella finalmente y espero que esta nueva amistad tenga un final feliz.

El primer día de curso me pareció un tanto teórico pero me ayudó a afianzar muchos conceptos del mundo JAVA y de los servidores de aplicaciones que tenía algo entremezclados. Pero a partir del segundo día nos pusimos a darle caña al servidor profundizando en temas interesantes cómo los procedimientos de despliegue de aplicaciones, temas de rendimiento y tunning, balanceo de carga y alta disponibilidad, seguridad, etc… La arquitectura de JBoss es bastante flexible y extremadamente potente con lo que nos va a permitir muchas posibilidades a la hora de ponerlo en producción.

Por último comentar que he vuelto a reafirmar mi posición respecto a lo increíble que es recibir formación de gente experta en un tema que ha tenido que lidiar con ella en entornos de producción y que sabe muy bien de lo que está hablando frente a la formación académica que se recibe en muchos casos en la Universidad por un profesor que acaba de leer algo sobre el tema en un libro. Quizás por eso el formato muchas veces está cambiando y en muchos master las asignaturas no las imparte un único profesor sino que traen a expertos en la materia para bien de sus alumnos.

The deadline

Se acabaron las vacaciones y ya estoy de vuelta por aquí. La verdad es que han sido diez días de desconexión en el campo bastante buenos, y espero hacer un post dentro de poco sobre esos días. Pero antes de salir de vacaciones pasé por Cocodrilo Libros a ver si cazaba algo interesante sobre JBoss y acabé con un libro sobre Wifi y con una supuesta novela sobre gestión de proyectos… es sobre este libro sobre el que quiero hablaros: The deadline: A novell about project management.

El concepto me atrajo inmediatamente, pues hacía tiempo que estaba especulando con comprar algo sobre gestión de proyectos, pero qué mejor para el verano que combinarlo con el formato novela y además poder practicar un poquito de inglés. La historia trata de un gestor de proyectos al que le proponen el reto de crear una industria informática dentro de un país en vías de desarrollo a través de 6 proyectos que compitan con los más exitosos del momento… las aventuras del señor Tomkins y sobretodo lo que consigue aprender en el desarrollo de los mismos resultan bastante didácticas y al tiempo entretenidas. Además los conceptos mostrados en el libro me han reafirmado mucha de las ideas que tenía sobre la gestión correcta de un proyecto y me han traído muchas más que espero poder llevar a la práctica. De hecho me han dado ganas de comprar otros libros del autor, Tom DeMarco, cómo por ejemplo Peopleware.

Aquí van algunas pinceladas que me han parecido interesantes:

– Añadir más recursos a un proyecto retrasado la mayoría de las veces tan sólo consigue retrasarlo más.
– El abuso de la presión y las horas extras en un proyecto apenas consigue mejorar la productividad de este, mientras que un pequeño apretón de vez en cuando nos dá la sensación de la importancia de nuestro trabajo.
– Las mejoras en la productividad requieren una inversión a largo plazo.
– Es más productivo minimizar los fallos y problemas que intentar mejorar los métodos.
– Un día perdido al principio de un proyecto duele tanto cómo uno al final
– La gente bajo presión no piensa mucho más rápido.
– Lo más perjudicial no es lo que no sabes sino lo que crees que sabes y es incorrecto.

Y añado una que le he oido alguna vez a mi compañero Carlos que siempre me ha parecido muy acertada:

– Las tareas tienden a durar, cómo mínimo, el tiempo que designes para ella.

Si os gusta el tema de la gestión de proyectos, creo que es una buena forma de iniciarse y pasar un rato divertido.

Cerrado por vacaciones

Aunque este año las vacaciones de verano van a ser un poquito cortas tenía ya bastante ganas de que llegara este día. Mañana salimos rumbo a Bayona, a visitar a unos amiguitos con los que pasaremos unos días para luego hacernos una rutita paralela a los irineos y luego de vuelta por Barcelona a casa.

Para que no se haga monotona la parte de viajar hemos decidido hacerlo en todos los medios de transporte que se nos han ocurrido: hasta Irún en tren, luego después en Bayona alquilaremos un coche para hacer la ruta hasta Perpignan y desde ahí a Barcelona en tren (repe) para por último coger un avión hasta Madrid de vuelta. Además estrenaremos nuestra tienda de campaña, regal de cumpleaños de mi madre, e iremos a algunos campings por el camino, dónde seguro me luciré con todas mis dotes de buen Peñascosero. Por supuesto teníamos que comprobar si eramos capaces de montar la tienda, y a ello nos pusimos organizando una acampada en pleno salón de casa.

Estuvimos tentados de comprar una de esas tiendas automontables, pero no nos gustó nada que todas tenían forma de circulo gigantesco cuando están empaquetadas y son más difíciles de cargar ya que no caben en la mochila, además dónde está la gracia sino. Por supuesto casi no pudimos volver a meterla en el envoltorio original, pero al final entró. Bueno y cómo todas vacaciones que realmente lo son intentaré mantenerme apartado de Internet y del móvil todo lo que pueda. ¡Nos vemos en unos días!

Flashback de internet

«Son las 18:00 de la tarde y estoy reventao de estudiar Algebra en la biblioteca. Siempre que a cotorrear con los colegas, esperar a que la maziza de enfrente se dé cuenta de que no te está dejando estudiar con su sola presencia y a rezongar por el cesped con un bocata vejetal se le pueda llamar estudiar. Así que es hora de ir un ratico a Interné… los pasos resuenan en los pasillos de la politécnica camino a Software5, ya que para pillar sitio en el aula de internet hay que hacer cola desde las 14:00 de la tarde.

Después de probar 3 o 4 ordenadores que no arrancan conseguí dar con uno medio operativo. Metías tu clave de acceso a la red Novell y estabas dentro. Esa pantalla de login me trae una sonrisa a la cara, recordando al colega que creó una replica exacta de la pantalla para pillar claves de otros alumnos. En Software5 no hay no hay conexión directa a internet, tan sólo tenemos acceso a la intranet y al correo de la Uni a través del mítico Pegasus Mail. Tardo un rato en leer los correos de los amigotes, contestar a la partida de rol de Paladium por mail y molestar a algún compañero que está en otra aula haciendo prácticas con unos cuantos mensajes chorras que sólo le fastidian la compilación en Turbo Pascal de turno.

Por suerte, siempre hay algún colega que entró en el aula de internet con una copia del «Estatico», una mini distro de Linux en disquete y que te puede permitir realizar el salto mediante telnet a su equipo y de ahí a internet. Si levantas la cabeza ves que la mitad de la gente debe estar saltando a través de esos equipos porque todos están chateando. No tardemos más, una vez conectado a la terminal Linux vayamos al nescafib:

telnet nescafib.upc.es 5000

Horas y horas pasadas frente a la pantalla en negro del telnet, siempre ese cursor parpadeante que me ha perseguido desde mi primer MSX. Buscando las salas privadas más interesantes, conociendo a pirados de todas partes de España y aprendiendo, siempre aprendiendo algún nuevo truco genial. También tuve un pequeño escarceo con el MUD de Medina, pero no me llegué a enganchar demasiado, porque mis colegas ya me sacaban 20 niveles cuando prové por primera vez. Bueno son las 21:30, nuevo chequeo al correo a ver si se han terminado de llegar los trocitos de archivos que podías descargar a través del mail sin necesidad de tener conexión directa. El disco de tres y medio aún está a la mitad.

En el camino en el autobús a casa me pregunto cómo será internet en el futuro.»

De vuelta a nunca jamás

Bueno ahora que han pasado unos dias y que ya me he convencido de que llegar a los 30 no es algo tan terrible me he atrevido a acarcarme de nuevo a mi blog a escribir un ratito. La verdad es que este último año han ocurrido muchos cambios en mi vida, cómo sabéis, aparte de cambiar de decada he abandonado el club de los solteros, lo que podría llevarme a pensar que he pasado a ese terrible estado que llaman ser adulto. Para un niño perdido cómo yo eso supondría abandonar para siempre nunca jamás pero dado que tengo especial amistad con campanilla me han prometido que me dejarán volver de visita de vez en cuando.

Lo curioso del caso, y es de lo que quería hablar en este post, es que últimamente todos los libros que leo están protagonizados por niños y que a veces las casualidades no son tales. La verdad es que he disfrutado bastante con los tres y quería recomendaroslos.

Los dos primeros los leí en inglés, mientras que en el segundo decidí volver a la lengua de Cervantes. El primero de ellos es «The curious incident of the dog at midnight» (El curioso incidente del perro a media noche) que trata de las aventuras de un niño autista muy especial y simpático que te hace ver el mundo desde otra perspectiva y que produce grandes sensaciones mientras desentraña el misterio del perro del vecino asesinado al más puro estilo Sherlock Holmes. El siguiente fué «The boy in the stripped piyama» (El niño del pijama de rayas), en el que un niño alemán nos cuenta como tras un traslado de su padre se hace amigo de un judio al que sólo puede ver a través de una valla de metal. De nuevo la vida a través de los ojos de un niño siempre resulta mucho más interesante y nos dá un prisma diferente de la realidad.

El último me lo recomendaron unos amigos brasileños, fué el primer libro que leyeron al llegar a España, y se trata de «Cometas en el cielo«. Este último me ha encantado y lo he devorado de principio a fin en apenas un par de semanas. La mayor parte del libro narra la historia de un chico afgano y de su mejor amigo en Kabul, de la cantidad de vueltas que puede dar la vida y de cómo algunas acciones del pasado nos pueden perseguir. También es increible descubrir la enorme transformación que sufrió Afganistán durante el periodo en el que transcurre el libro. La verdad es que algunas partes del libro fueron capaces de producir torrentes de emociones sobre mí y me ha encantado leerlo.

Aunque ahora después de terminar el libro y estos dias de vacaciones que he disfrutado toque volver al tajo nunca está de menos darse una vueltecita por nunca jamás y si es posible mejor hacerlo con un buen libro. Y nunca dejéis de ¡cacarear! kikirikiiiii.

RFID para ciegos

Continuando con mi atormentada cabeza aquí va otra idea que me surgió el otro día estando parado en un semáforo y en la que creo que ya se están implementando cosas pero aún no he visto nada en la calle: RFID para guiar a los ciegos.

La idea me surgió escuchando el molesto sonido de los semáforos que indican que el peatón está en verde y pensando de cuanta utilidad será esta señal para los ciegos. Buscando una solución que no moleste al resto de la gente y que mantenga la posibilidad de que los ciegos puedan cruzar al otro lado pensé que un sistema basado en RFID podría ser la solución. Los invidentes dispondrían de un receptor de RFID que al estar a una distancia prudencial del semáforo emitiría señales acústicas o vibratorias para indicar que puede cruzar. El coste no sería excesivamente elevado y los beneficios para la sociedad en eliminación de ruidos molestos serían interesantes. El problema con interferencias desde varios semáforos se resolvería de la misma forma que se hace con la onda sonora actual, emitiendo señales con más potencia dependiendo de la distancia al semáforo emisor.

Semáforos Vivientes

Luego buceando un poco más por la red sobre la idea he visto que la aplicación de esta idea al mundo de los invidentes es bastante interesante: el receptor de RFID podría indicarnos en que parte de la casa estamos o indicarnos que podemos subir al metro. Otra herramienta que podría ser de gran utilidad son los GPS, aunque su limitada precisión podría ser un gran problema a la hora de hacer de guía fino entre elementos cómo la acera y la calzada, etc… Quizá dentro de poco veamos a los invidentes acompañados de mascotas robotizadas que sean capaces de superar a las versiones caninas de la actualidad.