Estoy intentando responder la pregunta de un gran profe que tuve en mi segundo año en la UTN.FRBA, Ing. Pablo Jejcic allá por el 2000. La pregunta fue, “cual es la visión en Argentina de DevOps?” acá va mi respuesta.
Entendiendo por DevOps al conjunto de procesos y herramientas que se centran en la integración entre los equipos de desarrollo y operaciones, rol que muchas veces toma un Arquitecto que tiene que transformar las unidades de desarrollo (componentes) en unidades de despliegue (war, dll, zip, etc) y ejecución dentro de colaboración, esta metodología fomenta el uso de la automatización, para asegurar el aprovisionamiento, despliegue y monitoreo para responder a las necesidades del negocio.
Cuando comenzamos este fantástico viaje de Gerenciar las TICs del Instituto, tuvimos grandes desafios:
Como fue más o menos el plan por aplicación:
¿Que estamos haciendo ahora de DevOps?
Demás está decir que este esto no termina acá, y que tenemos muchísimos proyectos relacionados con DevOps, el más interesante está relacionado con la instalación de un Orquestador de Infraestructura que nos permite automatizar el aprovisionamiento de toda la infraestructura virtualizada y despliegue automática de la configuraciones necesitadas para la misma. La herramienta que estamos usando es Puppet en conjunto con CouchDB. Esta plataforma nos permite levantar, instalar y configurar máquinas virtuales, desplegar el código fuente via Jenkins y agregar al balanceador F5 de manera automática los App Servers al cluster.
Puedo estar 2 horas de este proyecto tan interesante pero creo que alcanza para responder la pregunta, y dejo para otro momento como veo el futuro de DevOps desde mi perspectiva y la del INSSJP.
Entendiendo por DevOps al conjunto de procesos y herramientas que se centran en la integración entre los equipos de desarrollo y operaciones, rol que muchas veces toma un Arquitecto que tiene que transformar las unidades de desarrollo (componentes) en unidades de despliegue (war, dll, zip, etc) y ejecución dentro de colaboración, esta metodología fomenta el uso de la automatización, para asegurar el aprovisionamiento, despliegue y monitoreo para responder a las necesidades del negocio.
Cuando comenzamos este fantástico viaje de Gerenciar las TICs del Instituto, tuvimos grandes desafios:
- Entornos de desarrollo no homogeneos para todas las Apps
- Muchos errores durante los Deploys
- Diferentes versiones de Middleware, Configuraciones y Políticas en los Servidores
- Imposibilidad para el equipo de Operaciones de monitorear o saber si el sistema estaba funcionando o no.
Como fue más o menos el plan por aplicación:
- Definimos una política de versionado, X.Y.Z.YYYYMMDD.N (ej. 2.1.3.20140805.1) y creamos un servidor donde el Líder de Desarrollo cargaba las unidades de despliegue por sistema y versión.
- Armamos entornos de desarrollo (servidor) para todas las Applicaciones, y todo deploy primero tenía que funcionar en dicho entorno, Dev podría hacer deploys pero no tocar la configuración. Luego pasaba a QA, PREPRO y PROD vía Operaciones con los instructivos.
- Separamos la configuración de la unidad deploy, para poder utilizar el Repo
- Instalamos Jenkins y fuimos automatizando el deploy de todas las aplicaciones, donde solo se desplegaba en PROD algo ya desplegado en un entorno más bajo.
- El equipo de desarrollo arrancó a usar un Jenkins en modo integración continua donde se ejecutan los Test y Métricas de Calidad, y que termina dejando las unidades de despliegue en el REPO.
¿Que estamos haciendo ahora de DevOps?
Demás está decir que este esto no termina acá, y que tenemos muchísimos proyectos relacionados con DevOps, el más interesante está relacionado con la instalación de un Orquestador de Infraestructura que nos permite automatizar el aprovisionamiento de toda la infraestructura virtualizada y despliegue automática de la configuraciones necesitadas para la misma. La herramienta que estamos usando es Puppet en conjunto con CouchDB. Esta plataforma nos permite levantar, instalar y configurar máquinas virtuales, desplegar el código fuente via Jenkins y agregar al balanceador F5 de manera automática los App Servers al cluster.
Puedo estar 2 horas de este proyecto tan interesante pero creo que alcanza para responder la pregunta, y dejo para otro momento como veo el futuro de DevOps desde mi perspectiva y la del INSSJP.