KI in DevSecOps – Vom Copiloten zum Autopiloten

Beim autonomen Fahren ebenso wie in der Softwareentwicklung nimmt die Unterstützung durch Künstliche Intelligenz zu, auf dem Weg hin zur Vollautomatisierung.

In Pocket speichern vorlesen Druckansicht 5 Kommentare lesen

(Bild: Suwin / Shutterstock.com)

Lesezeit: 11 Min.
Von
  • Janne Saarela
Inhaltsverzeichnis

Was haben autonomes Fahren und Softwareentwicklung gemeinsam? Auf den ersten Blick nicht viel. Bei genauerem Hinsehen lassen sich jedoch einige Gemeinsamkeiten erkennen, insbesondere im Entstehungsprozess und den zugrundeliegenden Zielen. Um die Zusammenhänge zu verstehen, lohnt es sich, einen Blick auf das Konzept des autonomen Fahrens zu werfen und es dann auf den Prozess der Softwareentwicklung zu übertragen.

Das Konzept des autonomen Fahrens wird schon seit Jahren diskutiert, und was einst wie eine futuristische Vorstellung erschien, ist heute teilweise schon Realität. Im Wesentlichen zielen autonome Fahrzeuge darauf ab, menschliche Fehler im Verkehr zu minimieren, die für etwa 90 Prozent der Unfälle verantwortlich sind. Die grundlegende Prämisse von autonomen Fahrzeugen ist die Annahme, dass die selbstfahrende Technologie besser und fehlerfreier durch den Verkehr navigiert als ein durchschnittlicher menschlicher Fahrer. Autonomes Fahren hat darüber hinaus das Potenzial, eine äußerst wertvolle Ressource freizusetzen: Zeit. Dies ermöglicht es den Menschen, sich erfüllenderen Aufgaben zu widmen, anstatt mit dem monotonen Akt des Autofahrens beschäftigt zu sein.

Janne Saarela

Janne Saarela ist Strategy Analyst bei JFrog mit einem großen beruflichen Erfahrungsschatz in den Bereichen Technologie und Geschäftsstrategie. Er hat einen MBA von der Oulu Business School, Finnland, und ist ein ehemaliger Nokia-Produktstratege.

Zwei entscheidende Voraussetzungen für das autonome Fahren sind Edge-Technologien und Künstliche Intelligenz (KI): Sie befähigen Fahrzeuge, die Daten von IoT-Sensoren (Internet of Things) im Fahrzeug selbst zu verarbeiten, was Reaktionen auf das Verkehrsgeschehen in Echtzeit ermöglicht. Der Versuch, eine Maschine manuell so zu programmieren, dass sie jedes mögliche Fahrszenario bewältigen kann, ist kein praktikables Unterfangen. Stattdessen muss das Fahrzeug dynamisch von seiner Umgebung lernen. Die Entscheidungsfindung eines autonomen Fahrzeugs hängt dabei von der Verfügbarkeit verschiedener IoT-Sensordaten ab, die die physikalische Welt digital darstellen (als "Zwilling"). Je vielfältiger die Daten sind, desto ausgefeiltere KI-Systeme lassen sich einsetzen.

Betrachtet man den Entwicklungsverlauf des autonomen Fahrens, so kann man in jeder Phase eine schrittweise Abnahme menschlicher Beteiligung feststellen. Das offizielle Framework für autonomes Fahren der SAE (Society of Automated Engineers) umfasst sechs Automatisierungsstufen, die von 0 (vollständig manuell) bis 5 (vollständig autonom) reichen:

0. Keine Automatisierung: Die Fahrerin oder der Fahrer behält die volle Kontrolle über alle Fahraufgaben.
1. Fahrerassistenz: Das Fahrzeug verfügt über ein einziges automatisiertes System, das es dem Fahrer erlaubt, den Fuß vom Pedal zu nehmen.
2. Teilautomatisierung: Das Fahrzeug ist in der Lage, Lenken und Beschleunigen zu übernehmen, sodass der Fahrer die Hände vom Lenkrad nehmen kann.
3. Bedingte Automatisierung: Das Fahrzeug übernimmt die meisten Fahraufgaben, sodass der Fahrer seine Augen von der Straße nehmen kann, aber dennoch die Kontrolle behält.
4. Hohe Automatisierung: Das Fahrzeug führt unter bestimmten Bedingungen alle Fahraufgaben aus, sodass der Fahrer sich gedanklich anderen Dingen zuwenden kann, aber dennoch aufmerksam bleiben muss.
5. Vollautomatisierung: Das Fahrzeug bewältigt eigenständig alle Fahraufgaben unter allen Bedingungen. Dadurch wird der Fahrer zum Beifahrer und ist von allen Fahraufgaben entbunden.

