Vor- und Nachteile der Einstellung eines DevOps-Workflows?


9

Ich versuche zu bewerten, ob es eine gute Idee ist, von einem Workflow im Devops-Stil zu den traditionellen Dev-Then-Ops überzugehen (nicht sicher, wie Sie das nennen).

Wir sind eine kleine 5-Personen-Abteilung, die in einem traditionellen Medienunternehmen (z. B. ohne Software) mit 4000 Mitarbeitern versteckt ist. Vor zwei Jahren haben wir begonnen, Software zu entwickeln, damit unsere Abteilung unsere Produktion erheblich steigern kann. Wir waren ziemlich erfolgreich und das größere Unternehmen beginnt, auf sich aufmerksam zu machen. Bisher waren wir allein verantwortlich für das Design, die Entwicklung und die Bereitstellung einer AWS-Microservice-Plattform mit ~ 10 Diensten. Unser Team identifiziert sich nicht als DevOps, aber ohne Frage leben wir das DevOps-Leben, wobei jeder Entwickler sowohl mit dem Code als auch mit dem System, auf dem er ausgeführt wird, bestens vertraut ist.

Eine der Fragen, mit denen wir in Kürze konfrontiert werden, ist, welche "Effizienz" zwischen uns und der IT-Abteilung unserer Muttergesellschaft geteilt werden. Unser Projektverantwortlicher bevorzugt normalerweise das Outsourcing gegenüber dem internen Lernen. In unserem Fall bedeutet diese Effizienz wahrscheinlich, dass so viel IT-Arbeit wie möglich von unserem Teller kommt. Derzeit würde ich sagen, dass unser Team eine 70/30% ige Aufteilung zwischen Erfahrung im Codieren und Infrastruktur hat. Die IT-Abteilung befindet sich fest im IT-Bereich, ohne sichtbaren Übergang zur Softwareentwicklung.

Unser Projektbesitzer (eine nicht technische Person) hofft, dass wir durch die Übergabe so viel Arbeit wie möglich an das IT-Team eine Produktivitätssteigerung von ~ 1: 1 für jede Stunde Betriebsarbeit erzielen, die wir verlieren. Ich bin allerdings skeptisch. Unser Produkt befindet sich noch in der Vor-Beta-Phase (obwohl es bereits ein bedeutendes Geschäftsgut ist). Aufgrund unserer begrenzten Erfahrung mit der IT-Abteilung kommt es normalerweise zu erheblichen Verzögerungen bei einfachen Änderungen der Berechtigungen für das Dateisystem.

Im Moment wäre meine ideale Lösung, dass die IT-Abteilung uns "adoptiert" und es uns ermöglicht, unsere eigene Arbeit weiter zu implementieren und gleichzeitig sicherzustellen, dass wir die Standards und Anforderungen des IT-Büros erfüllen. Ich bin mir nicht sicher, wie realistisch das ist. Außerdem ist es fast der umgekehrte Ansatz, den unser Projektbesitzer befürwortet, da kurzfristig zusätzliche Betriebsarbeiten hinzukommen würden.

Was sind in unserer Situation die wahrscheinlichen Vor- und Nachteile eines Verbleibs beim DevOps-Ansatz im Vergleich zur Übergabe der IT?


