En QCon Londres, miguel federicoUn defensor senior de desarrolladores en GitLab discutió cómo hacer esto La IA puede ayudar en el flujo de trabajo de DevSecOps. Su sesión fue parte de Ruta de ingeniería nativa de la nube El primer día de la conferencia.
En la escena del desarrollo de software, especialmente dentro Canalización de DevSecOpsLa inteligencia artificial (IA) puede ayudar a abordar las ineficiencias y optimizar los flujos de trabajo. Algunas de las tareas que consumen más tiempo en esta área son la generación de código, la creación de pruebas y el proceso de revisión. Las tecnologías de IA, como los generadores de códigos y las herramientas de creación de pruebas basadas en IA, abordan estas áreas directamente, mejorando la productividad y la calidad. Por ejemplo, la IA puede automatizar la generación de código repetitivo, proporcionar sugerencias de código en tiempo real y facilitar la creación de pruebas de un extremo a otro, incluidas pruebas unitarias y de regresión. Estas capacidades aceleran el proceso de desarrollo y reducen significativamente el potencial de error humano.
En las operaciones, el papel de la inteligencia artificial es igualmente fundamental. Los canales de CI/CD, un componente importante de las prácticas modernas de desarrollo de software, aprovechan la IA a través de la depuración automatizada, el análisis de la causa raíz mediante algoritmos de aprendizaje automático y mejoras de observabilidad. Herramientas como k8sgpt y Ollama Mistral LLM analizan los registros de implementación y resumen datos importantes, lo que permite tomar decisiones más rápidas y precisas. Además, la aplicación de la IA en el análisis de recursos y sostenibilidad, ejemplificada por herramientas como Kepler, subraya la capacidad de la tecnología para mejorar las operaciones en términos de eficiencia e impacto ambiental.
Por último, la seguridad dentro de DevSecOps se beneficia enormemente de la IA, con innovaciones como barreras de seguridad de IA y sistemas de gestión de vulnerabilidades. La IA puede explicar claramente las vulnerabilidades, recomendar o implementar decisiones y proteger las aplicaciones de amenazas potenciales. Además, con características como el acceso controlado a los modelos de IA y la verificación instantánea, la contribución de la IA a la privacidad y la seguridad de los datos mejora la postura general de seguridad. La transparencia en el uso de la IA y el cumplimiento de principios éticos en el desarrollo de productos aumentan la confianza en estas tecnologías.
Después de la sesión, InfoQ entrevistó a Michael Friedlich sobre cómo la IA puede ayudar en DevSecOps.
InfoQ: Dado su enfoque en el papel de la IA para optimizar los flujos de trabajo de DevSecOps y mejorar la eficiencia, ¿cómo sugiere que las organizaciones equilibren el impulso de una rápida innovación e implementación con el imperativo de mantener prácticas de seguridad sólidas?
Miguel Federico: Considere los siguientes pasos en su viaje de AI a DevSecOps:
- Comience evaluando su flujo de trabajo y su importancia para la eficiencia.
- Cree barreras de seguridad de IA, incluida la seguridad de los datos, métricas de verificación, etc.
- Requiere un análisis de impacto más allá de la productividad del desarrollador. ¿Cómo acelerará e impulsará la IA todos los equipos y flujos de trabajo?
Se requiere un flujo de trabajo DevSecOps existente para verificar el código generado por IA, incluido el escaneo de seguridad, los marcos de cumplimiento, la calidad del código, la cobertura de pruebas, la observabilidad del rendimiento y más.
Hago referencia a un artículo del blog de GitLab en mi charla. Las conversaciones con nuestros clientes y todos los involucrados en GitLab me inspiraron a pensar más allá del flujo de trabajo y alentar a los usuarios a planificar su trabajo. Adoptar estratégicamente la inteligencia artificial.
InfoQ: Específicamente, ¿puede compartir su opinión sobre la integración de herramientas de inteligencia artificial sin comprometer los estándares de seguridad, especialmente cuando se trata de datos confidenciales e infraestructura compleja?
miguel federico: Una preocupación común es cómo se utilizarán los datos confidenciales mediante herramientas de inteligencia artificial. Los usuarios necesitan información transparente sobre la seguridad de los datos, la privacidad y cómo se utilizan los datos. Por ejemplo, un amigo mío trabaja en la industria automotriz utilizando algoritmos muy sofisticados y complejos para la iluminación de automóviles. Este código nunca debería abandonar su red y traer nuevos desafíos mediante la adopción de modelos de IA y SaaS. Además, el código no debe usarse para entrenar modelos públicos y potencialmente filtrarse al código base de otra persona. La demanda de maestros nacionales y modelos especialmente capacitados ha aumentado en 2024 y creo que los proveedores están trabajando arduamente para abordar estas preocupaciones de los clientes.
Otro ejemplo son las afirmaciones que pueden exponer datos confidenciales de la infraestructura (FQDN, nombres de rutas, etc.) en los registros de infraestructura y de implementación nativos de la nube. Se deben instalar filtros y políticas específicas, y se deben agregar controles mejorados sobre cómo los usuarios adoptan la IA a su flujo de trabajo. El análisis de la causa raíz de las canalizaciones de CI/CD fallidas es útil para los desarrolladores, pero puede requerir registros filtrados para el análisis asistido por IA.
Recomiendo preguntar a los proveedores de IA sobre las barreras de seguridad de la IA y continuar la conversación cuando la información no esté clara. Anímelos a crear un Centro de Transparencia de IA y a seguir el ejemplo de https://about.gitlab.com/ai-transparency-center/. Por último, la transparencia sobre las barreras de seguridad es un requisito a la hora de evaluar herramientas y plataformas de IA.
InfoQ: Ha destacado varias vulnerabilidades dentro del flujo de trabajo de DevSecOps, incluido el mantenimiento del código heredado y el análisis del impacto de las vulnerabilidades. ¿Cómo imagina que la IA contribuirá a gestionar o reducir la deuda técnica, especialmente en sistemas heredados que tal vez no hayan sido diseñados teniendo en cuenta las prácticas modernas de DevOps?
Miguel Federico: Las empresas que aún no han migrado a tecnologías nativas de la nube o refactorizado su código base a marcos modernos necesitarán ayuda. Anteriormente, esto se lograba mediante la automatización o reescribiendo todo desde cero. Sin embargo, este es un proceso que requiere mucho tiempo y mucha investigación, especialmente cuando el código fuente, la infraestructura y el flujo de trabajo no están bien documentados.
Los desafíos son multifacéticos: una vez que se comprende el código fuente, los algoritmos, los marcos y las dependencias, ¿cómo se puede garantizar que nada cambie durante los cambios? Se pueden crear pruebas con la ayuda de la IA, y la creación de una red de seguridad para actividades de refactorización más amplias también ayuda con el código generado por la IA. La refactorización del código puede introducir nuevos errores y vulnerabilidades de seguridad, lo que requiere que las plataformas DevSecOps existentes tengan controles de calidad y seguridad. Los desafíos no terminan ahí: las canalizaciones de CI/CD pueden fallar, las implementaciones en la nube provocan una explosión de recursos y costos, y el ciclo de retroalimentación de DevSecOps comienza de nuevo: nuevas funciones y planes de migración.
Mi consejo es adaptar su flujo de trabajo impulsado por IA en iteraciones. Identifique el enfoque más urgente o liviano para sus equipos y asegúrese de que existan barreras de seguridad y análisis de impacto.
Por ejemplo, comience con sugerencias de código, agregue explicaciones de código y explicaciones de vulnerabilidades como ayudas de conocimiento útiles, continúe con indicaciones de chat y use la generación de recuperación aumentada (RAG) para enriquecer las respuestas con datos de la base de conocimientos personalizados (por ejemplo, de la documentación en un repositorio de Git, utilizando el formato Markdown).
Si los equipos hacen un mejor uso de las revisiones de código asistidas por IA y la publicación de resúmenes de debates, cambie su enfoque allí. Si los desarrolladores pasan la mayor parte de su tiempo analizando procesos de CI/CD de larga duración con una tasa de falla del 90 %, invierta primero en un análisis de la causa raíz. Si los lanzamientos se retrasan constantemente debido a reversiones de último momento y revisiones de vulnerabilidades, comience por crear la prueba y explicar la seguridad y su solución.
InfoQ: ¿Existen estrategias o herramientas basadas en IA que puedan ayudar a cerrar la brecha entre las arquitecturas heredadas y los requisitos de los procesos DevSecOps contemporáneos?
miguel federico: Siga el patrón de desarrollo «explicar, agregar pruebas, refactorizar»; Y agregue patrones de seguridad, preferiblemente en una plataforma DevSecOps donde todos los datos para medir el impacto se reúnen en paneles. Aproveche la oportunidad para revisar la implementación de herramientas y pasar de DIY DevOps a un enfoque de plataforma para obtener más beneficios de eficiencia excelentes.
Según mi propia experiencia, hace muchos años tuve que corregir vulnerabilidades de seguridad complejas y estas correcciones interrumpieron funciones importantes del producto de mi empresa anterior. También introduje regresiones de rendimiento y puntos muertos, que son difíciles de rastrear y encontrar en entornos de producción. Considere un entorno de nube distribuida con múltiples agentes, satélites y una instancia de administración central. Si AI me hubiera ayudado, comprender CVE y la reforma propuesta podría haber evitado meses de depuración. El hilo de conversación también invita a hacer preguntas de seguimiento, como «Explique cómo este cambio de código podría causar regresiones y errores de rendimiento en el contexto de un proyecto C++ distribuido».
También aprendí que los titulados en LLM pueden refactorizar código en diferentes lenguajes de programación, por ejemplo, C to Rust, resolviendo un problema de seguridad de la memoria y un código más robusto. Esta estrategia puede ayudar a migrar la base del código en iteraciones a un nuevo lenguaje y/o marco de programación.
También estoy entusiasmado con los agentes de IA y cómo ayudarán a analizar código, proporcionar estrategias de migración y ayudar a las empresas a comprender los desafíos con las arquitecturas heredadas y las canalizaciones modernas de DevSecOps. Por ejemplo, me gustaría tener un análisis de incidentes asistido por IA mientras consulto datos en vivo en su nube a través de llamadas a funciones LLM. Esto ayuda a obtener información observable para reclamos más informados y puede conducir a propuestas de optimización de costos y seguridad de la infraestructura a través de solicitudes de integración automatizadas.
Las empresas que trabajan en el espacio abierto, es decir, a través de modelos centrales o de código abierto, pueden cocrear con sus clientes. Resúmenes de problemas más precisos, mejores revisiones de código y explicaciones y soluciones de seguridad específicas ayudarán a que todos contribuyan, con un poco de ayuda de la IA.
«Food ninja. Freelance pop culture fanatic. Wannabe zombie maven. Twitter aficionado.»
More Stories
La red social Butterflies AI añade una función que te convierte en un personaje de inteligencia artificial
Edición del vigésimo aniversario de Hautlence HLXX: redefiniendo el tiempo con minutos que retroceden y horas saltantes
Un marco para resolver ecuaciones diferenciales parciales equivalentes puede guiar el procesamiento y la ingeniería de gráficos por computadora