June 16, 2024

Efficiënte DevSecOps-workflow met een beetje hulp van AI: Q&A met Michael Friedrich

Efficiënte DevSecOps-workflow met een beetje hulp van AI: Q&A met Michael Friedrich

Bij QCon Londen, Michaël FriedrichEen senior voorstander van ontwikkelaars bij GitLab besprak hoe dit te doen AI kan helpen bij de DevSecOps-workflow. Zijn sessie was onderdeel van Cloud-native engineeringpad Op de eerste dag van de conferentie.

In de softwareontwikkelingswereld, vooral daarbinnen DevSecOps-pijplijnKunstmatige intelligentie (AI) kan helpen inefficiënties aan te pakken en workflows te stroomlijnen. Enkele van de meest tijdrovende taken op dit gebied zijn het genereren van code, het maken van tests en het beoordelingsproces. AI-technologieën, zoals codegeneratoren en op AI gebaseerde tools voor het maken van tests, pakken deze gebieden rechtstreeks aan, waardoor de productiviteit en kwaliteit worden verbeterd. AI kan bijvoorbeeld het genereren van boilerplate-code automatiseren, realtime codesuggesties geven en het maken van end-to-end-tests vergemakkelijken, inclusief regressie- en unit-tests. Deze mogelijkheden versnellen het ontwikkelingsproces en verminderen de kans op menselijke fouten aanzienlijk.

In operaties is de rol van kunstmatige intelligentie net zo cruciaal. CI/CD-pijplijnen, een belangrijk onderdeel van moderne softwareontwikkelingspraktijken, maken gebruik van AI door middel van geautomatiseerde foutopsporing, analyse van de hoofdoorzaak met behulp van machine learning-algoritmen en verbeteringen in de waarneembaarheid. Tools zoals k8sgpt en Ollama Mistral LLM analyseren implementatielogboeken en vatten belangrijke gegevens samen, waardoor snellere en nauwkeurigere beslissingen kunnen worden genomen. Bovendien onderstreept de toepassing van AI bij de analyse van hulpbronnen en duurzaamheid, geïllustreerd door tools als Kepler, het vermogen van de technologie om activiteiten te optimaliseren met het oog op efficiëntie en impact op het milieu.

Ten slotte profiteert de beveiliging binnen DevSecOps enorm van AI, met innovaties zoals AI-vangrails en systemen voor kwetsbaarheidsbeheer. AI kan kwetsbaarheden duidelijk uitleggen, beslissingen aanbevelen of implementeren en applicaties beschermen tegen potentiële bedreigingen. Bovendien verbetert de bijdrage van AI aan privacy en gegevensbeveiliging, met functies zoals gecontroleerde toegang tot AI-modellen en onmiddellijke verificatie, de algehele beveiligingspositie. Transparantie bij het gebruik van AI en het naleven van ethische principes bij productontwikkeling vergroten het vertrouwen in deze technologieën.

Na de sessie interviewde InfoQ Michael Friedlich over hoe AI kan helpen in DevSecOps.

InfoQ: Gezien uw focus op de rol van AI bij het stroomlijnen van DevSecOps-workflows en het verbeteren van de efficiëntie, hoe stelt u voor dat organisaties het streven naar snelle innovatie en implementatie in evenwicht brengen met de noodzaak om sterke beveiligingspraktijken te handhaven?

Michaël Friedrich: Overweeg de volgende stappen in uw traject van AI naar DevSecOps:


  1. Begin met het evalueren van uw workflow en het belang ervan voor de efficiëntie
  2. Creëer AI-vangrails, inclusief gegevensbeveiliging, verificatiestatistieken, enz.
  3. Vereist impactanalyse die verder gaat dan de productiviteit van ontwikkelaars. Hoe zal AI alle teams en workflows versnellen en aansturen?

Er is een bestaande DevSecOps-workflow vereist om door AI gegenereerde code te verifiëren, inclusief beveiligingsscans, compliance-frameworks, codekwaliteit, testdekking, observatie van prestaties en meer.


