Immer mehr Unternehmen strukturieren ihre klassischen Entwicklungs-Teams um und setzen Kurs auf DevOps. Um die Umstellung zu meistern, involvieren sie oft externe Berater in den hochkomplexen Workflow. Es gibt fünf Voraussetzungen, um die damit verbundenen Herausforderungen zu meistern.
Unternehmen streben danach, die interdisziplinäre Zusammenarbeit zu fördern und Wissenssilos aufzubrechen. DevOps liefert dafür die passenden Methoden. Sie fest in den Entwicklungs-Teams zu verankern, ist allerdings schon unternehmensintern nicht trivial. Umso schwerer wird es, wenn externe Stakeholder an Bord kommen. Die DevOps-Transformation ist dennoch möglich, betont IT-Dienstleister Consol, sofern Unternehmen die folgenden fünf Kernaspekte in Entwicklungs-Teams etablieren:
- Motivation und Ziele klar kommunizieren
In traditionell agierenden Unternehmen ergibt sich für den Einzelnen selten ein logisches Gesamtbild der Projekte. Folglich kommt es zu Reibungen zwischen den Teams, Abstimmungsproblemen und unnötigen Entwicklungsiterationen. Sämtliche Stakeholder – intern wie extern – sollten daher ihre Motivation sowie ihre Ziele klar kommunizieren. Zu diesem ersten Schritt gehört auch, dass sie die anderen Teammitglieder ermutigen, es ihnen gleichzutun. Diese Offenheit führt dazu, dass alle Beteiligten bestimmte Entscheidungen bereits unbewusst antizipieren, und wirkt auf diese Weise etwaigen Problemen präventiv entgegen. Da es im Projektverlauf immer zu Unklarheiten kommen kann, ist die regelmäßige Frage nach dem »Warum« in DevOps-Teams kein Tabu, sondern ein Muss.
- Offene Kultur schaffen
Ohne offene Kommunikation scheitern DevOps-Projekte in der Regel. Sie bedarf einer offenen Kultur, in der alle ehrlich zueinander sind und niemand Angst haben muss, seine Meinung zu sagen oder Fragen zu stellen. Die Fehlerkultur basiert auch auf dieser allgemeinen Offenheit, gepaart mit einem konstruktiven Mindset: Nachbetrachtungen von Fehlern etwa dürfen niemals persönlich oder zum »Blame Game« werden. Sachliche Retrospektiven fördern den Zusammenhalt im Team und erweitern den Lerneffekt für alle.
- Gemeinsame Werte definieren
Sind die Ziele der Stakeholder innerhalb des Teams bekannt und eine offene Kultur geschaffen, müssen DevOps-Teams gemeinsame Werte und Ziele definieren. Auf die Anforderungen, Software mit einer hohen Verfügbarkeit und Resilienz zu schaffen, die System-Stabilität zu gewährleisten, Fehler zügig zu beheben und reibungslose Deployments durchzuführen, können sich in der Regel alle einigen. Stehen alle Beteiligten für diese Werte ein, wirkt das Team und dessen Arbeit auch positiv auf die Endnutzer der Software. Zudem stärkt der Wertekatalog das Vertrauen zwischen Entwicklungs- und Administratorenteams sowie internen und externen Fachkräften.
- Klare Prozesse und Aufgabenverteilung implementieren
Gerade DevOps-Teams, deren Mitglieder aus unterschiedlichen Bereichen stammen, benötigen eindeutige Prozesse sowie Zuständigkeiten. Beginnen die Stakeholder über Aufgaben zu spekulieren, weil nicht klar ist, wer dafür die Verantwortung trägt, öffnen sich Tür und Tor für Missverständnisse. Auch die Form der Kommunikation stellt sich manchmal als Hürde heraus: Mails oder Nachrichten über Messenger wie Slack sind nicht immer aussagekräftig genug. Bei solchen Schwierigkeiten schaffen regelmäßige persönliche Meetings oder zumindest (Video-)Calls Abhilfe. Unternehmen sollten zudem nicht vergessen, dass DevOps nicht bedeutet, dass alle das Gleiche machen: Auch in DevOps-Teams behält üblicherweise jeder sein Spezialgebiet, wichtig ist nur, dass alle das Gesamtbild überblicken.
- Gute technische Lösungen schaffen
Der fünfte Kernaspekt für erfolgreiche DevOps ist das gemeinsame Commitment, gute technische Lösungen zu schaffen: Die Software soll fehlerfrei, einfach zu betreiben und leicht zu überwachen sein. Es hilft an dieser Stelle einerseits ungemein, Schritte wie das Deployment und das Testing zu automatisieren. Andererseits sollten DevOps-Teams bereits frühzeitig in der Planung eine effiziente Administration und Überwachbarkeit der zu erschaffenden Software berücksichtigen. Die damit verbundenen Probleme und Fehlerquellen zu antizipieren, fällt nicht immer leicht und ist nur möglich, wenn die Teammitglieder sich zu jeder Zeit eng abstimmen.
»DevOps ist nichts, was Unternehmen allgemein und Entwickler-Teams speziell ›on the run‹ umsetzen können«, erklärt Jörg Noack, Service Manager bei Consol. »Neben einer guten Planung müssen auch die entsprechenden Voraussetzungen erfüllt sein, um DevOps erfolgreich zu etablieren. Das ist nicht immer ganz leicht, aber die Mühe zahlt sich in Form von Produktivität und hoher Zufriedenheit innerhalb des Teams aus – und das strahlt auch nach außen zu den Nutzern und Kunden.«
Weitere Informationen unter: https://www.consol.de/it-services/devops
Bei DevOps und DevSecOps holpert es in Deutschland noch
Viele Unternehmen in Deutschland hinken ihren Zielen bei der Implementierung von DevOps und DevSecOps hinterher. Eine Hauptursache dafür sind kulturelle Barrieren. Das zeigt eine aktuelle Umfrage von Progress.
Die Umfrage »2022 DevSecOps: Simplifying Complexity in a Changing World« untersucht den Status quo der DevOps- und DevSecOps-Adaption. Im Auftrag von Progress befragte das Technologieforschungsunternehmen Insight Avenue dazu weltweit Entscheidungsträger aus den Bereichen IT, IT-Security, Anwendungsentwicklung und DevOps. An der Umfrage nahmen auch zahlreiche deutsche Unternehmen teil.
Zu den zentralen Erkenntnissen der Umfrage für Deutschland zählen:
- Viele Unternehmen hinken ihren DevOps- und DevSecOps-Zielen hinterher. 80 % der Befragten gaben zu, dass sie mehr tun könnten und ebenfalls 80 % räumten ein, dass sie beim Management von DevSecOps strategischer vorgehen müssten. 14 % befinden sich nach eigener Aussage nach wie vor in einer Sondierungs- und Proof-of-Concept-Phase.
- Sicherheit ist der wichtigste Grund für die meisten DevOps- und DevSecOps-Implementierungen. Allerdings vertrauen nur 27 % der Unternehmen der Zusammenarbeit von IT-Security und Entwicklung. 78 % sehen sich bei ihren Ansätzen zur IT-Sicherheit mit Herausforderungen konfrontiert und 57 % räumen ein, nicht genau zu verstehen, wie sich IT-Sicherheit in DevSecOps einfügt.
- Als größtes Hindernis für Fortschritte bei der Implementierung von DevOps und DevSecOps sehen 51 % die Kultur. Dennoch betrachten nur 8 % die Kultur als einen Bereich, den sie in den nächsten 12 bis 18 Monaten optimieren wollen.
- Unternehmen, die Richtlinien und Praktiken von DevOps und DevSecOps erfolgreich umsetzen, betonen die Bedeutung von übergreifenden Schulungen und Weiterbildungen zur IT-Sicherheit. Sie helfen ihnen dabei, ein höheres Niveau bei der kontinuierlichen und langfristigen Zusammenarbeit zwischen Sicherheits- und Entwicklungs-Teams zu erreichen.
- Als wichtigste Business-Faktoren für die Einführung und Weiterentwicklung von DevOps in ihren Unternehmen nennen die Befragten mehr Agilität sowie ein geringeres Risiko für Qualitäts-, Sicherheits- und Leistungsprobleme und Ausfallzeiten. Zudem sehen sie die Implementierung von DevOps als Notwendigkeit, um einen Cloud-Auftrag zu erfüllen oder eine Cloud-Migration zu unterstützen.
»Unsere Umfrage zeigt, dass sich Unternehmen in Deutschland der Vorteile von DevSecOps bewusst sind und die Implementierung auch angehen. Viele von ihnen haben dabei allerdings mit der Schaffung einer effektiven DevSecOps-Kultur zu kämpfen«, kommentiert Thomas Schuller, Regional Director DACH bei Progress. »Eine solche Kultur lässt sich natürlich nicht über Nacht erreichen, Führungskräfte können aber einen wichtigen Beitrag leisten, indem sie der funktionsübergreifenden Kommunikation hohe Priorität einräumen.«
Der Report zur weltweiten Umfrage steht hier zum Download bereit: https://www.progress.com/papers/devsecops-simplifying-complexity-in-a-changing-world
Sicherheit in der Software Supply Chain – DevOps braucht DevSecOps
Im Gespräch erklärt Frank Fischer, Product Marketing bei Snyk, warum Open Source in Software-Projekten gleichzeitig Fluch und Segen sein kann, warum Sicherheit integraler Bestandteil jedes Prozessschrittes in DevOps werden muss und das Security im Wesentlichen aus den drei Aspekten Technologie, Prozesse und Menschen besteht und die alle gleich bedacht und gestärkt werden müssen.
In den letzten Wochen fanden einige Messen und Kongresse rund um das Thema Cyber Security statt. Was sind aktuell die wichtigsten Themen, was beschäftigt die Branche?
Ein in unseren Gesprächen immer präsentes Thema war Supply Chain Security. Um schnell und hochwertig Software zu entwickeln, haben viele dieser Anwendungen eine Software Supply Chain, welche teilweise in Händen von Independent Software Vendors liegt, zumeist aber aus Open-Source-Projekten besteht. Darin liegt gleichzeitig Fluch und Segen. Auf der einen Seite ist es eben super einfach, ein Open-Source-Projekt aufzusetzen, das bringt eine Menge Dynamik und Innovation in die Entwicklung. Andererseits läuft das Ganze ziemlich ungeregelt ab. Und das birgt, wie wir letztes Jahr beispielsweise bei der Log4J-Sicherheitslücke gesehen haben, ein großes Risiko, da die Softwarebörsen noch nicht verbindlich auf die Qualität und Sicherheit der über sie laufenden Projekten achten müssen. Allein im ersten Quartal diesen Jahres wurden über 8.000 Sicherheitsschwächen registriert.
Daher hat nun auch die US-Regierung vor Kurzem eine von Google bereits letztes Jahr initiierte Initiative aufgegriffen. Diese nennt sich Open Source Security Foundation (Open SSF) und soll eine Softwarebörse schaffen, über die man qualitätsgeprüfte Bibliotheken herunterladen kann. Ich denke, das ist ein wichtiger Schritt, wird aber das Problem der Supply Chain Sicherheit nicht grundsätzlich lösen. Es wird immer noch das Problem geben, dass jedes Softwareprojekt Abhängigkeiten hat, die wiederum Abhängigkeiten haben. Das ergibt dann schnell eine Art Baumstruktur an Sicherheitsrisiken, die verwaltet werden muss. Damit muss sich die Branche auseinandersetzen.
Ein immer wieder auftretender Begriff im Bereich Cyber Security ist IAC, also Infrastructure as Code. Spielte das auch eine Rolle bei Ihren Gesprächen?
Ja, das ist dieses Jahr das zweite große Thema. Bei Verbindungen, Servern und Datenströmen wird dies im Zeitalter der Cloud immer wichtiger. Im Endeffekt liegt dem Ganzen eine Cloud-Infrastruktur zugrunde, für die der Anbieter, also etwa Amazon oder Google, verantwortlich ist. Auf dieser Cloud definiert dann der einzelne Programmierer mit Hilfe eines Skriptes, also Software, die jeweilige anwendungsspezifische Architektur. Ab diesem Layer ist der einzelne Netzwerker selbst verantwortlich. Dieser Bereich wird von uns mit automatischen Tools adressiert. Diese überprüfen die Konfiguration, etwa auf Sicherheit, und helfen den Entwicklern, einen unbeabsichtigten Unterschied zwischen gewollter sowie tatsächlicher Konfiguration zu entdecken und zu beheben.
Wie bewerten Sie die Rolle von DevOps? Können sie Unternehmen helfen, schneller, agiler und kostengünstiger zu entwickeln?
In den letzten Jahren hat DevOps einige ganz fundamentale Probleme gelöst, die man im Software-Entwicklungsprozess in den Unternehmen bisher gesehen hat. DevOps bedeutet, Entwickler enger in den Betrieb von Software einzubinden. Ein großer Mehrwert von DevOps ist der Gedankengang des agilen Entwickelns, dass ich also kleine Schritte mache, dass ich sofort versuche, mit diesem Schritt an den Markt zu gehen, dass ich versuche zu sehen, wie wird dieser Schritt akzeptiert und umgesetzt.
Wenn man jedoch mit kleinen Änderungen an den Markt gehen und etwa dreimal am Tag deployen will, ist dies ohne DevOps einfach nicht machbar. Und weil sie ihre Anwendungen immer schneller und flexibler anbieten möchten, liebäugeln inzwischen immer mehr Unternehmen mit DevOps. Aktuell sind es unseren Zahlen nach bereits 70 Prozent aller Unternehmen, die ihre Geschäftsprozesse entsprechend abbilden. Ich glaube, Unternehmen müssen mittlerweile mit einem DevOps-Modell fahren, um schneller sowie agiler am Markt zu sein und Dinge zu testen, dynamisch zu verändern sowie schnell reagieren zu können, wenn sich Chancen am Markt ergeben.
Wenn man das jetzt zu Ende denkt, dann darf das Thema Sicherheit nicht in einem Prozessschritt kurz vor Inbetriebnahme in den DevOps-Prozess gepackt werden, weil man sonst das Sicherheitsteam zum Flaschenhals macht. DevOps braucht DevSecOps – das heißt Sicherheit muss integraler Bestandteil jedes Prozessschritts in DevOps werden.
Also spielt Automation jetzt schon eine große Rolle. Sie sprechen in diesem Zusammenhang von Symbolic AI. Was bedeutet das?
Angesichts der stark gestiegenen und komplexen Business-Anforderungen sowie der dafür nötigen Tools setzen insbesondere größere Firmen zunehmend auf Automatisierung. Tatsächlich ist eines der Kernelemente von DevOps die Automatisierung von Prozessen. Dies ist optimal für künstliche Intelligenz. Diese sogenannte Sub Symbolik AI – oder Machine Learning – wird verwendet, um große Datenmenge auf Muster zu untersuchen und dann ein System darauf zu trainieren, diese Muster wiederzuerkennen und entsprechend zu klassifizieren.
Bei Snyk verwenden wir zusätzlich Symbolic AI. Mit Hilfe von vordefinierten Regeln suchen unsere Tools nach Mustern. Auch wenn keine Trainingsdaten verfügbar sind, kann ich bereits eine Regel definieren, nach der mein Programm Ausschau halten und dann reagieren soll. Ein Beispiel dafür ist unsere Infrastructure as Code Solution, die nach den vom Hersteller vorgegebenen Standards dessen Cloud konfiguriert. Wir haben hierfür die zugrunde liegenden Regelsätze in unsere Symbolic AI integriert, lassen sie über die vorhandene Konfiguration laufen und geben dann dem Entwickler Ratschläge, etwa, wenn dieser Punkt geändert wird, steigt die Performance oder die Sicherheit.
Wir verwenden Symbolic AI bei der statischen Code Analyse im Rahmen einer sogenannten Constraint-based Analysis. Dabei generieren wir aus dem Source Code Fakten und können dann etwa sagen, wie eine Variable durch Applikationen fließt und als Parameter für eine Funktion dient. Diese automatisiert feststellbaren Fakten nennt man Constraints. Anschließend kann man auf Basis dieser Constraints Regelsätze anwenden und sagen, wenn folgendes Muster existiert, dann ist das eine Schwäche im Code. Dies ermöglicht eine Analyse auf einer höheren Ebene, die versucht, den Gedankengang des Programmierers nachzuvollziehen. Das Besondere ist, dass wir für Snyk Code Symbolic und Sub-Symbolic AI kombinieren und damit vom Wissen der globalen Open Source Community lernen.
Nun ist es ja mittlerweile so, dass auch Management Service Provider wie AWS vermehrt angegriffen werden. Ziele sind also gar nicht mehr unbedingt Unternehmen, sondern die Anbieter. Und das wird ja weiterhin zunehmen.
Ja, aber man muss eindeutig feststellen, dass Cloud-Anbieter wie Amazon, Microsoft oder Google mehr Wissen und Ressourcen dafür haben, eine professionelle sichere Infrastruktur zu schaffen als irgendein Unternehmen, dessen Kernkompetenz eben nicht der Betrieb einer Cloud ist. Aber Anwender müssen ihren Teil zur Sicherheit beitragen. Und für 99 Prozent der Unternehmen ist Security extrem wichtig auf ihrem Weg in die Cloud. Security besteht im Wesentlichen aus den drei Aspekten Technologie, Prozesse und Menschen und die müssen alle gleich bedacht und gestärkt werden. Dies ist nicht nur Unternehmen immer bewusster geworden, sondern auch Behörden und Regierungen sind hier zunehmend involviert.
Wir haben mittlerweile zum Beispiel in New York die klare Gesetzgebung, dass jedes Unternehmen auch einen Chief Information Security Officer (CISO) haben muss. Der muss benannt und den staatlichen Stellen angezeigt werden. Wir gehen davon aus, dass diese Anforderung weltweit kommen wird. Und die US-Regierung mit ihrer Beteiligung an Open SSF oder GDPR in Europa sind ja ebenfalls bereits Beispiele dafür, dass immer mehr ins öffentliche Bewusstsein rückt, wie wichtig die weltweite Datensicherheit mittlerweile geworden ist.