martes, agosto 05, 2014

DevOps en el INSSJP y comentarios personales

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:
  • 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.
Nada sencillo, parte del tiempo del equipo de Liderazgo de la Gerencia estaba rogando y verificando muchísimos detalles y con más de 80 deploys por semana, que eran un desgaste increíble, mucha tensión y marcándose con el dedo entre un equipo y otro. Algo teníamos que hacer, pero tenía que se con mucho cuidado y que todos sean parte de la solución para sumarlos al mismo barco.
Como fue más o menos el plan por aplicación:
  1. 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.
  2. 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.
  3. Separamos la configuración de la unidad deploy, para poder utilizar el Repo
  4. 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.
  5. 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.
A su vez, armamos la reunión de planificación semanal, llamada DevOps, que nació con la presentación de 10 Deploys por día de Flikr. Otro proyecto en paralelo fuimos instalando la herramienta de Gestión y Monitoreo, con Tickets y Checkeos de todo tipo, a cada aplicación le agregamos un servicio web que devolvía su estado, llamado “checksystem” y en cada deploy se verificaba su estado y obviamente el monitoreo 24x7.

¿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.

lunes, junio 02, 2014

Seminario de Actualización Profesional en Gerencia Pública Informática

Hoy comenzó un seminario muy interesante en la Sadio. Y tuve la oportunidad de escuchar a quien considero el mejor CIO de la historia de la Argentina, Jorge Linskens. La verdad que el seminario me llegó de rebote, no lo tenía en el radar pero a último momento pudimos inscribirnos y estoy super contento.
El seminario consiste en brindar una serie de clases en lo referido al ambiente público, manejo de recursos humanos, contrataciones, seguridad, sistemas de la administración publica y gestión en general.
Igual considero que ya solo con la clase de hoy el seminario valió la pena, Jorge Linskens para quienes no lo conocen, aparte de haber trabajado casi 50 años en IT (eso me pareció escuchar hoy) concretó una revolución tecnológica en AFIP allá por el 2002 y varios años más, y creo que hoy todavía AFIP sigue con la inercia de esa época donde crearon un datacenter, una arquitectura de servicios de información muy interesante (declaraciones juradas, factura electrónica, volantes de pagos electrónicos, etc). Cada vez pienso en lo que armó junto a su equipo, siempre digo que en Pami estamos haciendo lo mismo, un poco después pero con la misma visión de hacer historia, y tenemos un contexto muy favorable...
Jorge comentó la importancia de ser un funcionario publico y a quien respondemos, y dentro de su inigualable experiencia puso mucho foco en tres planos:

  1. Como aprovechar el capital humano, como subirlos al proyecto teniendo en cuenta el contexto (sueldos, gremios, sin premios ni castigos)
  2. Como crear Arquitectura Simples y Robustas, muchos me habían dicho que era un excelente técnico, como nunca lo había escuchado me encantó saber que hay CIOs tan groso en lo técnico también.
  3. Contrataciones públicas, aceptar la realidad de los tiempos y como organizarlas alineadas con la Arquitectura y como escribir pliegos para evitar litigios con los proveedores (capitulo aparte).

 Como lo dije anteriormente, ya hoy valió el seminario, va a ser dificil que los próximos profes puedan mejorar esto, dejó la vara super alta :)

viernes, agosto 23, 2013

Video de Dibujar, Pintar y Programar

Tarde pero seguro, aquí está el video de la charla que di en mayo de este año “Dibujar, pintar y programar” en el marco de las Jornadas de Creatividad e Innovación en la UBA.
A modo de reflexión, quiero insistir, en el importante rol, que, creo yo, no nos damos cuenta que tenemos los adultos cuando le “ponemos” una pantalla enfrente a nuestros niños.
Creo que está bueno pensar, en los chicos como creadores tecnológicos, y tratar de evitar, en lo posible, que sean 100% consumidores digitales y nada más. Me parece que está bueno que traten de usar la tecnología de la forma más “creativa” posible.
Ojalá les guste, saludos a todos!

viernes, mayo 31, 2013

Charla de Dibujar, Pintar y Programar

Como comenté en el post anterior http://gabrey.blogspot.com.ar/2013/05/aprendizaje-creatividad-ninos.html , anteayer finalmente llegó el día en el que hablé de los niños, la tecnología y la creatividad.

