Software-Qualität und Sicherheit erhöhen Qualitätssicherung in der DevOps-Strategie

Autor / Redakteur: Christian Rentrop / Stephan Augsten

Im Zuge von DevOps-Initiativen kann die agile Zusammenarbeit verschiedener Bereiche und Teams die Software-Entwicklung bereichern und deutlich beschleunigen. Dabei sollte jedoch die Qualität und Sicherheit im Auge behalten werden.

Firma zum Thema

Qualität und Sicherheit spielen in DevOps-Prozessen eine zunehmend wichtige Rolle.
Qualität und Sicherheit spielen in DevOps-Prozessen eine zunehmend wichtige Rolle.
(© BillionPhotos.com - stock.adobe.com)

Das Thema DevOps ist nicht ein wichtiges Schlagwort in der Software-Entwicklung. Eigentlich soll die Philosophie die agile Zusammenarbeit zwischen den Bereichen Development und Operations stärken und so den Prozess der Softwareentwicklung beflügeln. Allerdings stellt der DevOps-Ansatz viele Unternehmen auch vor ein großes Problem: Die Qualität der Software ist möglicherweise nicht immer gewährleistet.

Wenn an einem Ende der Kette der Vertrieb makelt und am anderen Ende die Entwickler versuchen, viele neue Funktionen einzubinden, leidet nicht selten der Bereich Operations, der den IT-Betrieb sicherstellen muss. Vor allem die (Betriebs-)Sicherheit eines Produkts kommt hier manchmal zu kurz, obwohl die DevOps-Philosophie eigentlich die Qualität steigern soll.

Die entscheidende Frage lautet, wie sich die Qualitätssicherung direkt in den Entwicklungsprozess einbinden lässt. Softwareentwicklung wäre nicht Softwareentwicklung, wenn nicht auch hierfür nicht bereits ein Schlagwort erfunden wäre: DevSecOps – oder je nach Hersteller und Verortung der Sicherheit auch SecDevOps und DevOpsSec – ist eine Methode, um die Qualitätssicherung tief in den Prozessen der Softwareentwicklung zu integrieren. Dadurch sollen schwere Bugs und Sicherheitsprobleme von Vornherein vermieden werden.

DevSevOps: Sicherheit on the fly

Der DevSecOps-Ansatz besteht deshalb aus zwei Säulen: einerseits muss die Sicherheit in Form von Code (Security as Code, SaC) integriert werden: Dabei wird die Software nicht als Ganzes gesehen, sondern als eine Reihe von Code-Schnipseln, die bei Bedarf neu angelegt oder verändert werden. Statt das komplette Produkt auf Lücken und Bugs zu testen, wird jeder Entwickler und jedes Team angehalten, den jeweils neu erstellten Code auf solche Probleme zu prüfen. In größeren Teams automatisieren Analysetools diese Aufgabe.

Die zweite Säule betrifft die Infrastruktur: Infrastructure as Code (IaC) beschreibt letztlich, dass die Umgebung, in der die Software läuft, selbst Software sein sollte. Virtuelle Maschinen oder Docker-Container sind ein solcher Ansatz. Sie erlauben die schnelle und kostengünstige Skalierung, können leichter gesichert werden und lassen sich bei Bedarf schnell duplizieren, neu aufsetzen oder austauschen. Tritt ein Fehler auf, liegt im besten Fall bereits eine zweite Version in einer Datei vor. Diese muss nur auf der ohnehin vorhandenen Server-Struktur oder Cloud hochgefahren werden. Zudem kann an einer Instanz entwickelt werden, während die andere schon läuft.

Zwei Säulen, ein Ziel

Zusammen sorgen beide Säulen der DevSecOps-Idee dafür, dass die agilen Prozesse beibehalten werden können, dabei aber im laufenden Prozess für Sicherheit gesorgt wird. Ist die Infrastruktur ordentlich etabliert, kann einfach eine zweite Instanz des Produkts geschaltet werden, die von den Entwicklern geändert wird.

