Mit dem 3-Punkte-Plan klappt es mit erfolgreichem DevOps

Der Entwickler-Spickzettel: Wie man zur DevOps-Kampfmaschine wird

Rami Sass

© Shutterstock / supercaps

Veränderungen können eine schwierige Angelegenheit sein. Trotzdem sind immer mehr Unternehmen an der Umsetzung von DevOps interessiert. In diesem Artikel stellt Rami Sass, der CEO und Co-Founder von WhiteSource, einen Spickzettel mit Tools und Praktiken zusammen, der dabei helfen kann, ihr Team in eine wahre DevOps-Kampfmaschinen zu verwandeln.
 
 

Softwareunternehmen stehen unter einem immer stärker werdenden Druck, innovative Produkte zu liefern und Updates bereitzustellen. Aus diesem Grund wird im Ökosystem der Softwareentwicklung immer häufiger über die Umsetzung des DevOps-Modells gesprochen, da es eine bessere Effizienz und Agilität verspricht. Mit DevOps soll es für Teams leichter werden, Termine einzuhalten, ohne dass die Qualität darunter zu leiden hat. Das soll selbst dann der Fall sein, wenn langwierige, manuelle Tests und Bugfixes umgangen werden, die traditionell am Ende des Entwicklungsprozesses stehen würden.

Für ein Unternehmen sind Veränderungen nie eine einfache Angelegenheit. Hinzu kommt, dass die Einführung von DevOps in den Entwicklungszyklus einen großen Wandel auf vielen Eben erfordert. Es stellt Teams vor die Herausforderung, sich an eine neue Organisationsstruktur anzupassen: Neue Prozesse müssen umgesetzt, neue Fähigkeiten entwickelt und neue Tools integriert werden.

Die Branchenveteranen von The Agile Admin drücken es so aus, dass es sich bei DevOps um „eine interdisziplinäre Praxisgemeinschaft, die sich der Erforschung des Aufbaus, der Entwicklung und des Betriebs von sich schnell verändernden, belastbaren Systemen widmet.“ Die erfolgreiche Umsetzung erfordert jedoch eine tatsächliche Veränderung des gesamten Unternehmens und es ist insofern nicht weiter verwunderlich, dass sich viele Menschen dagegen sträuben. Sobald wir aber über den ganzen Hype der „Organisationskultur“ oder der „Barrierenüberwindung“ hinweg sehen, geht es bei DevOps in Bezug auf Entwickler-Teams darum, neue Methoden und Praktiken einzuführen, die viele bereits verinnerlicht haben.

Wir haben an dieser Stelle einen Spickzettel mit Tools und Praktiken zusammengestellt, der dabei helfen kann, ihr Team in eine wahre DevOps-Kampfmaschinen zu verwandeln.

DevOpsCon Whitepaper 2018

Free: 40+ pages of DevOps expert knowledge

Learn about Containers,Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Kai Tödter (Siemens), Nicki Watt (OpenCredo), Tobias Gesellchen (Europace AG) and many more.

#1 – Continuous Integration

Continuous Integration oder auch CI ist zu einem grundlegenden Prozess im Bereich der Softwareentwicklung geworden. Es ist ein unentbehrlicher Torhüter, der Entwicklungsteams beim Wahren der Code-Qualität hilft und davor schützt, Fehler im Code in ihr Projekt zu integrieren, bevor sie zum Ende der Produktion hin auftauchen – genau dann, wenn die Kosten für das ersetzen oder ausbauen von Operationen durch die Decke schießen. Aus diesem Grund ist die Wahl des richtigen CI-Servers zur bestmöglichsten Unterstützung der entsprechenden Prozesse des eigenen Teams so entscheidend.

Jeder Entwickler wird sagen, dass es den einen CI-Server gibt, der besser als die anderen ist. Die Vielfalt der auf dem Markt befindlichen Tools beweist, dass es tatsächlich sehr viele Optionen gibt, aus denen man wählen kann:

Soll er Open Source sein oder eher proprietär? Wie gut lässt er sich konfigurieren? Ist eine Dokumentation verfügbar? Wie sieht es mit der Unterstützung aus? Die Möglichkeiten reichen ins Unendliche.

Einige der erfahrenen Nutzer von CI-Servern schwören auf Jenkins, andere hingegen deployen VSTS und könnten nicht glücklicher mit dieser Entscheidung sein. Zudem gibt es da noch Travis, das sehr einfach zu installieren sein soll. Oder Atlassian, was sich sich in Jira integrieren lässt. Bisher konnte allerdings noch kein einziges Tool alle wichtigen Punkte abdecken.

Der beste Weg, das richtige CI-Tool für das eigene Unternehmen auszuwählen, besteht darin, die spezifischen Bedürfnisse ihres Unternehmens in Abhängigkeit von den bereits genutzten bzw. vorhandenen Plattformen, Tools, Komponenten, Infrastrukturen, Prozessen und Richtlinien abzubilden. Anhand dessen kann dann der richtige CI-Server ausgesucht werden.

#2 – Analyse der Softwarezusammensetzung

Für die meisten von uns stellen Open-Source-Komponenten oder Komponenten von Drittanbietern eine nie versiegende Quelle dar. Die Daten zeigen, dass die meisten der heutigen Anwendungen lediglich 10 bis 20 Prozent an proprietärem Code enthalten, dafür aber zu 80% bis 90% aus Open-Source-Komponenten oder Komponenten von Drittanbietern bestehen.

