Timing ist alles, aber auch das Wissen, wie CI/CD, IaC und AIops Ihr Unternehmen beeinflussen können. [...]
Devops stellt eine kulturelle Wende in der Art und Weise dar, wie Entwicklungs- und Operationsteams zusammenarbeiten, sowie eine Reihe von Best Practices, die Automatisierung, Zuverlässigkeit und Geschwindigkeit bei der Bereitstellung von Änderungen fördern. Die Ausrichtung basiert auf einem gegenseitigen Verständnis zwischen agilen Entwicklungsteams, die regelmäßig Code für die Produktion freigeben wollen, und Mitarbeitern des Betriebs, die eine hohe Zuverlässigkeit, Sicherheit und Skalierbarkeit von Anwendungen, Datenbanken, Infrastruktur und Netzwerken gewährleisten müssen.
Automatisierungen wie CI/CD (Continuous Integration and Continuous Delivery) und IaC (Infrastructure as Code), Plattformen, die auf Containern aufgebaut sind, und Umgebungen, die mit AIops verwaltet werden, sind allesamt Praktiken und Technologien von Devops. Für viele Unternehmen kann die Reifung dieser primären Devops-Praktiken die Einstellung von Mitarbeitern mit den erforderlichen Fähigkeiten, die Schulung anderer, das Testen neuer Technologien, die Wiederholung der Implementierung und die Entwicklung von Ansätzen zur Skalierung und Standardisierung von Praktiken erfordern.
Obwohl es verlockend sein mag, mit all diesen Praktiken zu experimentieren, kann es für viele Technologie-Teams in Wirklichkeit ein sehr großer Auftrag sein. Es ist praktischer, einen kleinen Bereich zu bestimmen, um damit zu beginnen, erste Gewinne zu erzielen und das Programm anschließend zu erweitern.
Das Verständnis für geschäftliche und technische Ziele
Wann immer ein Technologieunternehmen in ein neues Tool oder eine neue Praxis investiert, ist es am besten, die Treiber, Auswirkungen und KPIs (Key Performance Indicators) zu berücksichtigen, die der Initiative zugrunde liegen. Vor dem Start eines Devops-Programms sollte das Team eine Handvoll Business-Sponsoren identifizieren und eine Erklärung entwickeln, die Probleme und Chancen identifiziert und priorisiert. Einige Beispielprobleme können sein:
- Lange MTTR (mean time to recovery) für eine Anwendung.
- Konfigurationsunterschiede zwischen Entwicklungs-, Test- und Produktionsumgebungen, die das Testen von Anwendungen beeinträchtigen.
- Manuelle Anwendungsbereitstellungspraktiken, die fehleranfällig sind und verhindern, dass Entwicklungsteams Änderungen so oft bereitstellen, wie es das Unternehmen und die Endbenutzer erfordern.
Zu den Möglichkeiten können gehören:
- Einführung von Infrastrukturstandards bei der Migration von On-Premises auf Cloud-Infrastrukturen.
- Investitionen in Microservices oder andere Architekturänderungen, bei denen die Implementierung von Cloud-nativen und automatisierten Konfigurationen langfristige Vorteile bringt.
- Verbesserung der Testautomatisierung für Anwendungen, die eine erhöhte Nutzung erfahren und in neue Funktionen investieren.
Führungskräfte sollten die mit Devops-Programmen verbundenen KPIs überprüfen und dann überlegen, wie sie die vollständige Liste der Probleme, Opportunities und KPIs durchsetzen können. Die Rangliste soll bei der Entscheidung helfen, auf welche Devops-Praktiken man sich zuerst konzentrieren sollte.
Wann sollte man CI/CD und kontinuierliche Tests priorisieren?
Einige Unternehmen investieren viel in ihre Anwendungen und veröffentlichen regelmäßig Verbesserungen. Wenn dedizierte Entwicklungsteams mit der Freigabe von Anwendungsverbesserungen beauftragt werden, ist das ein starker Indikator dafür, dass das Starten von Devops durch die Entwicklung von CI/CD und kontinuierliches Testen sinnvoll sein kann.
Es gibt noch andere Überlegungen. Nicht alle Anwendungen sind für das Unternehmen gleich wichtig oder erhalten die gleiche Investition in den Entwicklungsprozess. Die meisten Unternehmen priorisieren die Anwendungsentwicklung nach Geschäftsfaktoren, einschließlich Umsatz, den geschäftlichen Auswirkungen von Workflows und Nutzung. Es liegt auf der Hand, dass Anwendungen, die eine höhere Geschäftspriorität haben oder eine zunehmende Nutzung erfahren, die richtigen Ausgangspunkte sein können.
Auch die zugrunde liegende Architektur wird berücksichtigt. Eine Architektur, die komplex ist, über eng gekoppelte Komponenten verfügt, Legacy-Technologien einsetzt oder erhebliche technische Verschuldung birgt, ist nicht die beste Wahl für frühe CI/CD-Aufwendungen. Die beste Gelegenheit besteht in einer Anwendung oder Plattform, die eine Geschäftspriorität hat und eine einfache Architektur mitbringt.
Wann sollen Devops mit IaC und Containern gestartet werden?
Angenommen, Sie entwickeln und implementieren nicht viele Anwendungen, pflegen aber dennoch viele Computerumgebungen für verschiedene Geschäftszwecke. Möglicherweise verfügen Sie über CRM- oder CMS-Systeme und BPM-Tools, die in privaten oder öffentlichen Cloud-Umgebungen eingesetzt werden. Auf diesen Plattformen wird zwar wenig entwickelt, aber sie erfordern immer noch Programmierung, Tests, Staging, Produktion, Disaster Recovery und andere Arten von Umgebungen, um unterschiedliche Lebenszyklen zu unterstützen.
Es mag wenig Notwendigkeit geben, CI/CD für diese kommerziellen oder Open-Source-Plattformen zu unterstützen, aber die Betriebsteams können erhebliche Vorteile erzielen, wenn sie ihre Infrastruktur als Code konfigurieren.
Ein weiteres Beispiel ist die Unterstützung großer datenwissenschaftlicher Teams, die Modelle testen, Datenbanken aufbauen und neue Datenquellen integrieren. Die Standardisierung der Infrastruktur für Data-Science-Teams ermöglicht es, die Rechnerkapazität entsprechend ihren Bedürfnissen zu erhöhen und anzupassen.
Wenn die Infrastruktur im Mittelpunkt steht, ist die Wahl einer Automatisierungsplattform zwischen Chef, Puppet, Ansible oder anderen eine wichtige Entscheidung. Ebenso wichtig ist es, festzustellen, ob und wie containerisierte Workloads und Services Vorteile bieten und ob Kubernetes, Docker oder andere Technologien eingesetzt werden.
Was ist AIops und wann sollte man diese Priorität berücksichtigen?
Angenommen, Sie betreiben bereits Anwendungen in einer privaten oder öffentlichen Cloud wie AWS oder Azure und verfügen über stabile Umgebungen, die sich nicht häufig ändern. Es könnte wenig Motivation geben, diese Umgebungen mit IaC wieder aufzubauen. Auch wenn Anwendungen nur selten eingesetzt werden und nur kleine Support- und Wartungsprobleme die agilen Entwicklungsrückstände füllen, kann die Investition in CI/CD nur marginale Vorteile bringen.
Ein dritter Weg zu Devops besteht darin, das Niveau der Überwachung zu erhöhen und maschinelles Lernen zu nutzen, um die Reaktion auf Vorfälle zu unterstützen, die heute häufiger als AIops bekannt werden. Dieser Weg zu Devops kann für eine bessere Unterstützung instabiler Anwendungen, Multicloud-Umgebungen oder bei Überflutung von Betriebsteams mit Systemwarnungen, die von vielen Überwachungstools verwaltet werden, am wichtigsten sein.
AIops-Plattformen, einschließlich BigPanda und Splunk, sind so konzipiert, dass sie Daten aus Protokolldateien und mehreren Überwachungsplattformen aggregieren, die Daten mithilfe von maschinellem Lernen verarbeiten und Vorfälle an die richtigen Parteien weiterleiten.
AIops können Ingenieurteams dabei unterstützen, ihr MTTR zu verbessern und Entwickler dabei unterstützen, die Ursachen von Anwendungsproblemen zu ermitteln. Eine AIops-Lösung kann die Daten bereitstellen, um zu priorisieren, wo technische Schulden zu behandeln sind und ob Anwendungen, die Wachstums- oder Stabilitätsprobleme haben, neu zu platzieren sind.
Die beste Zeit, um ein Devops-Programm zu starten
Timing ist alles, besonders wenn es um Investitionen in Technologiepraktiken und -plattformen geht. Devops Investitionen können nicht einfach unter dem Radar getätigt werden, daher ist das Bestimmen der Prioritäten und des Zeitpunkts unerlässlich, um organisatorische Unterstützung zu erhalten. Hier sind einige Gelegenheiten, um zu erwägen, Devops zu priorisieren oder Praktiken in einer bestehenden Geschäftsinitiative zu bündeln:
- Cloud-Migrationen sind eine gute Gelegenheit, in IaC und Container zu investieren.
- Wenn ein Entwicklungsteam über neue Architekturen nachdenkt, ist die Automatisierung des IaC und die anschließende Konfiguration von CI/CD am besten in Betracht zu ziehen, nachdem alle Proof of Concept abgeschlossen sind, aber bevor die Entwicklung beginnt.
- Unternehmensführer sind besorgt über die Stabilität von IT-Systemen, oder bestimmte Anwendungen werden zunehmend genutzt.
Wo und wann auch immer Sie beginnen, denken Sie daran, dass es nicht ausreicht, die Plattformen und Praktiken zu instrumentalisieren, um Geschäftsergebnisse zu erzielen und KPIs zu verbessern. Der Kulturwandel muss eine Priorität sein, damit Entwickler, Ingenieure und Technologieführer bei der Implementierung zusammenarbeiten und echte Auswirkungen auf das Unternehmen und die Endbenutzer erzielen.
*Isaac Sacolick ist der Autor von „Driving Digital: The Leader’s Guide to Business Transformation through Technology“, das viele Praktiken wie Agile, Devops und Datenwissenschaft abdeckt, die für erfolgreiche digitale Transformationsprogramme entscheidend sind. Sacolick ist ein anerkannter Top-Social-CIO, ein langjähriger Blogger bei Social, Agile and Transformation und CIO.com sowie Präsident von StarCIO.
Be the first to comment