Die Vorteile von KI in der Softwareentwicklung entsprechen weitgehend jenen des autonomen Fahrens: Es geht darum, menschliche Fehler zu minimieren und Zeit für kreative Tätigkeiten zu schaffen. Da menschliche Ressourcen oft der kostspieligste Aspekt der Softwareentwicklung sind, besteht für Unternehmen ein Anreiz, KI-basierte Systeme einzuführen, um mit weniger finanziellem Aufwand mehr zu erreichen. Die Qualität der von der KI gelieferten Daten ist in den meisten Fällen jedoch noch nicht ausreichend, um komplett auf die menschliche Kontrolle zu verzichten. Auch das autonome Fahren funktioniert noch nicht ohne ständige Eingriffsmöglichkeit durch den Fahrer, da es im Straßenverkehr zu unerwarteten und gefährlichen Situationen kommen kann. In einigen Städten in den USA (wie zum Beispiel in San Francisco) gibt es zwar schon komplett autonome Taxis ohne Fahrer, aber in Europa ist es bis dahin aufgrund ethischer und gesetzlicher Unklarheiten noch ein weiter Weg.

Bei näherer Betrachtung der Geschichte der KI in der Softwareentwicklung zeigen sich auffällige Ähnlichkeiten mit der beim autonomen Fahren – die schrittweise Verringerung der menschlichen Beteiligung:

  • In den frühen 2000er-Jahren gab es wenig bis gar keine Automatisierung. In jeder Phase des Softwareentwicklungszyklus war menschliche Kontrolle erforderlich, sodass der Prozess weitgehend manuell ablief. Probleme wurden oft von Kunden statt von internen Teams erkannt.
  • Mitte der 2010er-Jahre begann der Aufstieg von Containerisierung, Cloud Computing und DevOps, was zu einer erhöhten Automatisierung und Effizienz im gesamten SDLC führte. Routineaufgaben und verfahrenstechnische Entscheidungen wurden auf der Grundlage vordefinierter (hartkodierter) Richtlinien und "Wenn-Dann"-Regeln in Bereichen wie Testen, Codeüberprüfung und CI/CD automatisiert. Dies ermöglichte Forschungs- und Entwicklungsteams, sich mit gesteigerter Produktivität auf die kreativen Aspekte ihrer Arbeit zu konzentrieren – was wiederum eine gezielte Steuerung und Beschleunigung zuließ. Entwicklungszyklen verkürzten sich auf der Grundlage agiler Prinzipien und überbrückten die Lücke zwischen Entwicklung und operativen Tätigkeiten. Problemmanagement und -lösung verlagerten sich von reaktiv zu adaptiv – mit einer nahtloseren Koordination zwischen den Teams. Ein Großteil der Probleme konnte erkannt und behoben werden, bevor die Kunden überhaupt darauf aufmerksam wurden.