Wir haben allerdings die Tendenz, die damit verbundenen Risiken zu übersehen: Eine von 16 Open-Source-Downloadanfragen bezieht sich auf eine Komponente mit einer bekannten Schwachstelle. Bei DevOps geht es zwar vor allem um die Testautomatisierung, aber innovative Tools für die Anwendungssicherheit wie SAST, DAST und IAST, die für proprietäre Software benutzt wird, decken keine Open-Source- und Drittanbieter-Komponenten ab.

Diese erfordern es, dass wir eine Reihe von neuen Sicherheitstools und -praktiken einführen, die sich von denen unterscheiden, die wir bei der Nutzung proprietären Codes verwenden. Hier kommen Tools für die Software Composition Analysis (SCA) ins Spiel. Es ist schwierig, wenn nicht gar unmöglich, sämtliche Schwachstellen in Open-Source-Software zu verfolgen – es sei denn, man nutzt ein automatisiertes Tooling dafür.

SCA-Tools können kontinuierlich und automatisch den Quellcode einer Anwendung, Module, Frameworks und Bibliotheken analysieren, um die jeweils verwendeten Open-Source- und Drittanbieter-Komponenten auf Sicherheitslücken zu prüfen. Teams ist es so möglich, bekannte Sicherheitslücken oder Lizenzprobleme in Produkten und Verzeichnissen zu identifizieren, lange bevor sie in die Produktion gehen.

#3 – Teamwork macht Träume wahr

Die gute Nachricht ist, dass es bei DevOps neben Tools und Prozessen auch um Menschen geht. Wenn Teams einen Weg finden, ihre Erfahrungen und Fähigkeiten zu bündeln, ist das Ergebnis oft genauso wertvoll wie jedes magische, automatisierte Deployment-Tool da draußen.

Früher war es der Fall, dass Entwicklungs- und Operationsteams, sich mit unterschiedlichen Prioritäten und Zielen voneinander abgeschottet haben. Das ist nicht länger der Fall. Der DevOps-Ansatz erfordert es, dass Teams, die es nicht gewohnt sind zusammenzuarbeiten, einen Weg finden, um einen Entwicklungszyklus zu schaffen und aufrechtzuerhalten, mit dem sich innovative, qualitativ hochwertige Produkte schnell und sicher liefern lassen.

Das bedeutet, dass alle Beteiligten (hiermit sind Entwickler, Operator und Sicherheitsexperten gemeint) lernen müssen, das Fachwissen ihrer Kollegen zu respektieren und zusammenzuarbeiten. Damit soll gewährleistet werden, dass der Prozess und das Endprodukt den Standards aller Beteiligten genügt.

TJ Randall, VP of Customer Success bei Xebia Labs, warnt Unternehmen vor dem signifikantesten Stolperstein auf dem Weg zur erfolgreichen Umsetzung von DevOps. Dieser besteht in einem Mangel an Akzeptanz dafür, dass „die Entwicklung nicht nur von einem Team ausgeht, sondern von vielen.“ Seiner Erfahrung nach „fällt es den Ops schwer, sämtliche Aktivitäten in einen konsistenten und wiederholbaren Prozess zu vereinen“, wenn Teams nicht an ihrer Kommunikation und Kooperation arbeiten. „Es ist schwer herauszufinden, wie man verschiedene Silos dazu bringt, sich die Arbeit der anderen anzuschauen und ihnen zu erklären, warum die Zeit dafür nicht verschwendet ist.“

Das DevOps- und Software-Team

Wenn man einmal darüber nachdenkt, so liegen keine Welten zwischen Entwickler- und DevOps-Teams. Die Entwickler sind flexibel, innovativ, lernen schnell neue Sprachen und wenden bei Bedarf neue Methoden an. Obwohl es niemandem gefällt, wenn sein Alltag einem einschneidenden Wandel unterzogen wird, haben die Änderungen, die wir hier empfohlen haben, Entwicklerteams bereits geholfen, ihre Produkte schneller fertigzustellen und auszuliefern, während mühsame manuelle Tests und nächtliche Korrekturen in letzter Minute vermieden wurden. Ein letzter wichtiger Tipp: Veränderungen finden nicht von heute auf morgen statt, sondern sind ein Prozess. Lassen Sie sich von den großen Buzzwörtern nicht entmutigen.

Nehmen Sie Ihr Team und Ihre Arbeitsabläufe genau unter die Lupe und halten Sie Ausschau nach dem, was Sie verlangsamt. Laufen Sie nicht jedem neumodischen Trend hinterher, sondern sprechen Sie mit den Experten, denen Sie in Ihrem Unternehmen und Ihrer Fachwelt vertrauen. Bringen Sie in Erfahrung, welche Sicherheits- und Operations-Methoden Ihre Projekte verbessern könnten und welche am einfachsten zu übernehmen sind, machen Sie dann von dort aus weiter. Halten Sie sich an diese Lektionen und sie werden ein DevOps-Ninja, noch bevor sie „automatisierte Software-Delivery-Pipeline“ gesagt haben.

Geschrieben von
Rami Sass

Rami Sass is CEO and co-Founder of WhiteSource. Rami is an experienced entrepreneur and executive with vast experience in defining innovative products, leading technology groups and growing companies from seed level to business maturity. Before founding WhiteSource, Rami founded Testology and beforehand, led development efforts at both CA and at Eurekify (Acquired by CA). Rami holds anMsC and a BA in Computer Science.

Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: