Warum DevOps-Implementierungen oft erfolglos sind (und wie Sie das ändern können)

Veröffentlicht Jan 01, 2020
von Pieter Danhieux
FALLSTUDIE

Warum DevOps-Implementierungen oft erfolglos sind (und wie Sie das ändern können)

Veröffentlicht Jan 01, 2020
von Pieter Danhieux
Ressource anzeigen
Ressource anzeigen

Dieser Artikel wurde ursprünglich veröffentlicht auf DevOps.de. Er wurde aktualisiert und geändert.

Ähnlich wie "Blockchain", "Big Data" und "Digital Disruption" ist der Begriff "DevOps" ein weiteres Buzzword, das derzeit in den IT-Abteilungen großer Unternehmen herumgereicht wird.

Viele haben (richtigerweise) den Bedarf an schnelleren Softwareentwicklungs-Lebenszyklen erkannt; ein präziserer Prozess, der eng mit den Geschäftszielen abgestimmt ist und einen klareren Arbeitsablauf und eine bessere Zusammenarbeit zwischen den Entwicklungs- und Betriebsteams ermöglicht. DevOps ist im Wesentlichen eine "agile" Entwicklung, die erwachsen geworden und bereit ist, sich den ständig innovativen und schnell bereitstellenden Anforderungen des modernen Unternehmens zu stellen. Für Sicherheitsexperten ist es eine fantastische Initiative: Wir können die Sicherheit viel früher in den Prozess einbringen, die Kosten für die Behebung von Fehlern reduzieren und potenzielle Katastrophen im Nachhinein vermeiden.

Das Problem ist, dass nur wenige Unternehmen bei ihrer DevOps-Implementierung wirklich erfolgreich sind. Ohne die richtige Unterstützung, Pflege und das Verständnis im gesamten Unternehmen kann es schnell zu einem weißen Elefanten werden... Sie wissen schon, eines dieser "Erwähnen Sie den Krieg nicht"-Projekte.

Wo liegt also das Problem? Es ist eine interessante Diskussion, und es gibt ein paar Möglichkeiten, DevOps anzugehen, die meiner Meinung nach für einen viel reibungsloseren Ablauf sorgen werden. Ein effektives Programm geht über ein paar ausgefallene neue Tools, Titel und Team-Meetings hinaus. Es wird nicht immer einfach sein, aber wenn man sich die Zeit nimmt, eine kaputte Strategie zu korrigieren (oder sie von Anfang an richtig zu implementieren), wird es auf lange Sicht viel weniger schmerzhaft sein. Und letztendlich wird es zu einer höheren Qualität und Sicherheit der Software führen.

Lassen Sie uns das aufschlüsseln:

Lassen Sie die "Agile"-Schürzenbänder los.

Es gibt ein gewisses Missverständnis, dass eine Organisation sich zwischen Agile oder DevOps entscheiden muss und den einen oder anderen Weg einschlägt, um nie wieder zurückzublicken.

Die Sache ist die, dass der Entwicklungsprozess am besten funktioniert, wenn beides als Einheit betrachtet und umgesetzt wird. DevOps ist keine Neuerfindung der agilen Entwicklung, sondern eine Erweiterung derselben. Die Räder neigen dazu, abzufallen, wenn die Erwartung besteht, dass der Prozess genau wie Agile oder völlig anders als Agile sein wird.

Agile unterstützt das Prinzip der funktionsübergreifenden Teams, indem es Designer, Tester und Entwickler von Anfang an zusammenbringt und sich für offene Kommunikationslinien während eines Projekts einsetzt. Ziel ist es, die siloartige Bereitstellung zu beenden und die doppelte Bearbeitung zu reduzieren - beides sind ebenfalls Vorteile des DevOps-Prozesses. DevOps geht jedoch noch einen Schritt weiter und bezieht Systeme, Sicherheit und Betrieb mit ein, um ein robustes, durchgängiges Skillset zu bieten, das das ultimative Ziel der vollständigen, funktionalen Softwareauslieferung an den Kunden verfolgt.