Ik verwijs in mijn lezing naar een artikel van de GitLab-blog. Gesprekken met onze klanten en iedereen die bij GitLab betrokken was, inspireerden mij om verder te denken dan de workflow en gebruikers aan te moedigen hun werk te plannen Kunstmatige intelligentie strategisch inzetten.

InfoQ: Kunt u specifiek uw mening geven over het integreren van AI-tools zonder de beveiligingsnormen in gevaar te brengen, vooral als het gaat om gevoelige gegevens en een complexe infrastructuur?

Michaël Friedrich: Een veel voorkomende zorg is de manier waarop gevoelige gegevens zullen worden gebruikt met behulp van AI-tools. Gebruikers hebben transparante informatie nodig over gegevensbeveiliging, privacy en hoe gegevens worden gebruikt. Een vriend van mij werkt bijvoorbeeld in de auto-industrie en gebruikt zeer geavanceerde en complexe algoritmen voor autoverlichting. Deze code mag hun netwerk nooit verlaten en nieuwe uitdagingen met zich meebrengen door AI- en SaaS-modellen te adopteren. Bovendien mag de code niet worden gebruikt om openbare modellen te trainen en mogelijk in de codebasis van iemand anders worden gelekt. De vraag naar binnenlandse masters en speciaal opgeleide modellen is in 2024 toegenomen, en ik geloof dat leveranciers er hard aan werken om deze zorgen van klanten weg te nemen.


