Artikel

DevOps mit künstlicher Intelligenz (KI) auf die nächste Stufe bringen

Die sich schnell entwickelnden Geschäftssysteme, das regulatorische Umfeld und die Verbraucherorientierung von IT-Anforderungen haben die Flexibilität, Sicherheit und Widerstandsfähigkeit unserer IT-Systeme so stark verbessert wie nie zuvor.

Bisher haben wir erlebt, wie künstliche Intelligenz (KI) jeden Aspekt des Geschäfts und des Betriebs, die zugrunde liegenden IT-Systeme und die Entwicklungsprozesse verändert hat. Während der SDLC-Prozess durch den Einsatz von Agile und DevOps bereits gestrafft und beschleunigt wird, gibt es nach wie vor Herausforderungen in Bezug auf die vorherrschenden Denkweisen und Qualifikationsdefizite, um eine Hyperautomatisierung zu erreichen und Best-in-Class-Engineering-Praktiken konsequent zu nutzen.

Interessanterweise können KI und maschinelles Lernen (ML) hier Abhilfe schaffen, indem sie große Datenmengen erfassen, die von verschiedenen Softwareentwicklungs- und CI/CD-Tools generiert werden, um Modelle zu erstellen und Muster zu erkennen. Diese Modelle können dazu verwendet werden, Anomalien zu erkennen, Fehler vorherzusagen und Abhilfe zu schaffen. So können wir einen Quantensprung in Richtung hochleistungsfähiger autonomer Systeme machen. 

Sehen wir uns an, wie verschiedene Stufen von DevOps von KI profitieren können:

1. Kontinuierliche Planung

Geschäftsinteressenten erwarten von Anwendungen, dass sie neue Funktionen bereitstellen und Probleme schnell lösen. Die kontinuierliche Planung stellt sicher, dass Inputs in verschiedenen strukturierten und unstrukturierten Formen eingehen, z. B. Feature- oder Serviceanfragen, Trouble Tickets, Benutzerfeedback, Umfragen und Marktanalysen. Diese Eingaben werden ständig ausgewertet, in User Stories umgewandelt und in das Product Backlog verschoben.

Die Verarbeitung natürlicher Sprache (NLP) kann genutzt werden, um unstrukturierte Eingaben zu interpretieren, die über E-Mails, Sprachnachrichten, Anrufe bei Agenten und Kommentare auf der Website eingehen. So lassen sich die Anforderungen und Probleme der Benutzer besser erfassen und die entsprechenden Absichten erkennen. Darüber hinaus können diese Eingaben aggregiert und zusammengefasst werden, um Produktverantwortlichen und anderen Geschäftsinteressenten Einblicke zu gewähren, die es ihnen ermöglichen, Funktionen und Fehlerbehebungen für nachfolgende Versionen zu planen und zu priorisieren.

 

2. Kontinuierliche Integration

Bei diesem Schritt wird Code von verschiedenen Entwicklern integriert und regelmäßig inkrementelle Builds erstellt, um das Risiko zu minimieren. Ein Chatbot mit einer Funktion zur Erzeugung natürlicher Sprache (Natural Language Generation, NLG) hilft dabei, Builds bei Bedarf auszulösen und im Falle von Problemen oder Fehlern benutzerdefinierte Warnungen und Benachrichtigungen zu senden. Darüber hinaus können historische Daten aus früheren Code-Commits, Builds und generierten Protokollen analysiert werden, um Muster zu erkennen und Hotspots zu schaffen, mit denen sich ähnliche Fallstricke in Zukunft vermeiden lassen. Statische Codeanalyse und Unit-Tests sind zwei weitere wichtige Aktivitäten, die von KI profitieren können. Sobald die Codeanalyse im Hintergrund ausgelöst und abgeschlossen wurde, nachdem ein Entwickler den Code übertragen hat, können die Ergebnisse in eine Konversations-Engine eingespeist werden. Diese kann die Ergebnisse mithilfe einer in Sprache umgewandelten Textzusammenfassungs-Engine zusammenfassen und den Entwickler anleiten, die Codequalität vor dem Testen zu verbessern. 

 

3. Kontinuierliche Tests

KI kann im Qualitätssicherungsprozess (QS) effektiv eingesetzt werden, um weniger offensichtliche, aber wichtige Hilfstätigkeiten jenseits von Testdurchführung und Berichterstattung zu ergänzen. So können Testingenieure beispielsweise durch einen intelligenten Assistenten ergänzt werden, der während der Testdurchführung automatisch Fehler klassifiziert und Duplikate erkennt. Dies kann den ansonsten mühsamen und zeitaufwändigen Prozess der Fehlersuche erheblich optimieren.

Bei fehlgeschlagenen Tests können Protokolle analysiert werden, um wiederkehrende Muster aufzudecken und Modelle zu erstellen und zu trainieren, mit denen sich die Ursachen von Fehlern in zukünftigen Testläufen vorhersagen lassen. Für Systeme in der Produktion, für die die meisten Testfälle bereits verfügbar sind, kann NLP eingesetzt werden, um diese Testfälle in Skripte umzuwandeln, die direkt von gängigen automatisierten Test-Frameworks wie Selenium oder Appium verwendet werden können. Darüber hinaus können ähnliche Tests auf der Grundlage von Mustern, die sich aus der semantischen Ähnlichkeit und der Erfolgs- oder Misserfolgshistorie ergeben, zu Clustern zusammengefasst werden, um Ausführungszeit zu sparen und Regressionstests zu optimieren.      

 