Gleichzeitig liegt der jeweils aktuelle Betriebsstand, vielleicht mit einigen älteren Versionen, als Datei bereit. Solche Server-Instanzen können bei Bedarf schnell umgeschaltet oder verändert werden. Derweil sorgen die Entwickler-Teams durch den Check der Codezeilen dafür, dass bei der Codeerstellung möglichst wenige Sicherheitsprobleme auftreten.

Die Unternehmenskultur ist wichtig

Um diese möglichst agilen und gleichzeitig soliden Prozesse zu integrieren, ist ein wenig Arbeit vonnöten. Diese betrifft unter anderem die Organisation von Teams und die allgemeine Kultur bei der Code-Erstellung. Nur in einem Ambiente, das offen für DevSecOps ist, lässt sich ein entsprechendes System tief in den Arbeitsprozessen integrieren. Unternehmen sollten deshalb:

  • Eine Kultur der Offenheit und des Lernens etablieren, in der auch unkonventionelle Lösungen akzeptiert werden. Dazu zählt auch die Offenheit für Kritik, etwa wenn ein Mitarbeiter auf Bugs und Sicherheitsmängel hinweist, obwohl Budget und Zeitrahmen nicht mehr für die Fehlersuche ausreichen.
  • Dynamische Feedback-Schleifen sicherstellen, um Informationen schnellstmöglich übermitteln zu können. Auch hier ist wichtig, dass alle Teile eines DevOps-Prozesses positiv auch auf unerwünschte Informationen reagiert.
  • Security-Evangelisten nicht ausbremsen, die sich die Sicherheit einer Software auf die Fahnen geschrieben haben. Stattdessen sollte gerade deren Einschätzung relevant sein, um eine gute Qualität sicherzustellen.
  • Autonomie fördern, um Teams die Möglichkeit zu geben, Sicherheitsprobleme und andere Fehler im laufenden Prozess selbstständig und ohne lange Review-Prozesse zu beheben.

SecDevOps in Prozessen etablieren

Ebenso gilt es, die Prozesse innerhalb von Teams und Unternehmen mit Blick auf DevSecOps zu optimieren. Dadurch kommt es zu einem grundsätzlichen Bewusstsein für die Wichtigkeit qualitativ hochwertigen Codes. Das lässt sich mit folgenden Maßnahmen sicherstellen:

  • Regelmäßige Sicherheitsprüfungen durchführen sorgt dafür, dass Code gezielt und regelmäßig auf Probleme überprüft wird. Dadurch kann eine Korrektur an einem möglichst frühen Zeitpunkt erfolgen.
  • Fortschritte und Performance nachhalten muss jeder Teamleiter, doch es ist sinnvoll, etwa durch genaue Zielvorgaben, im Auge zu behalten, wo es gut läuft und wo es hakt. Auf diese Weise kann sichergestellt werden, dass auftretende Probleme schnellstmöglich erkannt werden.
  • Feste Vorgehensweisen festzulegen, um im Fall der Fälle schnell einschreiten zu können. Wird ein Fehler im laufenden Prozess entdeckt, muss es eine für alle Teammitglieder nutzbare und nachvollziehbare „Notbremse“ geben.
  • Feedback-Schleifen fest einbauen kann helfen, fokussiert zu bleiben und Fehler schnellstmöglich zu beheben.

DevSecOps: Hilfsmittel einsetzen

Zusätzliche technische Maßnahmen und Tools sind ebenfalls wichtig, um die Qualitätssicherung fest im laufenden Prozess zu etablieren. So kann an vielen Stellen eine Automatisierung per Skript oder mittels Analysetool erfolgen, um Mitarbeiter zu entlasten und die Teamleitung nicht permanent mit Nebenbaustellen zu belästigen.

Sinnvoll ist zudem, ein Fehlermeldesystem einzuführen, mit dessen Hilfe Mitarbeiter Fehler nicht nur melden, sondern auch priorisieren können. Zudem sollte natürlich die Infrastruktur, auf der das Projekt als IaS läuft, möglichst stabil und verlässlich sein, um einerseits Sicherheitsprobleme zu vermeiden und andererseits Wechselwirkungen aus dem Weg zu gehen.

(ID:47329563)

Über den Autor

 Christian Rentrop

Christian Rentrop

IT-Fachautor