Een ander voorbeeld zijn claims die gevoelige infrastructuurgegevens (FQDN's, padnamen, enz.) bloot kunnen leggen in infrastructuur- en cloud-native implementatielogboeken. Er moeten specifieke filters en beleidsmaatregelen worden geïnstalleerd, en er moeten verbeterde controles over de manier waarop gebruikers AI adopteren aan hun workflow worden toegevoegd. Analyse van de hoofdoorzaak van mislukte CI/CD-pijplijnen is handig voor ontwikkelaars, maar er zijn mogelijk gefilterde logboeken nodig voor AI-ondersteunde analyse.


Ik raad aan om AI-leveranciers te vragen naar AI-vangrails en het gesprek voort te zetten als de informatie onduidelijk blijft. Moedig ze aan om een ​​AI Transparency Center op te richten en het voorbeeld te volgen https://about.gitlab.com/ai-transparency-center/. Ten slotte is transparantie over vangrails een vereiste bij het evalueren van AI-tools en -platforms.

InfoQ: U heeft verschillende kwetsbaarheden binnen de DevSecOps-workflow benadrukt, waaronder het onderhouden van verouderde code en het analyseren van de impact van kwetsbaarheden. Hoe denkt u dat AI bijdraagt ​​aan het beheren of verminderen van technische schulden, vooral in oudere systemen die mogelijk niet zijn ontworpen met moderne DevOps-praktijken in gedachten?

Michaël Friedrich: Bedrijven die nog niet zijn overgestapt op cloud-native technologieën of hun codebasis hebben aangepast aan moderne frameworks, zullen hulp nodig hebben. Vroeger werd dit bereikt door automatisering of door alles helemaal opnieuw te schrijven. Dit is echter een tijdrovend proces en vereist veel onderzoek, vooral als de broncode, infrastructuur en workflow niet goed gedocumenteerd zijn.


De uitdagingen zijn veelzijdig: als u eenmaal de broncode, algoritmen, raamwerken en afhankelijkheden begrijpt, hoe kunt u er dan voor zorgen dat er niets verandert tijdens wijzigingen? Tests kunnen worden gemaakt met behulp van AI, en het creëren van een vangnet voor uitgebreidere refactoringactiviteiten helpt ook bij door AI gegenereerde code. Het refactoren van code kan nieuwe bugs en beveiligingskwetsbaarheden introduceren, waardoor bestaande DevSecOps-platforms kwaliteits- en beveiligingscontroles moeten ondergaan. De uitdagingen houden daar niet op: CI/CD-pijplijnen kunnen falen, cloudimplementaties leiden tot een explosie van middelen en kosten, en de DevSecOps-feedbackloop begint helemaal opnieuw: nieuwe functies en migratieplannen.


Mijn advies is om uw AI-aangedreven workflow in iteraties aan te passen. Identificeer de meest urgente of lichtgewicht aanpak voor uw teams en zorg ervoor dat er vangrails en impactanalyses aanwezig zijn.


Begin bijvoorbeeld met codesuggesties, voeg code-uitleg en uitleg over kwetsbaarheden toe als nuttige kennishulpmiddelen, ga verder met chatprompts en gebruik augmented retrieval generation (RAG) om antwoorden te verrijken met aangepaste kennisbankgegevens (bijvoorbeeld uit documentatie in een Git-repository, met behulp van het Markdown-formaat).


Als teams beter gebruik maken van door AI ondersteunde codebeoordelingen en discussiesamenvattingen uitbrengen, verleg dan uw focus daarnaartoe. Als ontwikkelaars het grootste deel van hun tijd besteden aan het kijken naar langlopende CI/CD-pijplijnen met een faalpercentage van 90%, investeer dan eerst in een analyse van de hoofdoorzaken. Als releases voortdurend worden uitgesteld vanwege last-minute rollbacks en beoordelingen van kwetsbaarheden, begin dan met het maken van de test en het uitleggen van de beveiliging en de oplossing ervan.

InfoQ: Zijn er AI-gestuurde strategieën of tools die kunnen helpen de kloof te overbruggen tussen oudere architecturen en de vereisten van hedendaagse DevSecOps-pijplijnen?

Michaël Friedrich: Volg het ontwikkelingspatroon “uitleggen, tests toevoegen, refactoreren”; En voeg beveiligingspatronen toe, bij voorkeur op een DevSecOps-platform waar alle data om impact te meten wordt samengebracht in dashboards. Grijp de kans om de inzet van tools te herzien en stap over van doe-het-zelf DevOps naar een platformbenadering om nog meer uitstekende efficiëntievoordelen te behalen.


Uit eigen ervaring heb ik vele jaren geleden complexe beveiligingskwetsbaarheden moeten repareren, en deze oplossingen verbraken belangrijke functies in het product van mijn vorige bedrijf. Ik heb ook prestatieregressies en impasses geïntroduceerd, die in productieomgevingen moeilijk te volgen en te vinden zijn. Overweeg een gedistribueerde cloudomgeving met meerdere agenten, satellieten en een centrale beheerinstantie. Als ik door AI was bijgestaan, had het begrijpen van CVE en de voorgestelde hervorming maanden van debuggen kunnen voorkomen. De gespreksreeks nodigt ook uit tot vervolgvragen, zoals “Leg uit hoe deze codewijziging prestatieregressies en fouten kan veroorzaken in de context van een gedistribueerd C++-project.”


Ik heb ook geleerd dat houders van een LLM-diploma code kunnen herstructureren in verschillende programmeertalen, bijvoorbeeld C tot Rust, waardoor een probleem met geheugenveiligheid en robuustere code wordt opgelost. Deze strategie kan helpen bij het migreren van de codebasis in iteraties naar een nieuwe programmeertaal en/of raamwerk.


https://about.gitlab.com/blog/2024/04/02/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#refactor-c-code-into-rust


Ik ben ook enthousiast over AI-agents en hoe ze zullen helpen bij het analyseren van code, het bieden van migratiestrategieën en het helpen van bedrijven bij het begrijpen van uitdagingen met oudere architecturen en moderne DevSecOps-pijplijnen. Ik zou bijvoorbeeld graag AI-ondersteunde incidentanalyse willen hebben terwijl ik live gegevens in uw cloud opvraag via LLM-functieaanroepen. Dit helpt bij het verkrijgen van waarneembare inzichten voor beter geïnformeerde claims en kan leiden tot voorstellen voor infrastructuurbeveiliging en kostenoptimalisatie via geautomatiseerde integratieverzoeken.


Bedrijven die in de open ruimte werken, dat wil zeggen via open source- of kernmodellen, kunnen samen met hun klanten co-creëren. Nauwkeuriger samenvattingen van problemen, betere codebeoordelingen en gerichte beveiligingsuitleg en -oplossingen zullen iedereen helpen een bijdrage te leveren, met een beetje hulp van AI.