Hilfe im Dschungel der Anfragen: DevOps Copilot als hilfreicher Assistent
In der heutigen, rasant voranschreitenden Welt der Digitalisierung gewinnt die Automatisierung von IT-Prozessen immer mehr an Bedeutung. Vor allem im Bereich DevOps, wo Effizienz und Agilität den Erfolg eines Projekts maßgeblich beeinflussen, spielt die Automatisierung eine zentrale Rolle. Hier kommt der DevOps Copilot ins Spiel – ein von Materna konzipierter intelligenter Assistent, der auf Large Language Models (LLMs) basiert und es ermöglicht, repetitive, also sich wiederholende, Aufgaben zu automatisieren, Kapazitäten freizusetzen und trotzdem die Kontrolle über kritische Infrastrukturprozesse zu bewahren.
Für viele IT-Dienstleister besteht die tägliche Herausforderung darin, ihre Kunden bei der digitalen Transformation zu unterstützen. Oftmals erfordert dies den Einsatz eines cross-funktionalen Teams, das aus Softwarearchitekt:innen, Entwickler:innen und DevOps Engineers besteht. In den letzten Jahren haben sich dabei DevOps-Prinzipien wie „Shift Left“, „Automate Everything“ und „You Build It, You Run It“ etabliert. Das bedeutet, dass die Verantwortung für den Betrieb von Software zunehmend auf die Entwicklungsteams übertragen wird, was eine tiefere Einbindung in Infrastrukturprozesse erfordert.
Automatisierung als strategischer Vorteil
Dieser Paradigmenwechsel führt jedoch dazu, dass Entwickler:innen häufiger in Bereiche vordringen, die klassischerweise den DevOps Engineers vorbehalten waren – etwa Infrastrukturkonfigurationen oder die Einrichtung von Monitoring- und Tracing-Lösungen. Die wachsende Komplexität der IT-Infrastrukturen und die Vielzahl an Cloud-nativen Services tragen zusätzlich dazu bei, dass DevOps Engineers immer mehr als interne Support-Einheit fungieren und mit kurzfristigen, oft trivialen Anfragen überflutet werden.
Durch diese Anfragen verlieren DevOps Engineers jedoch wertvolle Zeit, die sie für strategisch wichtigere Aufgaben wie die Automatisierung von Prozessen oder die Optimierung der Infrastruktur aufwenden könnten. Hier setzt der DevOps Copilot an: Er automatisiert diese Unterstützung und fungiert als intelligenter Assistent, der den DevOps Engineers hilft, sich auf ihre Kernaufgaben zu konzentrieren, ohne dabei die Kontrolle über wichtige Infrastrukturprozesse abzugeben.
Wie der DevOps Copilot den Arbeitsalltag erleichtert
Der Kern des DevOps Copilot basiert auf der kreativen und flexiblen Natur von Large Language Models (LLMs). Diese Modelle haben das Potenzial, Prozesse zu digitalisieren und zu automatisieren, für die es keinen klaren Lösungsweg gibt oder deren Lösung durch zahlreiche Varianten gekennzeichnet ist. Im Falle des DevOps Copilot bedeutet dies, dass das LLM als Assistent agiert, der auf Anfragen antworten kann, die außerhalb der gewohnten Routineaufgaben liegen.
Die Idee hinter dem DevOps Copilot ist es, dem LLM eine Reihe von Funktionen zur Verfügung zu stellen, die den typischen Aufgaben eines DevOps Engineers entsprechen – sei es das Ändern einer Infrastrukturkonfiguration oder das Auslesen von Monitoring-Daten. Diese Funktionen werden durch die API-Schnittstellen von Automatisierungstools wie GitLab, GitHub, oder TeamCity bereitgestellt und ermöglichen dem Copiloten, auf Infrastruktur als Code (IaC) zuzugreifen und entsprechende Anpassungen vorzunehmen.
Ein entscheidender Mehrwert des Copilots liegt jedoch darin, dass er nicht nur isolierte Aufgaben übernimmt, sondern ganze Prozessketten orchestrieren kann. Dies wird durch eine intelligente Kombination der zur Verfügung stehenden „Skills“ ermöglicht. Skills sind modulare Bausteine, die einzeln ausführbar sind, aber auch kreativ miteinander kombiniert werden können, um komplexere Aufgaben zu bewältigen. So lässt sich beispielsweise der Speicher eines Servers in einer IaC-Konfiguration ändern, indem der Copilot die entsprechende Datei und Zeile im Code findet, den Wert ändert und anschließend den Commit durchführt – alles automatisiert.
Der Vorteil für die DevOps Engineers liegt klar auf der Hand: Routineaufgaben wie diese werden automatisiert abgewickelt, sodass sie ihre Zeit effizienter einsetzen können. Anstatt ständig ad-hoc Support leisten zu müssen, können sie sich auf die Weiterentwicklung und Optimierung der Infrastruktur sowie die Automatisierung neuer Prozesse konzentrieren.
Kontrolle über den Automatisierungsprozess behalten
Eine häufige Sorge bei der Implementierung von Automatisierungslösungen ist die Frage nach der Kontrolle: Wie stellen wir sicher, dass der DevOps Copilot nur das tut, was wir wollen? Hier spielt die semantische Beschreibung der Skills eine zentrale Rolle. Jeder Skill ist mit einer detaillierten Beschreibung versehen, die genau definiert, welche Eingaben erforderlich sind und welche Aktionen ausgeführt werden. Die Kontrolle über den Planungs- und Ausführungsprozess bleibt dabei stets in den Händen der DevOps Engineers.
Darüber hinaus basiert die technische Umsetzung des Copilots auf dem Semantic Kernel Framework von Microsoft. Dieses Framework ermöglicht es, Skills zu definieren und mit bestehenden Wissensquellen, etwa in Form von Projektdokumentationen, zu verknüpfen. Ein Beispiel hierfür wäre die Anbindung eines internen Wikis, das spezifische Projektkonventionen und Richtlinien enthält. Das LLM kann auf dieses Wissen zugreifen, um sicherzustellen, dass es bei der Ausführung von Aufgaben keine projektspezifischen Regeln verletzt. So bleibt die Automatisierung kontrolliert und sicher.
Umsetzung des DevOps Copilot mit Microsoft Semantic Kernel
Die technische Basis des DevOps Copilot wird durch das Semantic Kernel Framework von Microsoft gebildet. Dieses Framework ermöglicht es, sogenannte "Skills" zu definieren – modular einsetzbare Bausteine, die den Fähigkeiten eines DevOps Engineers entsprechen. Diese Skills sind keine fest vordefinierten Lösungen, sondern fungieren vielmehr als flexible Werkzeuge, die kreativ miteinander kombiniert werden können, um spezifische Aufgaben zu lösen.
Ein Kernaspekt der Umsetzung liegt in der Fähigkeit des DevOps Copilot, auf vorhandenes Projektwissen und Dokumentationen zuzugreifen. Diese Wissensquellen – häufig in Form von internen Wikis, Richtlinien oder Code-Repositorys – werden als Memory im Semantic Kernel hinterlegt. Das bedeutet, dass der Copilot bei der Bearbeitung einer Anfrage automatisch dieses Wissen berücksichtigt und seine Aktionen auf die geltenden Standards und Best Practices im jeweiligen Projekt abstimmt.
Der Workflow des Copilots besteht aus mehreren, aufeinander abgestimmten Schritten. Wenn eine Anfrage – beispielsweise eine Änderung an der Infrastrukturkonfiguration – gestellt wird, erstellt der Copilot einen detaillierten Plan zur Bearbeitung. Dabei wird der Prozess so orchestriert, dass jede Aktion in der richtigen Reihenfolge ausgeführt wird. Diese automatisierte Planung entlastet die Nutzer, bietet jedoch gleichzeitig volle Kontrolle über den Ablauf. DevOps Engineers können den Plan bei Bedarf anpassen oder ergänzen, um sicherzustellen, dass alle Schritte den Anforderungen entsprechen.
Für einfache Änderungen wie die Anpassung von Speicherressourcen eines Servers im Infrastructure-as-Code (IaC)-Kontext nutzt der Copilot einige wenige, generische Skills. Diese umfassen die Suche nach der relevanten Datei, das Identifizieren der zu ändernde Zeile und die Modifikation des Wertes. Während der Planerstellung berücksichtigt der Copilot projektspezifisches Wissen, etwa Namenskonventionen oder Strukturierungsvorgaben, um sicherzustellen, dass die Änderungen korrekt und im Einklang mit den Richtlinien durchgeführt werden.
Im Gegensatz zum Memory des Semantic Kernel Framework, das eine flüchtige Speicherung von Informationen im Arbeitsspeicher für kurzfristige Operationen ermöglicht, bietet eine Vektor-Datenbank wie CHROMA eine persistente, externe Speicherung. Das Memory im Semantic Kernel dient dazu, kurzfristige Informationen und Kontext während eines laufenden Prozesses zu halten, die direkt zur Lösung einer Aufgabe genutzt werden. Die Vektor-Datenbank hingegen speichert langfristiges Wissen und projektübergreifende Daten. So können spezifisches Domainwissen und komplexe Abhängigkeiten zwischen Systemen oder Projekten effizient und dauerhaft gespeichert und abgerufen werden. CHROMA ist nur ein Beispiel einer Vektor-Datenbank, die diese Art der langfristigen Wissensspeicherung ermöglicht und bei der Planerstellung berücksichtigt wird. Durch die semantische Beschreibung jedes Skills ist der DevOps Copilot in der Lage, Anfragen flexibel zu interpretieren und kreative Lösungen zu entwickeln, ohne dabei den Rahmen der vorgegebenen Regeln zu verlassen. Diese Kontrollmechanismen stellen sicher, dass der Copilot nur das tut, was vorab definiert wurde, und dass auch komplexe, automatisierte Prozesse stets nachvollziehbar und sicher ablaufen.
Ein Vorteil der Automatisierung ist die Verringerung von Fehlerquellen, die bei manuellen Anpassungen häufig auftreten. Automatisierte Prozesse sorgen dafür, dass Änderungen konsistent und zuverlässig durchgeführt werden, was Stabilität und Sicherheit erhöht. Dabei ist jedoch zu beachten, dass GenAI-Modelle wie der DevOps Copilot, anders als traditionelle Automatisierungslösungen, nicht immer deterministisch agieren. Um unvorhergesehene Variationen zu minimieren, wird der Copilot durch klar definierte Skills und projektspezifisches Wissen gesteuert. Wie der Name Copilot suggeriert, bleibt der Entwickler oder DevOps-Engineer immer in der Verantwortung und gibt den Plan des Copilots frei. Dies gewährleistet, dass trotz der kreativen Flexibilität von LLMs die Kontrolle über die Automatisierung und die gewünschten Ergebnisse erhalten bleiben.
Blick in die Zukunft: Mehr Automatisierung und Flexibilität
Die Entwicklung des DevOps Copilot steht noch am Anfang, bietet aber bereits jetzt spannende Möglichkeiten für die Zukunft. Durch die Integration weiterer Systeme und Automatisierungstechnologien wird der Copilot in der Lage sein, noch tiefere Einblicke in die Infrastruktur zu erhalten und komplexere Aufgaben eigenständig zu lösen. Besonders die Flexibilität des LLMs ermöglicht es, auf unerwartete Herausforderungen zu reagieren und Lösungen zu finden, die nicht vorab programmiert wurden.
Ein nächster entscheidender Schritt besteht in der Integration verschiedener Identity-and-Access-Management (IAM)-Systeme, um den Copilot technologieagnostisch und plattformübergreifend einsetzen zu können. Dadurch werden Unternehmen ihre Automatisierung unabhängig von der zugrunde liegenden Infrastruktur ausweiten und die Kontrolle über Zugriffsrechte und Berechtigungen effizienter gestalten können.
Voller Fokus auf geschäftlichen Mehrwert und strategische Aufgaben
Durch den Einsatz des DevOps Copilot können wir in unseren Projekten nicht nur die Effizienz steigern, sondern auch wertvolle Zeit für strategisch wichtigere Aufgaben freisetzen. Die Automatisierung repetitiver Tätigkeiten entlastet die DevOps-Engineers in unseren Projektteams und ermöglicht es ihnen, sich auf innovative Themen zu konzentrieren. Dies fördert nicht nur die Weiterentwicklung der Infrastruktur, sondern steigert auch die Innovationskraft im Team. Gleichzeitig enabled es unsere Entwickler, repetitive Teilaufgaben der DevOps-Engineers zu erledigen, was zu höherer Geschwindigkeit, weniger Reibungsverlust und so zu mehr Geschäftswert für unsere Kunden führt.
Über den Autor