Während der unvermeidlichen Schmerzpunkte bei der Umstellung auf einen stärker DevOps-zentrierten Prozess kann das Risiko einer siloartigen Entwicklung wieder auftauchen. Oft arbeitet das ursprüngliche Agile-Team zusammen, während die Sicherheits- und Betriebsergänzungen noch ihren Weg in die Maschine finden; niemand ist sich ganz sicher, wie man sie einbezieht, was sie tun sollen und welche Ziele sie insgesamt verfolgen.

DevOps funktioniert nicht ohne klar definierte Ziele, funktionsübergreifendes Onboarding und direkte Kommunikation mit allen Beteiligten. Sicherlich wird es eine Anpassungsphase geben, die ein sorgfältiges Änderungsmanagement erfordert, aber alle auf die gleiche Seite mit den Verbesserungen zu bringen, die DevOps-Funktionen mit sich bringen, ist schon die halbe Miete.

Zunehmend (Gott sei Dank) legt DevOps auch Wert auf bewährte Sicherheitspraktiken als Teil des Prozesses, entmystifiziert diesen Schritt und überbrückt die Kluft zwischen dem Sicherheitsteam und, nun ja, allen anderen. Wie ich bereits gesagt habe, haben wir noch einen langen Weg vor uns, um Entwickler zu befähigen, von Anfang an sicher zu programmieren, aber die erfolgreiche Implementierung von DevOps-Methoden ist eine hervorragende Grundlage, auf der Sicherheitskompetenzen innerhalb des Entwicklungsteams aufgebaut werden können.

Automatisierung ist nicht alles (und auch nicht das Sicherste).

Ein weiteres Merkmal der DevOps-Methodik ist, bis zu einem gewissen Grad, die Automatisierung des Softwareentwicklungsprozesses. Die Prinzipien der kontinuierlichen Integration und der kontinuierlichen Bereitstellung (CI/CD) sind die Eckpfeiler dieses Konzepts und, wie Sie wahrscheinlich erraten können, sehr abhängig von Tools.

Tools sind großartig, das sind sie wirklich. Sie können den Softwareentwicklungsprozess in beispielloser Geschwindigkeit vorantreiben, indem sie das Code-Repository, die Tests, die Wartung und die Speicherelemente relativ nahtlos verwalten.

Doch auch wenn Roboter eines Tages alle unsere Jobs übernehmen und uns gefangen halten könnten, sind sie definitiv noch nicht so weit. Die starke Abhängigkeit von Tools und Automatisierung lässt ein Fenster weit offen für Fehler. Scans und Tests erkennen möglicherweise nicht alles, Code kann ungeprüft bleiben, was im Nachhinein zu enormen Qualitäts- (ganz zu schweigen von Sicherheits-) Problemen führt. Ein Angreifer braucht nur eine Hintertür auszunutzen, um Daten zu stehlen, und der Verzicht auf das menschliche Element bei der Qualitäts- und Sicherheitskontrolle kann katastrophale Folgen haben.

Der "goldene Mittelweg" besteht darin, ein Gleichgewicht zwischen Menschen und Werkzeugen zu schaffen. Tools sollten als Assistenten für ein Team dienen, dem Sie vertrauen, die Projektziele zu erreichen. Das sollten Sie:

  • Planen Sie genügend Zeit ein, damit sich die Mitarbeiter mit der gewählten DevOps-Toolchain vertraut machen können
  • Fokus auf effektive Zusammenarbeit (und wie die Tools dies unterstützen können)
  • Adressieren Sie alle Lücken im Prozess, unabhängig davon, ob es sich um Fähigkeiten/Wissen oder um Werkzeuge handelt.

Kurz gesagt, rüsten Sie nicht einfach "auf" und hoffen Sie auf das Beste.

DevOps ist kein Modewort, sondern eine Kultur. Wachsen Sie Ihre?

Change Management ist in den besten Zeiten schwierig. Die Angst vor dem Unbekannten kann selbst die brillantesten Teammitglieder davon abhalten, ihre Fähigkeiten auszubauen und ihren Horizont zu erweitern.

Sehen Sie, einfach nur zu sagen "lasst uns DevOps machen" und das Betriebsteam dazu zu bringen, den Schreibtisch zu wechseln, wird nicht auf magische Weise einen erfolgreichen Prozess implementieren. Viele werden verwirrt sein, und langjährige Teammitglieder werden verärgert zurückbleiben. Die Kommunikation der Erwartungen ist von entscheidender Bedeutung, ebenso wie das "Gehen des Weges". DevOps stellt eine kulturelle Bewegung dar, genauso wie eine Entwicklungsmethodik, und ein Team sollte eine funktionsübergreifende, kollaborative Denkweise leben und atmen.

