Volviendo al 2012, si planifico una estrategia uniforme, tengo que tener cuenta las tendencias actuales, grupos que trabajan en diferentes locaciones, diferentes segmentos de red, lan, wan, internet, el avance de cloud y soluciones hosteadas fuera del datacenter, estado del arte actual de los VC y su integración con las nuevas plataformas de desarrollo e infraestructura (virtualizacion, continuos integration, puppet, etc). Pensando en todas esos temas, hay tres drivers fundamentales:
- El VC indiscutido es GIT, hay otras cosas buenas en el mercado como el de Jazz (RTC) o TFS (de MS) pero por el momento considero que IBM Argentina no esta maduro para colaborar con una implementación de RTC ni TFS esta lo suficientemente maduro para soportar las plataformas que quiero soportar. Obviamente están los Otros como peforce o mercurial, pero acá el Open Source lidera.
- Ubicuidad, considero que es fundamental que el código este disponible (de manera segura) y pueda ser accedido desde diferentes dispositivos y plataformas. El equipo de desarrollo de software de elite que tiene el instituto tiene que poder accederlo fácilmente sin problema.
- Lo necesito rápido, y posibilidad de ir escalandolo sin grandes complejidades ni costos de administración de los operadores aprendiendo un nuevo servicio de TI.
Teniendo en cuenta todo esto, comencé un piloto con Github el cloud de GIT mas utilizado por la comunidad open Source que tiene muy buena latencia, soporta varios protocolos y se puede utilizar desde adentro del instituto como de afuera y tiene features fantásticos como el pull requesón y revisión de código entre pares.
Vamos a ver que sucede con el correr del tiempo, toda decisión tiene sus desafíos, aquí intento enumerarlos:
- Resistencia al cambio por utilización de GIT. Yo lo uso y puede resultar complejo sin una GUI, a mi me resulta cómodo la consola por ser usuario de Linux o MAC, pero es algo que estoy planificando. No tengo duda que GIT es la plataforma, no va a ser fácil la transición.
- Integración con el IDM del Instituto, si bien lo mas parecido a IDM que tenemos es AD por el momento la solución de GITHub no tiene ninguna integración pensada o que yo haya visto, están las APIs disponibles que con unas horitas de programación ruby lo integro con mucho gusto.
- Como mantener la historia del SVN en el GIT, entiendo que se puede, hay comandos de rebase entre ambos repos pero nunca lo hice y no quiero llegar a la solución de dejar un repo SVN en modo lectura.
Y me estoy ganando muchos enemigos? Puede ser, pero lo veo muy claro si quiero dar un servicios de excelencia no puedo darme el lujo de trabajar con tecnologías legacy que me frenen mas adelante... Se viene el CI en la nube con Cloudbeed?
Todo comentario o sugerencia será mas que bienvenida, alguien ya lo hizo?