Längst sind die Zeiten vorbei, als neue Software-Versionen in sporadischen Abständen auf dem Markt erschienen sind. Heute erwarten Kunden in immer kürzeren Zeitabständen immer mehr neue Features und Updates ihrer Produkte - und entscheiden sich für die Angebote eines anderen Anbieters, wenn der altbewährte nicht mehr das Begehrte liefern kann.
Ganz klar: Unternehmen stehen in unserem schnelllebigen Zeitalter unter immensem Zeitdruck, wenn sie wettbewerbsfähig bleiben wollen. Und Applikationen spielen dabei eine immer größere Rolle. Sie müssen schneller an die dynamischen Veränderungen im Markt angepasst werden, sie bestimmen die positive - oder negative - Erfahrung des Kunden mit einem Unternehmen. Das heißt: mehr Agilität für Software - und auch für Prozesse. Der Königsweg dorthin: DevOps.
DevOps: Der Name ist Programm
Wer das erste Mal von DevOps hört oder liest, geht zunächst von einer vermeintlichen Technologie aus, mit der sich das Development beschleunigen lässt – immerhin bewegen wir uns bei diesem Thema in der IT-Branche. Und das ist nicht vollständig falsch: Tatsächlich umfasst das Konzept auch neuartige Tools und Lösungen, die die Entwicklung, das Testing, die Wartung und den Release von Software vereinfachen sollen. Tools und auch der Gedanke an Development alleine aber reichen hier zu kurz. Es braucht ein Denken über die IT-Grenzen hinaus – keine Mauern mehr zwischen Developern und Admins, zwischen Konzeption und Betrieb. Der Name DevOps, der sich aus „Development“ und „Operations“ zusammensetzt, ist also Programm.
Wer das verstanden hat, kann Projekt und Kulturwandel im eigenen Unternehmen vorantreiben – und die Vorteile ausschöpfen, die ein Erfolg mit sich bringt. Wenn Entwicklung und Betrieb den Weg von der Codierung über die Testphase und Wartung, bis hin zum Live-Betrieb der Software gemeinsam gehen, können nicht nur Reibungsverluste vermieden werden. Besser noch: Der Austausch von Fähigkeiten und Know-how – Entwickler stellen den Code unter Berücksichtigung der IT-Gegebenheiten, Admins sorgen für eine ideale Infrastruktur in der Test- und Umsetzungs-Phase – lassen ganz neue Synergien entstehen.
- Das fertige Puzzle
So sieht das fertige Puzzle aus: neun Teile, die sich in drei inhaltlich definierte Reihen fügen. - Die obere Reihe
Bei Strategien und Zielen sind die Anwender signifikant weiter als anderswo. Anders gesagt: Die linke obere Ecke des Puzzles haben die meisten bereits richtig platziert. - Die mittlere Reihe
Tückisches Teil: Am schwersten fällt es den Unternehmen, für kulturelle Harmonie in der IT zu sorgen. - Die untere Reihe
DevOps benötigt die richtigen Tools sowie Sicherheits- und Compliance-Instrumente. Die Analysten nennen als ein Beispiel Lösungen für Release Automation. - Performance im Markt
Anwender, die einen großen Teil des Puzzles zusammengesetzt haben, erweisen sich auf dem Markt als leistungsstärker. Das zeigt diese Grafik. - Effekt in der Scorecard
Ganzheitliche DevOps-Anwender profitieren auch bei den KPIs der Business Scorecard. Das zeigt sich in dieser Grafik. Überraschend ist allerdings der geringe Abstand zwischen DevOps-Abstinenzlern und Anwendern mit limitiertem Einsatz.
DevOps-Projekte: Sieben kritische Punkte
Effizienz, Innovation und Qualität – ein hehres Versprechen. Trotzdem: DevOps-Projekte gehen oft schief. Kein Wunder, denn wer mit DevOps erfolgreich sein will, muss an die Substanz gehen und althergebrachte Arbeitsabläufe von Grund auf umkrempeln – nicht nur digital, sondern auch kulturell. Die folgenden sieben Punkte können dabei helfen, das Wichtigste im Blick zu behalten:
1. Wissen, wo man hin will
Jedes DevOps-Projekt braucht eine klare Vision und Strategie – eine langfristige Perspektive für die strukturellen Veränderungen. Projektleiter sollten zu Beginn die wichtigsten Basisfragen beantworten und Probleme identifizieren, die es zu lösen gilt. Um Klarheit und Kontinuität zu garantieren, sollten Projekte ganzheitlich von einem Verantwortlichen geleitet werden.
2. Langsam anfangen
Neben digitalen Einschnitten stellen DevOps-Projekte auch und vor allem die Unternehmenskultur auf den Kopf: Bis dato waren die Bereiche Entwicklung und Betrieb in Softwareunternehmen voneinander getrennt. Jetzt wird eine enge Verzahnung angepeilt, die verschiedene Kulturen und Berufswelten aufeinander prallen lässt. Die beiden Bereiche sprechen nicht nur unterschiedliche Sprachen, sie haben auch eine unterschiedliche Sichtweise auf die Dinge. Das schafft Unruhe und macht den schnellen, großen Wurf fast unmöglich. Doch die Umstellung kann auch Spaß machen, wenn man den Beteiligten den Freiraum gibt, sich auszuprobieren und zu experimentieren. Die Implementierung eines Pilotprojekts kann dabei helfen, zu zeigen was funktioniert - und was nicht. Auf jeden Fall stoßen solche Projekte die Kommunikation an – eine Kommunikation, die eigentlich in dieser Form noch nie stattgefunden hat.
3. Rechtzeitig umstellen
In vielen Fällen entscheiden sich IT-Verantwortliche für DevOps aus Notsituationen heraus – wenn es schon fast zu spät ist. Die erzwungene Zusammenarbeit zwischen Entwicklung und Betrieb kann nur noch selten Wunder wirken. Halbherzig durchgeführte DevOps-Projekte sind ebenso ineffizient. Es reicht nicht, einen Kulturwandel einzuleiten und keine Tools - etwa für Automatisierung - bereitzustellen. Man muss dem Team auch eine Grundlage geben! Nur Tools sind aber auch der falsche Weg, denn dann leidet die Qualität. So setzen viele Unternehmen auf sogenannte Servermetriken wie Systemausfälle und Automatisierung, um sich die gesamte Systemüberwachung zu erleichtern. Die Folge: Aus Nachlässigkeit stürzen ganze Systeme ab, weil die aktive Kontrolle unzureichend war. Ein rechtzeitiger und allmählicher Anfang hilft, diese Fehler zu vermeiden.
4. Miteinander reden
Damit Teams untereinander offener und agiler werden, müssen sie sich verstehen. Nur: IT-Abteilungen haben sich bis dato nicht durch offenen Dialog ausgezeichnet. Hierarchische Strukturen und der Satz 'Das ist nicht mein Job' waren und sind hier noch häufig an der Tagesordnung. Um einen Ideenaustausch nicht nur innerhalb des eigenen, sondern auch mit den Teams aus dem IT-Betrieb zu ermöglichen, müssen die althergebrachten Strukturen aufgebrochen werden. Teams müssen sich genau darüber abstimmen, welche Erwartungen sie hegen und welche Fristen sie sich gegenseitig setzen. Eine intensive Kommunikation kann Missverständnisse und Hindernisse aus dem Weg räumen und so dazu beitragen im Softwareentwicklungsprozess Zeit und Geld zu sparen.
5. Den Kunden einbeziehen
Der Dialog geht noch weiter: DevOps-Strategien haben nur dann Aussicht auf Erfolg, wenn sie sich an die sich wandelnden Bedürfnisse und Erwartungen der Kunden anpassen. Kundenerfahrungen sind die Haupttreiber für kontinuierliche Software-Updates und –Releases. Optimal ist es deshalb, den Kunden in Dialog mit der IT zu bringen. So wissen Entwickler was den Kunden fehlt und können diesen Mangelerscheinungen entsprechend entgegenwirken.
6. Neue Technologien beherrschen
DevOps-Projekte lassen sich nicht allein durch die Zusammenarbeit von Entwicklung und Betrieb definieren. Prozesse in der Softwareentwicklung werden in einem weiteren Schritt durch eine Reihe neuer Technologien beschleunigt, die Mitarbeitern in einer Plattform zur Verfügung stehen: Von modernem Software Configuration Management über Tools für effektives Monitoring der Produktionsumwelten und eine automatisierte Qualitätsprüfung - beziehungsweise Testing - bis hin zu Release-Automation-Lösungen. Eines wird hier deutlich: Software wird heute nicht mehr manuell entwickelt, sondern in allen Produktionsschritten von entsprechenden Programmen getragen und automatisiert. Umso wichtiger ist es, dass die Mitarbeiter aus Entwicklung und Betrieb damit umzugehen wissen.
7. Security & Compliance von Anfang an
Es ist nachvollziehbar: Wer in den Startlöchern eines DevOps-Projekts steckt, möchte am liebsten so viele Hebel wie möglich in Gang setzen, damit die neue Art der Softwareentwicklung am besten direkten Einfluss auf den Produkt- und Service-Zyklus nimmt. Doch Unternehmen sollten sich vor der endgültigen Umsetzung darüber im Klaren sein, wem sie welchen Zugriff gewähren, was wirklich notwendig ist und wie das gemanagt und überwacht wird. Dies gilt insbesondere für Accounts mit privilegiertem Zugriff. Damit vermeiden Unternehmen das Risiko eines Cyberangriffs und sichern zugleich die Datenbestände gegen unerlaubten Informationsabfluss. Eine intensive Schulung von Entwicklern darüber, welche Sicherheitsfeatures in ihre Programme von Anfang an eingebaut werden können, täte ihr Übriges zu mehr Sicherheit und Compliance.
- Adminrechte
Keine Vergabe von Administratorenrechten an Mitarbeiter - Dokumentation
Vollständige und regelmäßige Dokumentation der IT - Sichere Passwörter
IT-Sicherheit beginnt mit Sensibilisierung und Schulung der Mitarbeiter sowie mit einer klaren Kommunikation der internen Verhaltensregeln zur Informationssicherheit:<br /><br /> Komplexe Passwörter aus Groß- und Kleinbuchstaben, Ziffern und Sonderzeichen, mindestens achtstellig. - Passwortdiebstahl
Niemals vertrauliche Daten weitergeben oder/und notieren. - E-Mail-Sicherheit
E-Mails signieren, sensible Daten verschlüsseln, Vorsicht beim Öffnen von E-Mail-Anlagen und Links. - Soziale Manipulation
Bewusst mit vertraulichen Informationen umgehen, nur an berechtigte Personen weitergeben, sich nicht manipulieren oder aushorchen lassen. - Vorsicht beim Surfen im Internet
Nicht jeder Link führt zum gewünschten Ergebnis. - Nur aktuelle Software einsetzen
Eine nicht aktualisierte Software lässt mehr Sicherheitslücken offen. - Verwendung eigener Software
Unternehmensvorgaben beachten und niemals Software fragwürdiger Herkunft installieren. - Unternehmensvorgaben
Nur erlaubte Daten, Software (Apps) und Anwendungen einsetzen. - Backups
Betriebliche Daten regelmäßig auf einem Netzlaufwerk speichern und Daten auf externen Datenträgern sichern. - Diebstahlschutz
Mobile Geräte und Datenträger vor Verlust schützen. - Gerätezugriff
Keine Weitergabe von Geräten an Dritte, mobile Geräte nicht unbeaufsichtigt lassen und Arbeitsplatz-PCs beim Verlassen sperren. - Sicherheitsrichtlinien
Die organisatorischen Strukturen im Hintergrund bilden den erforderlichen Rahmen der IT-Sicherheit. Hier gilt es, klare Regelungen zu formulieren und einzuhalten:<br /><br />Definition und Kommunikation von Sicherheitsrichtlinien - Zugriffsrechte
Regelung der Zugriffsrechte auf sensible Daten - Softwareupdates
Automatische und regelmäßige Verteilung von Softwareupdates - Logfiles
Kontrolle der Logfiles - Datensicherung
Auslagerung der Datensicherung - Sicherheitsanalyse
Regelmäßige Überprüfung der Sicherheitsmaßnahmen durch interne und externe Sicherheitsanalysen - Notfallplan
Erstellung eines Notfallplans für die Reaktion auf Systemausfälle und Angriffe - WLAN-Nutzung
Auf technischer Ebene muss ein Mindeststandard gewährleistet sein. Dieser lässt sich größtenteils ohne großen Kostenaufwand realisieren:<br /><br />Dokumentation der WLAN-Nutzung, auch durch Gäste - Firewalls
Absicherung der Internetverbindung durch Firewalls - Biometrische Faktoren
Einsatz von Zugangsschutz/Kennwörter/Biometrie - Zugangskontrolle
Physische Sicherung/Zugangskontrolle und -dokumentation - Schutz vor Malware
Schutz vor Schadsoftware sowohl am Endgerät als auch am Internetgateway, idealerweise durch zwei verschiedene Antivirenprogramme - Webzugriffe
Definition einer strukturierten Regelung der Webzugriffe - Verschlüsselung
Verschlüsselung zum Schutz von Dateien und Nachrichten mit sensiblen Inhalten - Löschen
Sicheres Löschen der Daten bei Außerbetriebnahme - Update der Sicherheitssysteme
Sicherstellung regelmäßiger Updates der Sicherheitssysteme - Monitoring
Permanente Überwachung des Netzwerkverkehrs auf Auffälligkeiten
Fazit: Time to do it!
DevOps-Initiativen werden heute häufig dann angestoßen, wenn es um unternehmensspezifische Anwendungen geht oder wenn Web- und Unternehmensanwendungen schneller zum Einsatz kommen sollen. Doch das ist erst der Anfang. Wir werden in den nächsten Jahren gerade in Deutschland immer mehr agile Softwareentwicklung in Bereichen wie Big Data oder Internet of Things sehen. Eine Notwendigkeit, denn nur mit DevOps lässt sich eine App Economy umsetzen. (fm)