Wie sieht eine großartige DevOps-Kultur aus?

  • Einzelpersonen sind befähigt, ihr Fachwissen in einen Prozess einzubringen, nicht nur Führungskräfte
  • Offene, ehrliche und respektvolle Kommunikation zwischen Teams
  • Jede Person übernimmt die Verantwortung für das Gesamtziel, Qualität und Sicherheit in den Entwicklungsprozess einzubauen
  • Jeder ist auf derselben Seite mit der Definition von DevOps im Unternehmen, der Roadmap und dem Wie/Was/Warum der Rolle jeder Person.

Seit Jahren betone ich, wie wichtig der Aufbau einer positiven Sicherheitskultur in Entwicklungsteams ist, und das ist bei DevOps nicht anders.

Die richtigen Tools, das richtige Wissen und der richtige Support sind unerlässlich, um Best Practices für die Sicherheit zu erreichen, einen Rückgang der entdeckten Schwachstellen zu sehen und dem Team die Augen zu öffnen, wie wichtig der Schutz unserer Daten ist. Mit DevOps müssen Sie die kulturelle Grundlage für positive Veränderungen schaffen: Stellen Sie sicher, dass jeder seine Rolle, seinen Wert und seine Erwartungen, die allgemeinen Projektziele und die Schritte im Prozess versteht.

Haben Sie das gemeistert? Prima. Dann lassen Sie uns jetzt die Nadel verschieben, den Sicherheitsaspekt erhöhen und DevSecOps zum ultimativen Plan für Software-Exzellenz machen.

Ressource anzeigen
Ressource anzeigen

Autor

Pieter Danhieux

Pieter Danhieux ist ein weltweit anerkannter Sicherheitsexperte mit mehr als 12 Jahren Erfahrung als Sicherheitsberater und 8 Jahren als Principal Instructor für SANS, wo er offensive Techniken lehrt, wie man Organisationen, Systeme und Einzelpersonen auf Sicherheitsschwächen hin untersucht und bewertet. Im Jahr 2016 wurde er als einer der "Coolest Tech People in Australia" (Business Insider) ausgezeichnet, erhielt die Auszeichnung "Cyber Security Professional of the Year" (AISA - Australian Information Security Association) und besitzt die Zertifizierungen GSE, CISSP, GCIH, GCFA, GSEC, GPEN, GWAPT, GCIA.

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Warum DevOps-Implementierungen oft erfolglos sind (und wie Sie das ändern können)

Veröffentlicht Jan 01, 2020
Von Pieter Danhieux

Dieser Artikel wurde ursprünglich veröffentlicht auf DevOps.de. Er wurde aktualisiert und geändert.

Ähnlich wie "Blockchain", "Big Data" und "Digital Disruption" ist der Begriff "DevOps" ein weiteres Buzzword, das derzeit in den IT-Abteilungen großer Unternehmen herumgereicht wird.

Viele haben (richtigerweise) den Bedarf an schnelleren Softwareentwicklungs-Lebenszyklen erkannt; ein präziserer Prozess, der eng mit den Geschäftszielen abgestimmt ist und einen klareren Arbeitsablauf und eine bessere Zusammenarbeit zwischen den Entwicklungs- und Betriebsteams ermöglicht. DevOps ist im Wesentlichen eine "agile" Entwicklung, die erwachsen geworden und bereit ist, sich den ständig innovativen und schnell bereitstellenden Anforderungen des modernen Unternehmens zu stellen. Für Sicherheitsexperten ist es eine fantastische Initiative: Wir können die Sicherheit viel früher in den Prozess einbringen, die Kosten für die Behebung von Fehlern reduzieren und potenzielle Katastrophen im Nachhinein vermeiden.

Das Problem ist, dass nur wenige Unternehmen bei ihrer DevOps-Implementierung wirklich erfolgreich sind. Ohne die richtige Unterstützung, Pflege und das Verständnis im gesamten Unternehmen kann es schnell zu einem weißen Elefanten werden... Sie wissen schon, eines dieser "Erwähnen Sie den Krieg nicht"-Projekte.

