Durch die moderne Betriebsbrille unterscheiden sich heutzutage Applikation in drei Hauptgruppen: Herden, Haustiere und Gremlins – die ersten beiden werden ganz offiziell auch „Cattle“ und „Pets“ genannt. Die Bezeichnung als Gremlins bezieht sich auf die Figuren aus der US-amerikanischen Horrokömödie „Gremlins – kleine Monster“. Diese Bezeichnung ist eine Erfindung des Autors, wird aber schon noch ihren Weg in den allgemeinen Sprachgebrauch finden – denn leider sind die Gremlins nur allzu real.

 Herden

Herden bestehen aus einer Anzahl gleichförmiger Herdenmitglieder. Diese haben in der Regel keine Namen sondern sind irgendwie durchnummeriert oder tragen generische Namen („5423“, „IK-67534“, „7654dfg-877hgft-lkj“, ….). Jedes Herdenmitglied ist gleich(-artig) und kann daher auch auf die gleiche Weise behandelt werden. Erkrankt ein Herdentier oder zeigt abweichendes Verhalten, wird es ersetzt und eliminiert.

Herden und Herdentiere in der IT können aus unterschiedlichen Bereichen stammen, Beispiele sind (virtuelle) Server, Docker-Container oder auch Build-Pipelines.

Was bedeuten das am Beispiel:

  • Es werden 50 gleiche virtuelle Server aus einem Template generiert und nicht 50 individuell angepasste Einzelserver.
  • Wenn sich ein Server seltsam verhält, wird er nicht untersucht und repariert, sondern weggeschmissen und aus einem Standardtemplate neu erzeugt
  • Pipelines für Spring-Boot-Container sehen alle gleich aus. Möchte man etwas ändern (z.B. einen unnötigen Schritt im Dockerfile entfernen oder eine Laufzeitumgebung updaten), ändert man dies direkt für alle Projekte und nicht für jedes einzelne.
  • Docker-Container sind zustandslos, sie können jederzeit beendet und auf anderer Hardware neu gestartet werden

Wichtig für den DevOps-Operator ist, all die Herdentiere gemeinsam im Griff zu haben – der Schafhirte kann ja auch nicht jedes einzelne Tier anschubsen, sondern steuert die Herde.

Haustiere

Haustiere tragen einen Namen (Bello, Schnurri, Orang-Utan-Klaus, …), werden als Individuum geliebt und brauchen ihre persönlichen Streicheleinheiten. Fährt man in den Urlaub, kümmert man sich um einen Katzensitter, anstatt hinterher (deutlich preisgünstiger) eine neue Katze zu kaufen. Kranke Tiere werden zum Tierarzt gebracht oder gepflegt und nicht (ebenfalls deutlich wirtschaftlicher) sofort ersetzt.

Was für echte Haustiere sehr sympathisch klingt, kann für Besitzer von IT-Haustieren schnell zur Herausforderung werden.

Zunächst einmal ist die Wirtschaftlichkeit von IT-Haustieren deutlich schlechter als bei IT-Herden – untersuchen und reparieren ist aufwändiger, als abreißen und neu starten.

Weiterhin möchten auch die IT-Haustiere individuell gepflegt werden – es ist Spezialwissen für die Eigenschaften des jeweiligen IT-Haustieres nötig (sonst wird man schnell mal gebissen). Hieraus ergibt sich, dass auch nicht jeder jedes Haustier optimal betreuen kann („Mit Kafka kennt sich mein Kollege deutlich besser aus.“).

Gefährlich wird es, wenn es zunehmend immer nur eine Person gibt, die sich mit dem jeweiligen Haustier gut versteht. Indikatoren hierfür sind:

  • Der Entwicklungsserver ohne Standard-Linux, die Java Umgebung darauf wird bei Bedarf per Hand angepasst.
  • Der Solaris-Rechner mit tc-Shell
  • Gleichartige (aber nicht genau gleiche) Deployment-Pipelines, die einzeln, aber nicht an einer zentralen Stelle geändert werden
  • StatefulSets – Docker Container mit Zustand, die nicht ohne Weiteres gestoppt und auf anderer Hardware neu gestartet werden können.

Es bietet sich an, festzuhalten, wie viel Zeit für die individuelle Pflege der IT-Haustiere aufgewendet wird. So wird sichtbar, ob man sich vielleicht doch von dem ein oder anderen Haustier trennen sollte.

Immerhin kann man sich bei den Haustieren noch auf Rahmenparameter verlassen – auch wenn man nicht genau weiß, hinter welchem Ohr die Katze Schnurri am liebsten gekrault wird – wie sie sich allgemein als Katze verhalten wird, ist jedoch bekannt. Weicht dieses Verhalten grob ab, haben wir es mit einem sogenannten Gremlin zu tun.

Gremlins

Für alle, die die 80er verpasst haben, eine kurze Zusammenfassung des Films ‚Gremlins‘:

Eine Familie kauft ein sehr niedliches kleines Fantasie-Kuscheltier namens Gizmo. Dies ist ein echtes Haustier, das sehr individuell behandelt werden muss. Dies zeigt sich besonders darin, dass unbedingt drei Regeln beachtet werden müssen: Kein Licht, nicht nass machen und niemals nach Mitternacht füttern.

Um des Drehbuchs Willen werden schon nach gefühlt 5 Minuten alle drei Regeln verletzt und Gizmo produziert jede Menge kleiner Monster (Gremlins), die die Stadt in Angst und Schrecken versetzen

Diese Gremlins sind nicht nur sehr unterschiedlich, sie verhalten sich auch unvorhersehbar und sind von Natur aus heimtückisch.

IT-Gremlins sind Server, Applikationen oder andere IT-Bestandteile, die wahrscheinlich irgendwann einmal ein liebenswertes Haustier waren und gemocht wurden. Im Laufe der Zeit wurden diese aber immer schwieriger zu bedienen und der Kreis der Personen, die diese Anwendung supporten können, wird immer kleiner. Hier zeigen sich Parallelen zu der Situation aus dem Blogbeitrag über den schwer erziehbaren Sohn, bei dem nur die Super-Nanny helfen kann. Der Haustierbesitzer ist allmählich zum Dompteur geworden und kann auch nicht mehr ohne Weiteres ersetzt werden, denn die Vertretung wird beim kleinsten Fehler nicht nur gebissen, sondern direkt komplett aufgefressen.

Ein Gremlin braucht im Zweifelsfall einen Extra-Aufpasser. Dieser weiß aus langer und schmerzlicher Erfahrung genau, was der Gremlin als nächstes vorhat und muss ihm ständig einen Schritt voraus sein, um das Schlimmste zu verhindern.

Tragischerweise waren viele Gremlins einmal liebenswerte Gizmos und haben erst im Laufe der Zeit ihr unberechenbares Wesen entwickelt. Der einstige Schoßhund fällt jetzt harmlose Besucher an und lässt niemand mehr auf das Sofa.

Die Wirtschaftlichkeit von IT-Gremlins ist noch einmal deutlich schlechter als bei den Haustieren. Normale Verhaltensweisen („schreibt lesbare log-Meldungen“, „Stürzt nicht einfach so ab“, …) können nicht mehr als gegeben vorausgesetzt werden.

Das Betriebsrisiko steigt, ebenso wie die Wirtschaftlichkeit sinkt, da man immer einen Extra-Aufpasser parat haben muss. Automatisierte Überwachung? – Wenn das möglich wäre, hätten wir es wahrscheinlich nicht mit einem Gremlin zu tun.

Beispiele für ein Gremlin sind:

  • eine uralte Anwendung, auf die der damalige Entwickler und heutige CIO immer noch sehr stolz ist
  • die hochkomplizierte und -proprietäre Deployment-Pipeline eines etwas kauzigen Entwicklers, die auch nur dieser wirklich versteht.
  • die unternehmenskritische in Excel selbstgeschriebene Buchhaltungssoftware
  • Applikationen, die nur auf dem Mainframe betrieben werden können

Wie wehrt man sich gegen einen Gremlin?

Eigentlich ganz einfach, man muss auch hier nur 3 Regeln beachten (was kann bei 3 einfachen Regeln schon schiefgehen?):

  1. Hol‘ Dir keinen Gremlin ins Haus – auch nicht probeweise, die Viecher sind schlau
  2. Wenn Du bereits einen Gremlin im Haus hast, eliminiere ihn – am besten sofort
  3. Wenn ein Haustier zum Gremlin wird, zähme ihn oder wende Regel 2 an

Um es ganz ehrlich zu sagen, viele Unternehmen versagen schon bei Regel 1 kläglich: Was der Vertreter eines Softwarehauses der Marketingabteilung vorgeführt hat, sah so einfach und überzeugend aus, da kann man schon mal über die Bedenken des Betriebs hinwegsehen. Bedenken machen jedoch häufig nur schlechte Laune – und Bedenkenträger kann keiner leiden.

Bei Regel 2 sieht es auch nicht besser aus, hier genügt ein Begriff: IE6

Wie gerne würde ich berichten, dass zumindest bei Regel 3 vorbildlich gehandelt wird, aber nein: „Die für den Life-Gang nötigte Bestellapplikation läuft nur auf einem inzwischen nicht mehr unterstützen Web-Server? Da kümmern wir uns später drum.“

Unnötig zu sagen, dass an diesem ominösen ‚später‘ keine Ressourcen zur Verfügung stehen und sich auch keiner so recht verantwortlich fühlt.

Die häufigste Lüge nach einem schlechten Date: „Ich melde mich.“, die häufigste Lüge in der IT: „Das machen wir später.“

Was ist nun ein wirksames Mittel gegen den Gremlin? Wie eingangs gesagt: beachtet die Regeln, es ist eigentlich ganz einfach. Eigentlich.

Jetzt teilen auf:

Jetzt kommentieren