6 Maßnahmen für bessere CI/CD-Pipelines

05.06.2024
Von 


Isaac Sacolick ist Autor des Amazon-Bestsellers "Diving Digital: The Leader's Guide to Business Transformation thourh Technology". Er schreibt als freier Autor unter anderem für unsere US-Schwesterpublikation CIO.com.

 
CI/CD Pipelines sollten möglichst performant und sicher sein. Diese Maßnahmen unterstützen DevSecOps-Teams dabei, das zu realisieren.
Pipelines optimal zu gestalten, ist Schwerstarbeit.
Pipelines optimal zu gestalten, ist Schwerstarbeit.
Foto: stetsko | shutterstock.com

Pipelines für Continuous Integration und Continuous Delivery (CI/CD) zu konfigurieren, um Code automatisiert zu verpacken, zu kompilieren und zu veröffentlichen, wird als grundlegende DevSecOps-Methodik angesehen. Indem sie den Weg des Codes in die Produktion automatisieren, können DevSecOps-Teams:

  • Fehler reduzieren,

  • die Deployment-Frequenz erhöhen,

  • Produktionsprobleme schneller lösen, sowie

  • ihre Teamkultur optimieren.

Wenn es darum geht, diese CI/CD Pipelines - und die zugrundeliegenden Plattformen - möglichst sinnstiftend und zukunftsfähig zu entwickeln, besteht in vielen Fällen noch Luft nach oben. Im Gespräch mit Experten auf dem Gebiet der Softwareentwicklung haben wir sechs Möglichkeiten identifiziert, wie DevSecOps-Teams ihre CI/CD Pipelines optimieren und maximalen Business Impact erzielen können.

1. Continuous Testing mit GenAI vorantreiben

Im Rahmen des "World Quality Report 2023-24" (PDF) von Capgemini und Opentext geben 80 Prozent der Befragten an, sie hätten ein Viertel bis die Hälfte ihrer Testautomatisierungs-Initiativen in Delivery-Pipelines integriert. Von daher ist es nicht überraschend, dass 39 Prozent der Befragten CI/CD als zweitwichtigste Kompetenz für Experten auf dem Gebiet der Qualitätssicherung ansehen - hinter Coding-Skills.

"Man sollte meinen, dass die Testautomatisierung gut angenommen wird", kommentiert David Brooks, SVP of Evangelism bei Copado das Ergebnis, und fügt hinzu: "Die Wahrheit ist, dass sich viele Unternehmen immer noch auf manuelle Tests verlassen. Und diejenigen, die automatisieren, decken kaum ein Drittel ihrer Funktionen ab. In der Praxis erweisen sich vor allem die Wartungsarbeiten als zu aufwändig."

Die Wartungsarbeiten, auf die sich der Manager bezieht, beinhalten beispielsweise:

  • Automatisierungssoftware bei Code-Änderungen zu aktualisieren,

  • die Test-Performance zu verbessern und

  • die Testdaten zu erweitern.

Generative AI könnte sich dabei als Game Changer für die Qualitätssicherung erweisen, wie beispielsweise Gevorg Hovsepyan, Head of Product bei Mabl, prophezeiht: "KI wird automatisierte Tests endlich zu einem verlässlichen Bestandteil von CI/CD-Pipelines machen. Zwar setzen die meisten Entwicklungsteams bereits auf GenAI, um Test Cases zu erstellen. Wenn diese aber ständig nur fehlschlagen, kommen die Pipelines zum Erliegen. Generative KI stattdessen dazu zu nutzen, Tests automatisiert zu aktualisieren, sobald sich das Produkt verändert, ist der sinnvollere Weg."

Ein weiteres Mittel, um Ihre Continuous-Testing-Bemühungen voranzutreiben: Statten Sie CI/CD Pipelines mit Performance-, Stress- und Scalability-Tests aus. Dazu empfehlen sich Performance Testing Tools mit CI/CD-Integrationsmöglichkeiten, wie zum Beispiel:

2. Continuous Deployment anstreben

Continuous Testing stellt neben Feature Flags, Canary-Release-Strategie und AIOps-Plattform eine wesentliche Voraussetzung für Continuous Deployment dar - ein Prozess, bei dem DevSecOps-Teams CI/CD erweitern, um in Produktionsumgebungen auszuliefern.

Ein Continuous-Deployment-Ansatz kann insbesondere für Unternehmen von Bedeutung sein, für die es essenziell ist, Änderungen in hoher Frequenz durchzuführen und Probleme in der Applikations-Produktion möglichst schnell zu beheben. Das betrifft zum Beispiel diverse SaaS-Unternehmen und solche, die kundenorientierte oder auch geschäftskritische, interne Anwendungen entwickeln. Um zu messen, wie sich Continuous Deployment (und andere DevSecOps-Methoden) auf das Business auswirken, nutzen diese Firmen die sogenannten DORA-Metriken. Eine DORA-Metrik ist die "lead time for code changes" - also der Zeitraum zwischen Code-Commit und erfolgreichem Produktionseinsatz. Laut dem "State of CI/CD Report 2024" (PDF) kann Continuous Deployment diese Kennzahl wesentlich verringern und damit einer schlechten User Experience, möglicher Downtime und/oder Workflow-Unterbrechungen vorbeugen.

Auch in diesem Bereich soll künstliche Intelligenz künftig weiter unterstützen, wie Kumar Chivukula, Gründer und CEO von Opsera, deutlich macht: "KI-gestützte DevOps-Tools versprechen eine Steigerung der Entwicklerproduktivität um 30 Prozent oder mehr. Nach der ersten Implementierungswelle suchen Unternehmen inzwischen verzweifelt nach einem automatisierten Mechanismus, um Insights, KPIs und DORA-Metriken zu erfassen, um die von den Anbieter versprochenen Benefits und den letztlich realisierten Return on Investment nachzuweisen."

3. Hybrides CI/CD verinnerlichen

Eine überraschende Erkenntnis des "State of CI/CD Report" bezieht sich auf die Anzahl der CI/CD-Plattformen, die die befragten Unternehmen einsetzen - und wie sich das auf die DORA-Metriken auswirkt. Demnach schneiden Firmen, die auf einen hybriden Ansatz aus selbst gehosteten und gemanagten CI/CD-Plattformen setzen, besser ab als diejenigen, die sich auf einen Ansatz beschränken oder die Plattformen überhaupt nicht einsetzen. Die Studie kommt darüber hinaus zu dem Schluss, dass Unternehmen, die drei oder weniger CI/CD-Plattformen einsetzen, besser fahren als solche, die mehr als drei Tools verwenden.

Die Gründe, warum Unternehmen mehrere CI/CD-Plattformen einsetzen, variieren dabei. So könnte eine Firma in der Praxis beispielsweise:

  • Copado oder Opsera verwenden, um Applikationen in Salesforce bereitzustellen,

  • Jenkins nutzen, um Anwendungen im Rechenzentrum einsetzen,

  • GitHub Actions für Cloud-native Anwendungen nutzen und

  • nach der Übernahme eines Konkurrenten Implementierungen mit AWS CodeBuild und AWS CodePipeline übernehmen.

4. Shift-Left-Security mit Plugins umsetzen

Ein wichtiger Aspekt in Sachen CI/CD-Pipeline-Optimierung sind Plugins von Drittanbietern. Jenkins, die CI/CD-Plattform mit dem höchsten Marktanteil, bietet etwa mehr als 1.900 solcher Plugins an - zum Beispiel Konnektoren für Git, Jira und Kubernetes. Unabdingbar ist dabei, die Plugins von Drittanbietern ausführlich zu evaluieren - insbesondere, wenn es um solche geht, die die Codequalität sicherstellen und mögliche Schwachstellen identifizieren sollen.