Heutzutage hebt generative KI die Softwareentwicklung auf eine neue Ebene der Effizienz und Innovation. Die Automatisierung geht weit über Routineaufgaben hinaus, da KI-basierte Lösungen die Erstellung neuer Inhalte durch einen nahtlosen Dialog zwischen Mensch und Maschine ermöglichen. Die Steigerung der Effizienz während des gesamten SDLC beginnt sich gerade erst zu zeigen, da die KI als unerschöpflicher Assistent (Copilot) Vorschläge macht, Probleme erklärt, Code generiert, Prozesse überwacht, Repositorys scannt, Vorhersagen macht und die Entscheidungsfindung unterstützt. Dies wird die Codeerstellung insgesamt weiter beschleunigen und den Output erhöhen, was sich in mehr Builds, mehr zu sichernder Software und häufigeren Aktualisierungen der Laufzeitumgebung niederschlägt. Machine Learning Operations (MLOps) können hierbei strukturierte und zukunftssichere Prozesse für die Entwicklung und den Betrieb von ML-Software bieten. Dieser Prozessansatz unterstützt zudem deren automatisierte und umkomplizierte Integration. Das Konzept der "Liquid Software", bei dem kleine schrittweise Verbesserungen (binärbasierte Updates) automatisch in alle Prozesse von der Entwicklung, bis hin zur Laufzeit (Runtime) der Software mit nur minimalen Ausfallzeiten, einfließen, wird allmählich zur Realität.

  • Im Bereich der Anwendungssicherheit kann KI die Zeit zur Erkennung und Behebung von Problemen erheblich verkürzen und so verhindern, dass Schadcode überhaupt in ein Unternehmen gelangt. Dies beginnt mit einer automatisierten Schwachstellenprüfung und -erkennung unter Verwendung von KI-basierter Schweregrad- und Kontextanalyse und reicht bis zur automatisierten Behebung. Trotz der oben genannten Fortschritte sind menschliche Eingriffe und Genehmigungen weiterhin erforderlich, bis KI-basierte Lösungen ein höheres Maß an Vertrauen und Zuverlässigkeit aufweisen. Die Augen der Entwicklungsteams sind von der Straße abgewandt, aber der Verstand muss wachsam bleiben.
  • In den kommenden Jahren wird der Wandel zu einem Paradigma der vollständigen Automatisierung beginnen, in dem sich der Übergang von einem Copiloten (KI-Assistent) zu einem Autopiloten (KI-Entscheidungsträger) vollzieht. Entwicklungsteams werden nicht per se zu Passagieren, aber allmählich werden sich die traditionellen Rollen und Verantwortlichkeiten der Personen verändern, die an der Konzeption, Erstellung, Sicherung, Verteilung und dem Betrieb von Software beteiligt sind. Maschinen können angewiesen werden, hochkomplexe Probleme über eine Natural-Language-Benutzeroberfläche (etwa in einfacher Sprache auf Deutsch oder Englisch) zu lösen, was den Programmiererinnen und Programmierern neue Fähigkeiten abverlangt, um den Dialog in Richtung des gewünschten Zustands zu lenken. Grundsätzlich sollte das KI-System die Leistung eines durchschnittlichen menschlichen Entwicklers oder einer anderen an den Prozessen beteiligten Person übertreffen. KI wird die Entscheidungsprozesse weiter verbessern und automatisieren, sodass Unternehmen den bestmöglichen (datengesteuerten) Ansatz und die besten Werkzeuge zur Lösung von Problemen auswählen können.

Das entgegengebrachte Vertrauen in KI-Systeme sowie deren Vertrauenswürdigkeit werden von größter Bedeutung sein. Die Basis dafür ist ein umfassendes kontextbezogenes Verständnis und eine ethische Entscheidungsfindung, ähnlich den Herausforderungen, die heute beim autonomen Fahren bestehen:

  • Autonome Fahrsysteme verlassen sich auf die für das Training der KI verwendeten Daten und wenn diese voreingenommen sind, kann das System voreingenommene Verhaltensweisen zeigen. Zum Beispiel, wenn die Trainingsdaten überwiegend aus Bildern bestimmter Fahrzeugtypen oder Fußgänger bestehen, könnte das System Schwierigkeiten haben, weniger vertretene demografische Gruppen genau zu erkennen und auf Personen zu reagieren. Diese Voreingenommenheit kann zu diskriminierendem Verhalten auf der Straße führen, wie etwa dem Nichterkennen von Fußgängern einer bestimmten Ethnie oder Radfahrern mit ungewöhnlicher Kleidung.
  • Zudem sammelt und verarbeitet die KI eine sehr große Menge an Daten aus Sensoren, Kameras und anderen Quellen. Die ethische Herausforderung besteht darin, die Privatsphäre von erfassten Personen zu gewährleisten. Es ist zu klären, wem die Daten gehören, wie sie gespeichert werden und wie sie über das Thema Fahrzeugsicherheit hinaus verwendet werden. Die Balance zwischen der Nutzung von Daten zur Verbesserung der Technologie und der Achtung der Privatsphärenrechte von Einzelpersonen ist ein bedeutendes ethisches Dilemma.
  • Die weitreichende Einführung autonomer Fahrzeuge hat das Potenzial, die Beschäftigung in Branchen wie Transport und Lieferung zu beeinflussen. Da Arbeitsplätze im Fahrwesen automatisiert werden, ergeben sich ethische Überlegungen hinsichtlich der Verdrängung menschlicher Arbeitskräfte.

Letztlich werden in der Softwareentwicklung selbstlernfähige und -reparierende Funktionen für die Erkennung, Analyse, Isolierung und Behebung von Problemen bei gleichzeitiger Aufrechterhaltung der Service-Verfügbarkeit unerlässlich sein. Das bedeutet, dass intelligente Software in der Lage sein muss, sich selbst umzuschreiben und zu aktualisieren sowie neue Funktionen hinzuzufügen, um mit neuen Eingaben umgehen zu können. Ähnlich wie bei autonomen Fahrzeugen muss das KI-System aus seiner Betriebsumgebung lernen und sich entsprechend anpassen.