Mit kontinuierlichen Integrationsverfahren – und DevOps-Frameworks im weiteren Sinne – können Unternehmen die Zusammenarbeit und Code-Integration optimieren und Continuous Delivery-Pipelines pflegen. Solche Praktiken verbessern die Softwarequalität und beschleunigen die Software-Release-Prozesse. Moderne CI-Tools umfassen eine Reihe neuer Technologien, die diese Praktiken stärken und ihren Wert steigern.
So wird beispielsweise der Einsatz von künstlicher Intelligenz (KI) und maschinellem Lernen (ML) in kontinuierlichen Integrationsprozessen zur Standardpraxis in der Entwicklung. Mit KI-fähigen Tools erstellen Entwickler Systeme mit automatischer Fehlerbehebung, die problematischen Code automatisch und autonom identifizieren und korrigieren, bevor er sich auf den Hauptentwicklungsstrom auswirkt. ML-gesteuerte CI-Systeme generieren auch automatisch maßgeschneiderte Testfälle auf der Grundlage von Codeeinreichungen und -änderungen, sodass Entwickler weniger Zeit mit der manuellen Erstellung von Codetests verbringen.
Angesichts der immer ausgefeilteren Cyberbedrohungen2 integrieren Entwickler zunehmend Sicherheitspraktiken direkt in den Softwareentwicklungsprozess. Diese „Shift-Left“-Sicherheitsstrategien führen Sicherheitsprüfungen in den frühesten Phasen der Entwicklung – einschließlich CI-Prozessen – ein, um sicherzustellen, dass Schwachstellen bereits während der Codierung und nicht erst nach der Bereitstellung erkannt werden.
Heute bilden Kubernetes und das erweiterte Ökosystem von Container-Technologien die Bausteine moderner IT-Umgebungen. DevSecOps integriert Sicherheit in jede Phase von DevOps, um die Sicherheitsherausforderungen zu begegnen, die mit solchen dynamischen Ökosystemen einhergehen.
Container sind ausführbare Softwareeinheiten, die Anwendungscode zusammen mit seinen Bibliotheken und Abhängigkeiten verpacken, sodass der Code in jeder Computerumgebung ausgeführt werden kann. Und Kubernetes – auch bekannt als k8s oder kube – ist eine Open-Source-Containerorchestrierungsplattform für die Planung und Automatisierung der Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen.
Traditionell verließen sich DevOps-Teams bei der Identifizierung von Schwachstellen auf ein separates Sicherheitsteam und nutzten das Feedback dann, um Codeänderungen in der nächsten Runde der App-Updates zu implementieren. Jetzt wird von den Entwicklern erwartet, dass sie Container und Cluster sichern und Zero-Trust-Prinzipien in ihren Anwendungen und im Entwicklungsprozess anwenden, was ein neues operatives Paradigma widerspiegelt.3 Die Einführung von DevSecOps-Praktiken bedeutet, dass es bei der Programmierung und Softwareentwicklung nicht mehr nur darum geht, Funktionen zu entwickeln, sondern auch darum, Risiken zu antizipieren.
Serverloses Computing und cloudnative Architekturen haben für die heutigen DevOps-Teams ebenfalls Priorität.
Serverless Computing ist ein Modell für die App-Entwicklung und -Ausführung, mit dem Entwickler Anwendungscode erstellen und ausführen können, ohne Server oder Backend-Infrastrukturen bereitzustellen oder zu verwalten. Die Server in einer serverlosen Konfiguration sind zwar vorhanden, aber sie werden vollständig von einem Cloud-Service verwaltet. In CI-Pipelines befreien Serverless-Plattformen die Entwickler von den Problemen der Backend-Infrastruktur, sodass sie sich auf die Front-End-Codierung und die Geschäftslogik konzentrieren können.
Angesichts der zunehmenden Verbreitung von serverlosem Computing und KI-Anwendungen spielen ereignisgesteuerte Architekturen (EDAs) eine bei der Bewältigung der zunehmenden Komplexität des Cloud Computings. EDAs unterstützen die Echtzeitkommunikation zwischen lose gekoppelten Frontend- und Backend-Systemen und ermöglichen es den Systemen, unabhängig zu arbeiten und Ereignisse (jede Änderung oder Aktion, die innerhalb eines Systems stattfindet) asynchron zu verarbeiten.
In CI-Pipelines bedeutet dies, dass Entwickler einzelne App-Komponenten skalieren können, ohne dass sich dies auf die gesamte Anwendung auswirkt, was die Erstellung flexiblerer, reaktionsschnellerer und skalierbarer Codebases und Integrationsprozesse ermöglicht.