Y aquí comento los puntos que tocamos:
- ¿Los chicos, dominan la tecnología? ¿O la tecnología los domina a ellos?
- Leer y escribir, ¿sólo eso hace falta para esta alfabetizado en el siglo xxi?
- Mi concepción de qué es el software y por qué creo que los niños son capaces de programar
- Experiencia con mi hijo y Scratch (anècdotas incluidas de padre nerd, ingeniero hiper planificador vs "como sale sale" de un niño que tiene un punto de vista totalmente distinto, nato, simple y creativo que me mira con cara rara cuando le hablo de "planning"
- Comenté respecto a Estonia, (aunque en la charla dije Etiopia!!!!!, me tracionaron los nervios!)... estàn enseñando a programar a chicos de 1er grado en las escuelas!. También hablé de code.org, Bill Gates, Mark Zuckerberg y mas cracks del desarrollo del software (puse a Bill, si, ahora me cae bien porque quiere que los chicos programen)
- Hablé de un programa de tele que se los recomiendo, se llama USA TU NET, es de Canal Encuentro, vale la pena http://www.encuentro.gov.ar/sitios/encuentro/programas/detallePrograma?rec_id=116806

Si me falta mencionar algo mas, lo verán en el video que intentaré subir lo antes posible


viernes, mayo 03, 2013

Aprendizaje + Creatividad = Niños Programadores?

Los que me conocen saben que considero la construcción de software como una actividad de aprendizaje y por sobre todo creativa, y ¿Que es lo primero que se te viene a la cabeza con esas dos palabras, "aprendizaje" y "creatividad"?, por lo menos a mi, son los niños que en su estado más profundo y cero contaminados son esponjas y no tienen limitaciones en cuanto a la creatividad....

Además, siempre que me tengo que describir lo hago diciendo "pasión por el aprendizaje"; y; con el pasar de los años, me doy cuenta que es algo innato en mí, ver como las personas que me rodean aprendan.

En mis inicios cuando trabajaba, siempre que tuve la oportunidad armaba charlas para capacitar o tomaba iniciativas para que todos mis compañeros y yo aprendamos. Durante mi carrera universitaria, entré en el laboratorio de sistemas de la Facultad y allí lideré un grupo de investigación. Después una vez recibido, no me tome ningun año lejos de la facultad, si no que todo lo contrario, armé una materia nueva electiva de quinto año que se llama Arquitectura de IT, que ya varios que leen este post deben conocer (o al menos, eso quisiera!!!!).
Todos los niños nacieron con mucha tecnología a su alrededor (celulares, tabletas, notebooks, netbooks, smart tvs) y pasan tiempo con ella, no tengo nada contra eso, siempre y cuando primero hagan deportes, sus tareas, dibujen, etc y luego puedan tener cierto ocio con la tecnología, ahora bien, lo que me molesta es que ese tiempo frente a pantallas no sea usarlo para aprender o hacer algo creativo. Por que invertir esa relación de consumir tecnología por crear tecnología, eso es lo que llamo adaptar la tecnología al aprendizaje y creatividad, y no solo ser simples consumidores de lo que otros crean como películas o juegos que lo único que hacen es limitar su capacidad creativa.

Es por esto que hace un tiempo (años) que vengo investigando y pensando un poco en esto de que los chicos construyan software, o sea programen. Verlo a mi hijo jugar a distintos juegos me llevó a ver que podía hacer yo para transmitirle mi pasión por la programación pero jugando para mantener su interes.

Lamentablemente le tocaron dos nerds de padres que quieren a todas costa incentivar en la creatividad y el aprendizaje, es por ello que decidimos explorar este camino de la programación hace un tiempo.

A los que le interese el tema, tengo mucho para compartir, voy a estar dando una charla en la Jornadas de Creatividad e Innovación de la FCE-UBA y se pueden inscribir aquí.

Seguramente vaya escribiendo un poco más sobre esta experiencia con Andres que venimos llevando des sus 4 años cuando comenzó a leer y lo vi interesado. La plataforma que estamos utilizando es Scratch del MIT que está pensada para niños..

sábado, junio 30, 2012

Y un repositorio de código para el 2012? GIT

Hará cosa de dos meses que vengo penando cual debería ser el repo de código corporativo del Instituto que actualmente viene usando el SVN. Esto me lleva al 2003, cuando tuve que tomar un puesto de liderazgo muy importante para un proyecto grande en IBM en su cuenta Telefonica, en esa época CVS dominaba el mercado y una de las cosas que hice fue migrar a SVN, pese a las puteadas del pulgin de Eclipse, lo pudimos hacern y en pocas semanas. Pero al terminar me dejo lan mala señal que era mas de lo mismo aunque la gente estaba muy contenta, usaba el VC de moda pero en números, no funcionaba los lockeos, los merges eran súper complejos, lo que ganamos automatizando el build lo perdí haciendo los merges, la mentira del rename, etc, etc.
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:
  1. 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.
  2. 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.
  3. 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?

domingo, junio 17, 2012

Mis primeros 6 meses en el Pami (INSSJP)

Alrededor de estos días voy a estar cumpliendo mis primeros 6 meses en la gerencia de TICs del Pami. Puedo asegurar que ya parece que pasaron 6 años, es más, con todo lo que vivi diría que ya ni recuerdo haber trabajado en Worklow, IBM ni Red Hat.
Las primeras conclusiones que se me vienen a la cabeza (y puedo contar) es que el puesto tiene realmente los desafíos que me plantearon durante el vibrante proceso de selección, y puedo asegurar que más tambien, uno no deja de sorprenderse. Por otro lado, cuento con un equipo técnico de base muy bueno que realmente va a permitir lucirme y dar lo mejor para la salud de los pensionados y el país.
Los primeros 4 meses fueron más bien de transición, donde me aseguré de entender la organización, sus objetivos, referentes y situación actual de TICs, obviamente hubo muchos temas urgentes que tuve que atender hasta incluso ver código fuente e ingresar a los servidores para resolver problemas, no puedo con mi genio de nerd :)
En algún momento escribiré un poco más sobre la experiencia de los primeros 100 días como gerente de TICs, pero en pocas palabras fue algo así:
  1. Primer mes, me tocó conocer la Gerencia, sus referentes, Subgerentes y algunos Jefes de Departamento , como así tambien entender la organización, su historia y como se relaciona con el resto de los organismos y stakeholders principales. Proyectos en ejecución.
  2. En el segundo mes, el objetivo fue conocer a los Gerentes con mayor interacción con la Gerencia dentro del instituto, entender sus necesidades, problemas que han tenido, relevar sus prioridades del año. Otro punto importante fue el de conocer a todos los Jefes de Departamentos de la Gerencia, entrando en un nivel más de detalle para saber el día a día junto con los problemas.
  3. El tercer més, me entrevisté con los proveedores en los cuales el Instituto más depende, conocí a cada uno de ellos y entre en los detalles de los contratos actuales, como así tambien saber cada una de su visión.También tuve algunas entrevistas con organismos con problemáticas similares a la del Instituto, ya sea por dispersión geográfica, o por temas tecnológicos y también de Industria.
  4. En último mes de la transición, se comunicaron los resultados, se delinió un plan para los primeros cambios en la Gerencia, ya sean de Estructura como de Procesos, como así también delinie el boceto de los objetivos de los primeros 12 meses de trabajo (plan).
