DevOps en la era de las IA generativa

Explica: Alberto Miles, Senior DevOps Engineer de Zenta

Zenta Group
3 min readAug 29, 2023

Actualmente, el surgimiento de herramientas basadas en modelos de IA generativas es cada vez más diversa, pero, ¿cómo se están aplicando en nuestro día a día como DevOps?

Si bien, ChatGPT puede ayudar en diversos ámbitos, ya sea con sus plugin o de forma nativa, el mundo se está enfocando en herramientas especializadas para desarrolladores, ayudando en la generación de código para agilizar los procesos.

Un ejemplo de esto es GitHub Copilot, no obstante, como suele pasar en nuestro rubro, el querer utilizar estas herramientas significa adoptar el ecosistema que nos propone el proveedor, lo cual puede impactar en la factibilidad técnica dentro de nuestras organizaciones.

Tomar la decisión de emplearlas, no es una decisión simple, ya que muchas veces su implementación, no obtiene los resultados esperados.

¿Qué debemos tener en cuenta antes de optar por una herramienta generativa?

Es importante identificar cuáles dolores de nuestro entorno pudiesen ser mitigados con la utilización de alguna herramienta de este estilo, si bien, todos conocemos el ciclo de vida de DevOps:

Fuente Valtx

La implementación del mismo suele verse de la siguiente manera, donde podemos identificar 3 flujos principales:

  • Pipeline infraestructura
Diagrama de Wenqi Glantz en Medium
  • Pipeline microservicio (CI)
Diagrama de Wenqi Glantz en Medium
  • Pipeline despliegue (CD)
Diagrama de Wenqi Glantz en Medium

Como podemos apreciar, constamos de diversos procesos que se encuentran automatizados y que dependiendo del nivel de adopción de devops, pueden estar muy bien optimizados, entonces…

¿Dónde y cuándo aplicamos IA?

Usemos GitHub Copilot como ejemplo para orientarnos:

Esta herramienta se enfoca en la etapa inicial del proceso de desarrollo de software, donde nos puede ayudar a traducir los requerimientos de nuestras historias de usuario en código.

Su objetivo es facilitar el desarrollo, permitiéndonos escribir código de manera más eficiente y posiblemente, identificar problemas antes de que se integre en un pipeline de integración continua (CI).

Para comenzar, podríamos implementar un proceso similar sin necesidad de depender del ecosistema de GitHub. Una opción sería desarrollar una aplicación backend que se comunique con la API de ChatGPT.

Mediante un prompt definido, esta aplicación podría ofrecernos sugerencias basadas en nuestras historias de usuario, ya sean fragmentos de código de referencia o aspectos técnicos a considerar. Este enfoque podría ayudar a acortar la curva de aprendizaje asociada a nuevos requerimientos.

Otro proceso que es posible optimizar, es la validación y sugerencia de nuevos tests unitarios para los incrementos de código que agregamos a nuestros proyectos.

Esta optimización podría acoplarse en el proceso de integración continua (CI), quizás en los commits de nuestras características (fueture). El objetivo sería acelerar un proceso que, dependiendo de la experiencia del desarrollador, puede tardar bastante tiempo.

Estas propuestas sirven de introducción para entender qué procesos podríamos automatizar y elevar al siguiente nivel con IA generativa. Lo que sigue será más práctico:

Realizaremos pruebas de concepto para aplicar estos fundamentos, ya sea utilizando ChatGPT u otro modelo que podamos emplear localmente en nuestros flujos de trabajo.

Es importante tener en cuenta que tanto ChatGPT como GitHub Copilot tienen un costo asociado, además de otras posibles desventajas que pueden afectar la integridad de los datos. Por lo tanto, podríamos considerar el uso de modelos preentrenados y desarrollar nuestras propias herramientas de IA generativa.

Por último, para interactuar con estos modelos de Inteligencia Artificial generativa es esencial comprender los conceptos básicos de ingeniería de prompts. La precisión de las respuestas que obtengamos de los modelos, dependerá en gran medida de la correcta elaboración de los mismos. Además, veremos de manera general la arquitectura de los modelos para comprender cómo funcionan y su alcance.

--

--