12 Wege, DevSecOps zu optimieren

23.05.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.

 

7. Code validieren

Code-Generatoren auf GenAI-Basis machen es wichtiger denn je, Code Reviews zu fahren, um Vulnerabilities zu identifizieren - und Probleme aufzutun, die möglicherweise die technischen Schulden von morgen darstellen. Weitere Probleme mit der Codequalität können etwa in den Bereichen Dokumentation, Fehlerbedingungen, Protokollierung und Namenskonventionen auftreten.

"Um die QA-Bemühungen zu unterstützen, sollten Entwickler statische Codeanalysen in ihre Arbeitsabläufe integrieren", empfiehlt Sonar-Entwicklungschef McKee und begründet das mit einer entsprechenden Erklärung: "Eine automatisierte statische Analyse untersucht die interne Struktur einer Applikation und ergänzt Unit-Tests, indem sie zusätzliche Probleme aufdeckt. Durch die Kombination beider Verfahren können Entwickler die Codequalität während des gesamten Entwicklungszyklus proaktiv managen, Fehler schnell erkennen und beheben sowie die Zuverlässigkeit und Sicherheit der Software insgesamt optimieren."

Tipp: Technische Schulden zu minimieren, ist für Unternehmen ein wichtiges Thema. Entsprechend sollten Tools, die Sicherheits- und Qualitätsprobleme identifizieren, sowie deren Integration in die CI/CD-Pipeline eine nicht verhandelbare Anforderung darstellen.

8. Nicht-funktionale Betriebsanforderungen festlegen

Mit Blick auf Performanz, Zuverlässigkeit und Sicherheit gilt es, Anforderungen zu ermitteln, die dazu geeignet sind, akzeptable Betriebsbedingungen zu definieren. Entwicklungsteams formulieren diese oft als nichtfunktionale Anforderungen, die in agilen User Stories als Akzeptanzkriterien ausgedrückt werden können. Nicht-funktionale Anforderungen können sich auch darauf auswirken, welche Infrastrukturkomponenten verwendet und wie diese gemanagt werden.

"Nichtfunktionale, betriebliche Anforderungen sind ebenso wichtig wie funktionale Anforderungen", unterstreicht David Coffey, VP of Product Management bei IBM. Er fügt hinzu: "In einem Tech-Stack für einen Cloud-Service kommt es auf jede Einzelheit an. Fallen Details wie DNS-Service oder Netzwerkkonnektivität dabei unter den Tisch, kann sich das negativ auf die Verfügbarkeit und den Scope eines Cloud-Service auswirken."

Tipp: Architekten, Betriebs- und Sicherheitsexperten sollten Standards für nichtfunktionale Anforderungen und Akzeptanzkriterien entwerfen, auf die sich agile Entwicklungsteams in ihren User Stories beziehen können.

9. SLOs und Alerts kanalisieren

Eine veraltete Methode, um die Erwartungen an die Anwendungsleistung zu definieren, besteht darin, Service Level Agreements (SLAs) rund um eine Betriebskennzahl zu formulieren - beispielsweise eine Uptime von 99,9 Prozent. Ein moderner Ansatz: SLOs und Fehlerbudgets zu definieren, die regeln, wann DevSecOps-Teams operative Optimierungen priorisieren sollten.

Um das in der Praxis umzusetzen, müssen jedoch bestimmte Voraussetzungen erfüllt sein, wie Asaf Yigal, Mitbegründer und VP of Product bei Logz.io, erklärt: "Wenn Leistungsverbesserungen vorangetrieben werden und die Engineers dabei keine Ahnung haben, welche SLOs wichtig sind, untergräbt das Observability-Plattformen."

Tipp: Produktmanager sollten daran beteiligt werden, SLOs zu definieren und Kundensegmente, Journey-Typen und kritische Zeiträume dazu nutzen, aufzuzeigen, wann Ausfälle und Leistungsdefizite stärkere Auswirkungen auf das Geschäft haben.

10. Observability implementieren

Um Datenquellen zu integrieren und Daten innerhalb der Anwendungsumgebung zu bewegen, nutzen die meisten Applikationen heutzutage Daten-Pipelines. Allerdings können Workflows kompromittiert werden - was die Gefahr falscher Entscheidungen aufwirft, wenn es zu Verzögerungen oder Problemen bei der Datenqualität kommt.

Ashwin Rajeeva, Mitbegründer und CTO von Acceldata, weiß, was dagegen hilft: "Data-Reliability-Checks nach links zu verlagern, ermöglicht es, die Datenqualität und -integrität frühzeitig an der Quelle zu validieren und verhindert so kostenintensive Folgen. Continuous Monitoring und Incident Management erleichtern es, proaktiv auf potenzielle Datenvorfälle zu reagieren, ermöglichen einen ununterbrochenen Datenfluss und gewährleisten die kontinuierliche Zuverlässigkeit der Daten in der gesamten Data Supply Chain."

Tipp: Implementieren Sie Monitoring und automatisierte Checks in der gesamten Datenlieferkette, um Pipeline- und Datenqualitätsproblematiken möglichst früh auf die Schliche zu kommen.

11. Admin-Funktionen sperren

SaaS-Unternehmen schränken den administrativen Zugriff auf ihre Anwendungen und Umgebungen ein, um zu verhindern, dass Kundendaten kompromittiert werden oder die Verfügbarkeit beeinträchtigt wird.

Igor Jablokov, Gründer und CEO von Pryon, empfiehlt, sich daran ein Beispiel zu nehmen: "Verteilen Sie kritische Funktionen auf mindestens vier Schultern, um zu verhindern, dass ein Administrator teure Fehler machen kann, die Betriebszeit und Verfügbarkeit einschränken." Der Manager empfiehlt darüber hinaus weitere, grundlegende Maßnahmen, wie ein mehrstufige Authentifizierung zu implementieren und unnötige externe Zugriffsmöglichkeiten zu sperren.

Tipp: IT-Sicherheitsspezialisten sollten sich über die neuesten Schwachstellen informiert halten - zum Beispiel über die bekannten OWASP-Rankings. Diese und andere Quellen lassen sich dazu nutzen, Security-Checklisten, Schulungen und Support für DevSecOps-Teams bereitzustellen.

12. Hot-Standby-Umgebungen konfigurieren

Unternehmen, die Anwendungen bereitstellen, profitieren von einer robusten Cloud-Infrastruktur. Eine solche zeichnet sich beispielsweise aus durch:

  • Infrastructure as Code,

  • automatisiert skalierende Umgebungen,

  • Multizone-Deployments und

  • automatisiertes Failover-Management.

"Lassen Sie Ihre Anwendung im Hot-Standby-Modus auch bei einem weiteren Cloud-Anbieter laufen. Denn egal, wie viel Redundanz und Failover die Hyperscaler bieten können, sie sind nicht immun gegen Fehler", unterstreicht Pryon-CEO Jablokov.

Tipp: DevSecOps-Teams, die Standardarchitekturen, -plattformen und -konfigurationen entwickeln, können Hochverfügbarkeitspraktiken leichter in ihre Infrastrukturmuster integrieren. (fm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.