Ich denke, Sie haben bereits eine korrekte Vorstellung von den Konsequenzen, die sehr persönlich und unternehmensbezogen sind. Sicher ist, dass die Arbeitslast nicht 1: 1 übertragen wird. Für jede übertragene Stunde haben Sie wahrscheinlich einen Teil davon, um das Ops-Team beim Debuggen und beim Behandeln von Verzögerungen zu unterstützen ... (dies ist keine wirkliche Antwort, also nur als Kommentar
hinterlassen

Antworten:


10

Das ist keine gute Idee.

Nach meiner Erfahrung werden Sie die Nachteile von beiden gewinnen, während projizierte Vorteile irgendwie nicht eintreten werden.

Aufgeschlüsselt:

  1. Sie werden an Geschwindigkeit verlieren.
    Die IT entspricht ihrem eigenen Standard. Die neue Aufgabe (für sie) folgt der gleichen "trägen" Vorlage, die ihre gesamte Arbeit jetzt hat. Seien Sie darauf vorbereitet, dass sie es herausfordernd finden - also noch weniger Geschwindigkeit als einfache Standardaktionen.
  2. Sie können nicht auslagern.
    Die IT wird sich bei jeder einzelnen Anomalie auf euch stützen. Sie werden sich bemühen, einen Mann auf den neuesten Stand zu bringen - und als nächstes werden Sie sich wiederholen, weil bei der folgenden Aufgabe / dem folgenden Problem / dem folgenden Tag wieder ein neuer Mann anwesend sein wird.
  3. Dokumentation ist erforderlich, hilft aber nicht.
    Das Verhalten der Vorlagen besteht wiederum darin, dass kurze Handbücher nicht jede Anomalie erkennen und gründliche Texte nicht zu lang gelesen werden. Jede Investition hier ist also ein Verlust, ebenso wie der enorme Aufwand, der erforderlich ist, um Verbesserungen zu implementieren, damit Ihre Tools in Schrumpffolie verpackt werden.

Last but not least werden sich alle Probleme auf euch auswirken. Teer, Tarbrush-Prinzip.

Wenn das oben Genannte zynisch klingt, fürchte ich, ich war dort. Wiederholt.

Was ist stattdessen zu tun?

Gehen Sie in der IT-Abteilung einkaufen, suchen Sie sich einen nützlichen Kandidaten und lassen Sie diesen Kerl "ausgeliehen", um Ihre Arbeitsbelastung zu verringern.


6

Viele der Antworten finden Sie im Ergebnis der DevOps-Umfrage, die Sie vom Produktbesitzer lesen lassen sollten. Dies ist ein Dokument, das speziell für Geschäftsleute mit wenig technischem Wissen geschrieben wurde, die in den Begriffen sprechen, die er verstehen sollte.

Im Durchschnitt benötigen Sie 1 zusätzlichen Entwickler pro 4 Personen, um den gleichen Grad an Funktionsentwicklung beizubehalten (38% gegenüber 49% der für neue Arbeiten aufgewendeten Zeit). Ihre durchschnittliche Zeit, um sich von einem Fehler zu erholen, sinkt bis zu 25 Mal. Ihre Arbeit wird 20% weniger Spaß machen und Sie werden Ihre Arbeit mit 40% Wahrscheinlichkeit einem Freund empfehlen. Nur diese drei Tatsachen sollten ausreichen.


4

Was Sie verlieren, wenn Sie sich in die IT-Organisation einfügen, ist der "Dev" -Teil Ihres kleinen DevOps-Teams. Wenn Teams in künstliche Rollen von NetOps, SysOps und Dev unterteilt werden, treten die folgenden Probleme auf:

  1. Unnötige Bürokratie und Isolation - Um etwas zu tun, müssen die Entwickler ein Ticket an die IT senden und auf die Implementierung warten. Sie können es nicht mehr selbst implementieren und damit interagieren - bis einschließlich ihrer Dev- und QA-Instanzen, wodurch die Infrastruktur, die sie codieren können, eingeschränkt wird. Sie stecken an der VM-Barriere fest, anstatt auf dem gesamten Stapel codieren zu können. Wenn das, was sie an die IT senden, wie DevOps-Code aussieht, sind sie nicht in der Lage, damit umzugehen, und kehren möglicherweise zu manuellen Bereitstellungen zurück.
  2. Vernachlässigung - Alternativ können sie es einfach so bereitstellen, wie es ist, und dann das Biest vernachlässigen, weil sie nicht wissen, wie sie damit interagieren sollen - und sie sind keine Entwickler, daher ist Code nicht ihr Problem.
  3. Ausfälle - Einer der oft übersehenen Vorteile von DevOps ist seine programmatische Natur. Sicher, es kann länger dauern, diesen Server bereitzustellen, indem er als Code behandelt wird, aber dies automatisiert menschliche Fehler. Die Art und Weise, wie es in die Entwicklung ging, ist die Art und Weise, wie es in die Qualitätssicherung / den Test geht, ist die Art und Weise, wie es in die Produktentwicklung geht, wodurch Ausfälle reduziert werden. Wenn Entwickler den Zugriff auf die Netzwerkgeräte verlieren, die sie für die Bereitstellung ihres Dienstes oder der Computerinfrastruktur benötigen, dauert dies nicht nur länger, sondern führt auch fehlbarere Menschen ein, was zu mehr Ausfällen führt.
  4. Dokumentation - In gewisser Hinsicht ist DevOps-Code selbstdokumentierend. Sie wissen, wie der Server erstellt und bereitgestellt wurde, da der Code dies anzeigt. In 5 Jahren, wenn es Zeit für ein Upgrade auf CentOS 8 oder was auch immer ist, wird niemand mehr wissen, wie Ihre Anwendung bereitgestellt wird - auch nicht auf Netzwerk-, Speicher-, Überwachungs- und Sicherungsebene.

Kurz gesagt, Sie sollten Ihrem Projektbesitzer vorschlagen, sich die Zeit zu nehmen, um The Mythical Man-Month zu lesen, um ihn von der Vorstellung abzubringen, dass Sie eine 1: 1-Beziehung in Bezug auf Produktivität und The Phoenix Project sehen werden, das ein guter Roman ist (und unterhaltsame) Darstellung dessen, was durch die Verwendung von DevOps in nichttechnischer Sprache für nichttechnische Personen gewonnen und verloren wird. Wenn der Projektbesitzer irgendeine Art von Pendelverkehr hat, ist ein Hörbuch von The Phoenix Project verfügbar.


3

Ich würde vorschlagen, dass Sie einen Teil des IT-Teams übernehmen und es gründlich in das neue System schulen.

Sobald sie das System vollständig verstanden haben, ist es sinnvoll, es an sie auszulagern.

Andernfalls werden Sie zu einem Support-Center für IT - und verbringen viel Zeit mit der Brandbekämpfung, um die Feinheiten des neuen Systems kennenzulernen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.