Wo liegt also das Problem? Es ist eine interessante Diskussion, und es gibt ein paar Möglichkeiten, DevOps anzugehen, die meiner Meinung nach für einen viel reibungsloseren Ablauf sorgen werden. Ein effektives Programm geht über ein paar ausgefallene neue Tools, Titel und Team-Meetings hinaus. Es wird nicht immer einfach sein, aber wenn man sich die Zeit nimmt, eine kaputte Strategie zu korrigieren (oder sie von Anfang an richtig zu implementieren), wird es auf lange Sicht viel weniger schmerzhaft sein. Und letztendlich wird es zu einer höheren Qualität und Sicherheit der Software führen.

Lassen Sie uns das aufschlüsseln:

Lassen Sie die "Agile"-Schürzenbänder los.

Es gibt ein gewisses Missverständnis, dass eine Organisation sich zwischen Agile oder DevOps entscheiden muss und den einen oder anderen Weg einschlägt, um nie wieder zurückzublicken.

Die Sache ist die, dass der Entwicklungsprozess am besten funktioniert, wenn beides als Einheit betrachtet und umgesetzt wird. DevOps ist keine Neuerfindung der agilen Entwicklung, sondern eine Erweiterung derselben. Die Räder neigen dazu, abzufallen, wenn die Erwartung besteht, dass der Prozess genau wie Agile oder völlig anders als Agile sein wird.

Agile unterstützt das Prinzip der funktionsübergreifenden Teams, indem es Designer, Tester und Entwickler von Anfang an zusammenbringt und sich für offene Kommunikationslinien während eines Projekts einsetzt. Ziel ist es, die siloartige Bereitstellung zu beenden und die doppelte Bearbeitung zu reduzieren - beides sind ebenfalls Vorteile des DevOps-Prozesses. DevOps geht jedoch noch einen Schritt weiter und bezieht Systeme, Sicherheit und Betrieb mit ein, um ein robustes, durchgängiges Skillset zu bieten, das das ultimative Ziel der vollständigen, funktionalen Softwareauslieferung an den Kunden verfolgt.

Während der unvermeidlichen Schmerzpunkte bei der Umstellung auf einen stärker DevOps-zentrierten Prozess kann das Risiko einer siloartigen Entwicklung wieder auftauchen. Oft arbeitet das ursprüngliche Agile-Team zusammen, während die Sicherheits- und Betriebsergänzungen noch ihren Weg in die Maschine finden; niemand ist sich ganz sicher, wie man sie einbezieht, was sie tun sollen und welche Ziele sie insgesamt verfolgen.

DevOps funktioniert nicht ohne klar definierte Ziele, funktionsübergreifendes Onboarding und direkte Kommunikation mit allen Beteiligten. Sicherlich wird es eine Anpassungsphase geben, die ein sorgfältiges Änderungsmanagement erfordert, aber alle auf die gleiche Seite mit den Verbesserungen zu bringen, die DevOps-Funktionen mit sich bringen, ist schon die halbe Miete.

Zunehmend (Gott sei Dank) legt DevOps auch Wert auf bewährte Sicherheitspraktiken als Teil des Prozesses, entmystifiziert diesen Schritt und überbrückt die Kluft zwischen dem Sicherheitsteam und, nun ja, allen anderen. Wie ich bereits gesagt habe, haben wir noch einen langen Weg vor uns, um Entwickler zu befähigen, von Anfang an sicher zu programmieren, aber die erfolgreiche Implementierung von DevOps-Methoden ist eine hervorragende Grundlage, auf der Sicherheitskompetenzen innerhalb des Entwicklungsteams aufgebaut werden können.

Automatisierung ist nicht alles (und auch nicht das Sicherste).

Ein weiteres Merkmal der DevOps-Methodik ist, bis zu einem gewissen Grad, die Automatisierung des Softwareentwicklungsprozesses. Die Prinzipien der kontinuierlichen Integration und der kontinuierlichen Bereitstellung (CI/CD) sind die Eckpfeiler dieses Konzepts und, wie Sie wahrscheinlich erraten können, sehr abhängig von Tools.