4. Kontinuierliche Bereitstellung

Die Technologie hat bei der Automatisierung der Softwarebereitstellung eine entscheidende Rolle gespielt – von der Zeit, in der Bereitstellungsaufträge manuell mit handgeschriebenen Skripten ausgelöst wurden, bis hin zum heutigen Zeitalter der mehrstufigen automatisierten Bereitstellung mit einem Klick. Trotz dieses Fortschritts sind fehlgeschlagene und suboptimale Implementierungen mit häufigen Rollbacks für viele Unternehmen nach wie vor ein Problem, das zu verspäteten Markteinführungen und Umsatzeinbußen führt. KI kann entscheidend dazu beitragen, die Komplexität von Implementierungen zu bewältigen und die Fehlerquote zu senken.

So können beispielsweise Ontologien der Infrastruktur eines Unternehmens, einschließlich Software, Datenbanken und Hardware, für verschiedene Umgebungen wie Dev-Test, Staging und Produktion erstellt werden. Dies ist durch eine Kombination aus dem Wissen der Fachexperten, Configuration Management Databases (CMDBs) und Netzwerkerkennungs-Tools möglich. System- und anwendungsspezifische Protokolle, die während früherer Implementierungen erstellt wurden, können gespeichert, analysiert und zusammen mit Ontologieelementen ausgewertet werden, um mögliche Fehler bei zukünftigen Implementierungen vorherzusagen. Diese Fehler können mit den tatsächlichen Einsatzergebnissen verglichen werden, um neue Muster zu erkennen, auf deren Grundlage Lehren gezogen werden können, um Präventivmaßnahmen zu ergreifen, die künftige Einsätze vorhersehbarer und zuverlässiger machen.    

 

5. Kontinuierliche Überwachung und Feedback

Die Überwachung von Produktionsversionen ermöglicht es Produktverantwortlichen, QS- und Entwicklungsteams zu verstehen, wie die Anwendungen funktionieren und genutzt werden. Enorme Daten in Form von Warnungen, Vorfällen, Protokollen, Ereignissen und Metriken werden von den Anwendungen, abhängigen Systemen, Tools und anderen Netzwerkkomponenten generiert. KI kann dabei helfen, aus diesem großen Datenpool Erkenntnisse zu gewinnen, indem sie mithilfe von überwachtem und unüberwachtem Lernen trainierte Modelle erstellt. Diese Modelle können dabei helfen, anomales Verhalten zu identifizieren, das potenzielle Schwachstellen und Ausfälle verursachen kann.

Darüber hinaus kann explizites Feedback zu Problemen, mit denen die Endnutzer konfrontiert sind, über verschiedene Kanäle wie E-Mails, Textnachrichten und sprachbasierte interaktive Unterhaltungen eingeholt werden. Dieses Feedback und die Nutzungsmuster können verarbeitet werden, um eine Stimmungs- und Nutzbarkeitsanalyse durchzuführen und die Erfahrungen der Kunden mit dem Produkt oder der Dienstleistung besser zu verstehen. Schließlich können die Ergebnisse dieser Analyse als kritischer Input für die perfekte Wartung oder die Erstellung neuer Benutzergeschichten verwendet werden, um die Benutzererfahrung zu verbessern.     

Fazit

Digitale Technologien verändern bereits heute die Unternehmen aller Branchen. DevOps spielt bei dieser Transformation eine zentrale Rolle, indem es dafür sorgt, dass Produkte und Dienstleistungen, die auf neuen Technologien basieren, nahtlos und zuverlässig zur Verfügung stehen. Die KI verspricht, die DevOps-Bewegung auf die nächste Stufe zu heben, indem sie auf Best Practices basierende Intelligenz einfließen lässt und menschliche und Systemfehler eliminiert. Dies kann nicht nur den Zyklus von der Konzeption bis zur Bereitstellung erheblich beschleunigen, sondern uns auch in die Lage versetzen, das scheinbar unerreichbare Ziel der Entwicklung flexibler, selbstlernender und reaktionsfähiger autonomer Systeme zu erreichen.

 

Aman Chandra

Vizepräsident
Intelligente Automatisierung & Testing

Aman verfügt über mehr als 25 Jahre Erfahrung in der IT-Branche in den Bereichen Digital Engineering, intelligente Automatisierung und herausragende Leistungen. Derzeit leitet er die DevOps- und Quality-Engineering-Praxis bei Virtusa, die für Consulting- und Beratungsdienste, Kompetenzentwicklung und Solution Engineering für globale Kunden zuständig ist. Aman hat mehrere Patente für die Anwendung von KI/ML-Techniken zur Automatisierung und Optimierung des SDLC-Prozesses angemeldet.

Virtusa kann Ihr Unternehmen dabei unterstützen, seine DevOps-Praktiken zu modernisieren und zu skalieren, indem es AI/ML-Techniken einsetzt.
Verwandte Inhalte