En el próximo Encuentro GeneXus (más info acá) estaremos dando una charla junto a Lali (Laura Aguiar) sobre la temática de GeneXus y DevOps. Te dejo el abstract y descripción, así como algunos apuntes más para ir viendo de qué se va a tratar la charla.
Abstract: DevOps y Continuos Integration/Continuos Delivery plantean muchos desafíos y muchas cosas para aprender, pero a su vez un montón de oportunidades que ya podemos comenzar a aprovechar con GeneXus. Veremos en esta charla métodos y herramientas que aumentan la productividad en todo el ciclo de vida de un producto, pudiendo así acercarse a una cultura de DevOps donde se entrega valor al usuario de manera frecuente y con calidad.
Descripción: La productividad no solo se trata de cuán rápido “codificamos”. Cada vez hay más herramientas y metodologías que nos hacen más productivos (produciendo con calidad y velocidad). Tenemos contenedores, pipelines, herramientas para realizar chequeos de calidad a distintos niveles, monitorización de punta a punta, etc. Por eso, para seguir manteniendo la ventaja competitiva que tenemos gracias a usar GeneXus, es necesario ver y entender qué se puede tomar del resto de herramientas y metodologías, ya sean ágiles, DevOps, para Continuous Delivery, etc. En esta charla haremos un resumen de las prácticas actuales de CI/CD y DevOps de la industria, y que cosas se pueden ir haciendo en GeneXus desde ya para empezar a transicionar hacia este nuevo enfoque y obtener lo mejor de ambos mundos.
GeneXus y DevOps, ¿de qué hablaremos?
DevOps y CI/CD plantean muchos desafíos y muchas cosas para aprender, pero a su vez un montón de oportunidades, y ya podemos comenzar a aprovecharlas en GeneXus. Esta charla cuenta con cuatro partes bien diferentes:
- Primero haremos una introducción a los conceptos de DevOps, Continuous Integration, Continuous Delivery y Continuous Deployment, viendo qué implica cada uno y cuáles son los beneficios que nos puede traer el trabajar con estas metodologías. El objetivo de éstas es llegar a una cultura donde se reduce la fricción entre los distintos equipos, logrando que Operaciones, Desarrollo (incluyendo testing) y Negocio puedan trabajar de la mejor manera, compartiendo responsabilidades y colaborando. Hay mucho para hacer en distintas áreas, pero en el resto de la charla nos enfocaremos en tres aspectos: cómo gestionar y cuidar la calidad del código mientras lo producimos, cómo armamos nuestro “pipeline” para detectar cualquier problema lo antes posible para ponerlo rápidamente en producción, y cómo mantener bajo control la aplicación una vez que llega a manos de los usuarios.
- Luego, analizaremos cómo se gestiona el código en la industria según las prácticas de Continuous Integration. Para esto veremos cómo se suelen gestionar las versiones, branches, tags, etc., para poder administrar el código y tener absoluta trazabilidad de qué se está ejecutando en cada ambiente. Veremos alternativas para implementar estos enfoques con GeneXus Server, analizando las diferentes dificultades que se le pueden plantear a los equipos así como alternativas para resolverlas y aprovechar las ventajas de CI/CD. También hablaremos de cómo introducir prácticas de Code Review con herramientas que se están trabajando en la comunidad.
- Mostraremos cómo se puede armar un pipeline utilizando herramientas gratuitas como CCnet o Jenkins, viendo qué chequeos se pueden realizar hoy en GeneXus. Por ejemplo, se está trabajando en mejorar GXunit, así como poder ejecutar pruebas en la interfaz gráfica (tal como lo hace GXtest) pero desde el código GeneXus, desde un procedimiento de pruebas, simulando acciones de los usuarios. En este esquema se podrían agregar a futuro muchos más chequeos, como los que ofrecen KBdoctor o Security Scanner. Se apunta a generar la aplicación en un entorno fresco, que luego de probarlo ahí haya más seguridad al pasarlo a producción, evitando el “en mi máquina anda”. En este sentido el uso de diferentes herramientas como Docker, Ansible, Cheff, etc., ayudan a administrar los ambientes en el pipeline, hasta llevar la aplicación a producción. ¿Y cómo se arma todo esto en GeneXus?
- Finalmente, una vez que la aplicación la llevamos a producción, vamos a querer saber cómo está funcionando, y obtener alertas ante cualquier problema que puedan tener los usuarios. Es fundamental manejar herramientas tipo APM que permitan realizar análisis finos de qué es lo que ocurre en las internas del sistema, para poder resolver los inconvenientes que puedan surgir relacionados a tiempos de respuesta, uso de recursos o errores.
Con todo esto, lo que esperamos es generar entusiasmo en las personas que asistan como para que adopten las herramientas que aumentan la productividad, no sólo en el desarrollo, sino en todo el ciclo de vida de un producto, pudiendo así acercarse a una cultura de DevOps donde se entrega valor al usuario de manera frecuente y con calidad.
Tenemos que ajustar aún para que todo esto entre en media hora y pueda haber algún espacio de intercambio, pero al menos por ahora este es el plan 🙂
¿Nos vemos ahí?
Finalmente hicimos un refactor entre esta charla y la que voy a dar con Fabián, así que las cosas que comenté acá que hablaríamos con Lali, están mitad acá y mitad en la charla de Continuous Delivery con GeneXus, como para no repetir contenidos
Nos vemos el lunes!