Tools sind großartig, das sind sie wirklich. Sie können den Softwareentwicklungsprozess in beispielloser Geschwindigkeit vorantreiben, indem sie das Code-Repository, die Tests, die Wartung und die Speicherelemente relativ nahtlos verwalten.

Doch auch wenn Roboter eines Tages alle unsere Jobs übernehmen und uns gefangen halten könnten, sind sie definitiv noch nicht so weit. Die starke Abhängigkeit von Tools und Automatisierung lässt ein Fenster weit offen für Fehler. Scans und Tests erkennen möglicherweise nicht alles, Code kann ungeprüft bleiben, was im Nachhinein zu enormen Qualitäts- (ganz zu schweigen von Sicherheits-) Problemen führt. Ein Angreifer braucht nur eine Hintertür auszunutzen, um Daten zu stehlen, und der Verzicht auf das menschliche Element bei der Qualitäts- und Sicherheitskontrolle kann katastrophale Folgen haben.

Der "goldene Mittelweg" besteht darin, ein Gleichgewicht zwischen Menschen und Werkzeugen zu schaffen. Tools sollten als Assistenten für ein Team dienen, dem Sie vertrauen, die Projektziele zu erreichen. Das sollten Sie:

  • Planen Sie genügend Zeit ein, damit sich die Mitarbeiter mit der gewählten DevOps-Toolchain vertraut machen können
  • Fokus auf effektive Zusammenarbeit (und wie die Tools dies unterstützen können)
  • Adressieren Sie alle Lücken im Prozess, unabhängig davon, ob es sich um Fähigkeiten/Wissen oder um Werkzeuge handelt.

Kurz gesagt, rüsten Sie nicht einfach "auf" und hoffen Sie auf das Beste.

DevOps ist kein Modewort, sondern eine Kultur. Wachsen Sie Ihre?

Change Management ist in den besten Zeiten schwierig. Die Angst vor dem Unbekannten kann selbst die brillantesten Teammitglieder davon abhalten, ihre Fähigkeiten auszubauen und ihren Horizont zu erweitern.

Sehen Sie, einfach nur zu sagen "lasst uns DevOps machen" und das Betriebsteam dazu zu bringen, den Schreibtisch zu wechseln, wird nicht auf magische Weise einen erfolgreichen Prozess implementieren. Viele werden verwirrt sein, und langjährige Teammitglieder werden verärgert zurückbleiben. Die Kommunikation der Erwartungen ist von entscheidender Bedeutung, ebenso wie das "Gehen des Weges". DevOps stellt eine kulturelle Bewegung dar, genauso wie eine Entwicklungsmethodik, und ein Team sollte eine funktionsübergreifende, kollaborative Denkweise leben und atmen.

Wie sieht eine großartige DevOps-Kultur aus?

  • Einzelpersonen sind befähigt, ihr Fachwissen in einen Prozess einzubringen, nicht nur Führungskräfte
  • Offene, ehrliche und respektvolle Kommunikation zwischen Teams
  • Jede Person übernimmt die Verantwortung für das Gesamtziel, Qualität und Sicherheit in den Entwicklungsprozess einzubauen
  • Jeder ist auf derselben Seite mit der Definition von DevOps im Unternehmen, der Roadmap und dem Wie/Was/Warum der Rolle jeder Person.

Seit Jahren betone ich, wie wichtig der Aufbau einer positiven Sicherheitskultur in Entwicklungsteams ist, und das ist bei DevOps nicht anders.

Die richtigen Tools, das richtige Wissen und der richtige Support sind unerlässlich, um Best Practices für die Sicherheit zu erreichen, einen Rückgang der entdeckten Schwachstellen zu sehen und dem Team die Augen zu öffnen, wie wichtig der Schutz unserer Daten ist. Mit DevOps müssen Sie die kulturelle Grundlage für positive Veränderungen schaffen: Stellen Sie sicher, dass jeder seine Rolle, seinen Wert und seine Erwartungen, die allgemeinen Projektziele und die Schritte im Prozess versteht.

Haben Sie das gemeistert? Prima. Dann lassen Sie uns jetzt die Nadel verschieben, den Sicherheitsaspekt erhöhen und DevSecOps zum ultimativen Plan für Software-Exzellenz machen.

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.