Aprender de la transformación a la nube mientras avanzamos hacia la IA
21 de mayo de 2024
0 minutos de lecturaLos equipos de desarrollo de todos los tamaños están entusiasmados con las posibilidades que ofrecen las herramientas de IA para crear software. Los asistentes de programación como Google Gemini y GitHub Copilot pueden acelerar el desarrollo como nunca antes, y los desarrolladores están adoptando estas herramientas, tengan o no la aprobación oficial de los líderes.
Mientras tu equipo considera las mejores formas de adoptar esta nueva tecnología, esta transición podría parecerte un déjà vu. Estos mensajes sobre la IA (nuevos niveles de velocidad, innovación, etc.) probablemente suenen como otra transformación digital que vivimos hace unos diez años: la llegada de la nube.
La transformación a la nube cambió el desarrollo de software de muchas maneras y obligó a los equipos a perfeccionar sus procesos y aumentar su velocidad mientras lidiaban con tecnologías emergentes como la infraestructura como código (IaC) y los contenedores.
De la misma manera, las tecnologías de IA cambiarán cómo creamos software. Los desarrolladores pueden usar IA para generar código en una fracción del tiempo que les tomaría escribirlo manualmente. Vimos el mismo aumento de velocidad y eficiencia cuando apareció la transformación a la nube.
Pero muchos también conocemos los desafíos que acompañan a este tipo de cambio tecnológico, como los nuevos riesgos de seguridad y la confusión sobre quién es responsable. Aunque la IA puede parecer un gran salto para algunas organizaciones, no es tan distinta de otras transformaciones que hemos vivido. Las lecciones aprendidas del cambio a la nube hace una década pueden aplicarse muy bien a los cambios que enfrentamos hoy con las tecnologías emergentes de IA.
Lecciones aprendidas de la transformación a la nube
Para muchas organizaciones, la transformación a la nube dejó al descubierto problemas que ya existían. Los traspasos ineficientes entre equipos o las herramientas heredadas podían pasar inadvertidos en un entorno local. Sin embargo, los equipos ya no pudieron ocultar estas ineficiencias cuando las organizaciones migraron a la nube. Pronto descubrieron que debían evolucionar en tres áreas.
Adopción de herramientas de DevOps
Cuando las organizaciones adoptaron un enfoque de DevOps en la nube, pronto se dieron cuenta de que muchas herramientas existentes, diseñadas para entornos locales, ya no eran suficientes. Los equipos de seguridad, en particular, necesitaban adoptar herramientas capaces de seguir el rápido ritmo de cambio de un enfoque iterativo de DevOps; de lo contrario, frustrarían a los desarrolladores y afectarían la eficiencia del negocio.
Para adaptarse a este nuevo ritmo de cambio, las organizaciones recurrieron a DevSecOps e integraron las pruebas de seguridad en todo el ciclo de vida del desarrollo de software, en lugar de esperar hasta el final del proceso para realizarlas. La transición a DevSecOps implicó que los equipos dejaran atrás las herramientas tradicionales y adoptaran herramientas nuevas, diseñadas específicamente para la nube. Estas herramientas deben permitir realizar pruebas rápidamente, alinearse con procesos ágiles como CI/CD y funcionar sin problemas con elementos enfocados en la nube, como los contenedores y el código de código abierto.
Lección aprendida: Para aprovechar la transformación digital, adopta herramientas diseñadas específicamente para las nuevas tecnologías y que se integren sin problemas en los flujos de trabajo ágiles.
Las nuevas tecnologías de IA de hoy también requieren la pila tecnológica adecuada. Los equipos deben evaluar las herramientas según qué tan bien se alinean con las soluciones modernas de IA. Además, estas herramientas deben estar diseñadas específicamente para las características únicas del código generado por IA, con funciones como etiquetas para distinguir entre el código generado por IA y el escrito por personas.
Fomentar la responsabilidad compartida
La migración a la nube también implicó que la responsabilidad compartida adquiriera un significado distinto para las organizaciones. Por ejemplo, la infraestructura de TI pasó de ser una estructura física propiedad del equipo de TI a convertirse en infraestructura como código (IaC), que los equipos de desarrollo debían aprovisionar. Los equipos de desarrollo también tuvieron que hacerse responsables de la seguridad durante todo el ciclo de vida del software, analizando y corrigiendo los problemas en su código.
Para fomentar esta responsabilidad compartida en los distintos aspectos del SDLC, las empresas empezaron a crear centros de excelencia en la nube y programas de promotores de seguridad. Estos programas de capacitación permitieron que los equipos colaboraran para crear aplicaciones seguras y de alta calidad en un entorno de nube.
Lección aprendida: Para aprovechar la transformación digital, implementa programas de capacitación y centros de excelencia que promuevan las mejores prácticas en toda la organización.
Para adoptar la IA sin comprometer la seguridad ni la calidad, los equipos de hoy también deben considerar programas de capacitación que destaquen las mejores prácticas de IA e incluso evaluar la posibilidad de establecer un centro de excelencia en IA.
Crear procesos integrados
Como parte de la transición del modelo en cascada a un enfoque de DevSecOps, los equipos tuvieron que cerrar brechas en los procesos, por ejemplo, integrando las pruebas de seguridad en los flujos de trabajo de desarrollo. Los traspasos entre las etapas del desarrollo debían ser fluidos y reducir al mínimo los cambios de contexto. Por ejemplo, los equipos empezaron a usar herramientas y procesos de seguridad integrados con herramientas de desarrollo habituales, como las herramientas de CI/CD, los repositorios y las CLI. Estas integraciones fluidas garantizaron un enfoque más completo y permitieron a los equipos aprovechar al máximo la nube para ganar velocidad y colaborar.
Lección aprendida: Para aprovechar la transformación digital, cierra las brechas en los procesos al reducir los cambios de contexto e integrar la seguridad en los flujos de trabajo existentes de los desarrolladores.
Usar IA de forma segura también requiere procesos integrados, como incorporar un asistente de seguridad que se integre en los flujos de trabajo de GenAI existentes. Si los desarrolladores tienen que dar demasiados pasos adicionales para proteger el código generado por IA, se pierde el propósito de usar IA para aumentar la velocidad.
Adaptarse a la velocidad de la IA
La IA está haciendo exactamente lo mismo que hizo la nube hace diez años: potenciar la capacidad de las empresas para crear aplicaciones de forma más rápida y eficiente. Pero, al igual que con la migración a la nube, las organizaciones deben tomar medidas deliberadas para adaptarse a estos cambios de manera fluida y segura.
Snyk anunció recientemente una colaboración única con Gemini Code Assist para apoyar a las organizaciones en su transición al desarrollo asistido por IA. Esta colaboración integra las capacidades de Snyk Code en los flujos de trabajo existentes de los equipos de desarrollo que usan Gemini. Permite a los desarrolladores analizar en segundos el código generado por IA y evaluar el código creado por Gemini en el contexto del resto de la aplicación. Luego, ofrece sugerencias de corrección paso a paso directamente en el IDE. Al encontrar y corregir vulnerabilidades en el código generado por IA en cuanto lo envían, los desarrolladores pueden mantener el ritmo que permite la IA sin comprometer la seguridad.
Obtén más información sobre nuestra colaboración con Gemini Code Assist.