Diese Erfordernisse führen dazu, dass solche Tools meist in bedächtigerem Tempo eingesetzt werden können, wie Aislinn Wright, VP of Product Management bei EDB, konstatiert: "Zu den Funktionen, die noch zu wenig genutzt werden gehören prädiktive Analysen, um potenzielle Deployment-Fehler zu identifizieren sowie der Einsatz von KI, um die Codequalität zu überprüfen und Fehler, Sicherheitslücken und Data-Governance-Probleme aufzuspüren. Diese Tools können die Agilität und Effizienz von DevOps-Prozessen erheblich verbessern, erfordern jedoch einen höheren Grad an technologischer Reife und erhöhten Integrationsaufwand."

Zu den Sicherheitsfunktionen, die über Plugins in CI/CD-Pipelines integriert werden können, zählen:

5. Pipeline Observability optimieren

Darüber hinaus sollten DevSecOps-Teams weitere Schritte unternehmen, um CI/CD-Pipelines abzusichern. Eine gute Ressource, um sich einen Überblick über Best Practices in diesem Bereich zu verschaffen, ist das "CI/CD Security Cheat Sheet" von OWASP.

Zu den wichtigsten CI/CD-Sicherheitsrisiken gehören:

  • Pipelines ohne Autorisierungsmaßnahmen, die versehentliche oder schadhafte Code Pushes verhindern.

  • Lieferkettenprobleme, wenn über Dev-Workstations oder Build-Umgebungen bösartige Packages abgerufen werden.

  • Drittanbieter-Services, die eingesetzt werden, ohne vorher angemessen validiert worden zu sein.

Die Kunst für DevSecOps-Teams besteht dabei darin, eine Balance zwischen den CI/CD-Optimierungen, die die Deployment-Frequenz erhöhen und denen, die Sicherheitsrisiken minimieren, zu finden. Um Performance-Probleme erkennen, Testengpässe verfolgen und Fehler bei Problemen mit Drittanbieterdiensten suchen zu können, gilt es, auch die Observability zu optimieren.

Ein Ansatz, um Security- und Operations-Überlegungen zusammenzubringen: Tools zu nutzen, die den Policy-as-Code (PaC)-Ansatz unterstützen. Diese Systeme bieten DevSecOps-Teams eine skalierbare Möglichkeit, um Security- und Operations-Regeln zu erfassen, zu implementieren und zu skalieren. Mike Scott, CISO bei Immuta, erklärt: "Policy as Code ist eine leistungsstarke Funktion, um kritische Richtlinien für hochsensible Daten konsistent zu managen und bietet ein selbstdokumentierendes, automatisiertes System für Sicherheits-, Governance- und DevOps-Teams. PaC kann mit CI/CD-Pipelines implementiert werden und stellt validierte Richtlinien automatisch in Produktionsumgebungen bereit."

DevSecOps-Organisationen mit vielen aktiven Pipelines, integrierten Services und Plugins können zudem wiederverwendbare Pipelines realisieren, wenn die zugrundeliegenden Geschäftsregeln mit PaC-Plattformen und -Services entwickelt werden.

6. Business Impact verstehen

Letztlich besteht der Sinn und Zweck eines jeden technologischen Systems darin, dem Unternehmen zu dienen - meint zumindest Srikumar Ramanathan, Chief Solutions Officer bei Mphasis: "Oft lassen wir uns als Tech-Experten dazu hinreißen, die neueste und ausgefallenste Technologie zu implementieren, nur um ihrer selbst willen. 'Shift Left' heißt, die Dinge aus Unternehmenssicht zu betrachten. Das ist besonders wichtig, wenn es um Qualitätssicherung, Security, Observability und Automatisierung geht."

Eine Best Practice besteht darin, Nutzen- und Wertvorschläge derjenigen aufzunehmen, die von den betrieblichen und sicherheitstechnischen DevSecOps-Verbesserungen profitieren. Anschließend können DevSecOps-Teams entscheiden, welche Fähigkeiten im Fokus stehen sollten und welche Performance-Metriken echten Geschäftswert widerspiegeln. (fm)