Así es lindo contarlo, pero en paralelo, hubo muchos eventos e hitos importantes por lo que tuve que pasar que junto con la pasión que me caracteriza tuve que afrontar y me hicieron dedicarle 16 horas de trabajo por día, sobre todo en el verano que estuve solo en BA.
Algunas particularidades técnicas que me gustaron del Instituto:
  • Tecnología muy uniforme y homogenea, lo cual hace la operatoria mucho más sencilla
  • Un equipo de desarrollo sobresaliente, considero que es el mejor de la Argentina.
  • Mucho open source (eso me gusta) los lenguajes de programación, los sistemas operativos son dominados por el código abierto.
  • Un datacenter de primera generación se está termnando (Tier 3)
  • La red de datos con más nodos en el país.
  • Por lo que vi, uno de los pocos organismos con un plan para tener un disarter recovery site real.
  • Servidores Intel únicamente, nada de Mainframe ni Power o sea que no es esclavo de nadie.
  • Está claro que no voy a decir las debilidades no? Jejeje. Ya las voy a decir, cuando las resuelva, no son pocas para mi... pero debe ser por que soy un enfermo.
Actualmente ya me encuentro algo más estabilizado, en la parte final de muchos proyectos que van a dejar al Instituto en lo que es TI, en un nivel que estoy seguro ningún otro organismo o empresa de la salud va a estar por mucho tiempo en la Argentina, pero al mismo tiempo delineando el Plan Estratégico de TI para los próximos 4 años, realmente esto va a ser de excelencia.
Hacía mucho que no escribía, habrán entendido el por que, esto viene muy en serio y necesito estar muy concentrado en cada paso, y considero que el Instituto está muy bien en terminos de TI, y que con mi capacidad y visión en TI y gestión vamos a estar excelente (N veces mejor que lo actual), de eso no dudo.
Tenemos desafiós muy grande que estoy feliz de afrontar y estoy rodeado de gente brillante que lidera este Instituto, y más que feliz de que hayan elegido un profesional técnico y joven para conducir esto.