Never touch a running system!?

Heute mal ein ganz allgemeiner Beitrag basierend aus den alltäglichen Erfahrungen als IT-Spezi. Sicher hat jeder den Spruch schon einmal gehört oder auch selbst schon angewendet. „Never touch a running system!“.

So verheißt der gut gemeinte Rat doch, dass wenn man nichts ändert auch nichts kaputt gehen kann!? Oder…?
Tatsächlich gibt es Systeme (allgemein: Objekte die miteinander in Beziehung stehen) bei denen dieser Leitspruch durchaus seine Berechtigung hat. Meiner Meinung jedoch immer nur dann, wenn das System bis zum Ende seines Lebenszyklus auch keine funktionalen Änderungen erfahren soll und es komplett in sich gekapselt ist, d.h. auch keine Änderungen an den Schnittstellen oder zu Grunde liegenden Schichten durchgeführt werden (müssen). Etwas weniger abstrakt, am Beispiel einer Taschenuhr. Mal abgesehen von einem mechanischen Defekt funktioniert die Taschenuhr so wie sie ist, sie steckt in einem Gehäuse und wenn kein Teil kaputt geht (Batterie und Verschleiß mal ausgenommen) dann tut sie das auch weiterhin. Warum sollte man also hier anfangen Zahnräder auszutauschen?

Übertragen wir das auf IT-Systeme wird es aber ungemein komplexer. Hier haben wir sich ständig ändernde Variablen. Manche davon müssen wir ändern weil Sie z.B. Sicherheitslücken stopfen oder Funktionen erweitern. Das kann im Betriebssystem erfolgen oder auch auf anderen Schichten wie der Storage, Virtualisierung oder dem Netzwerk (um nur ein paar zu nennen). Und diese haben wiederum Bezug und Abhängigkeiten zu über- oder untergeordneten Schichten. Z.B. Sicherheits- oder Funktionspatche im Betriebssystem erfordern bestimmte BIOS-Features oder Versionen, Firmwares aus Netzwerkswitchen die eventuell wieder neuere Netzwerkkartentreiber erfordern etc. Man sieht hier also deutlich, dass die meisten IT-Systeme viel zu verzahnt sind als dass man sagen könnte „Lassen wir einfach alles so die nächsten 5 Jahre laufen“. Denn allein im Betriebssystem oder der Applikationsebene (nehmen wir z.B. mal Windows Server und MS-Exchange) bekommen wir ständig neue Updates geliefert und sollten diese auch unbedingt einspielen. Es sei denn wir wollen mit allen seit Release bekannten Bugs und Sicherheitslücken leben – bitte nicht 🙂 Lassen wir jetzt also die zu Grunde liegenden Schichten derart veralten, dann haben wir Teile im System stark verändert und die Kluft der Unterschiede wird hier immer größer. Von „Never touch“ kann hier also garnicht die Rede sein, zumindest nicht im Bezug aufs ganze System sondern nur auf einzelne Schichten/Komponenten. Wenn z.B. der Netzwerkkartentreiber 5 Jahre alt ist aber die Applikation auf dem Stand von letzter Woche. Das ist eher kontraproduktiv!

Die Erfahrung aus der Praxis gibt mir hier recht. Wie oft habe ich erlebt, dass Kunden jahrelang keine Treiber/Firmwareupdates/Update eingespielt haben eben aufgrund dieser Argumentation (in Wirklichkeit ist es oft auch nur Angst oder mangelnde Motivation). Das Ergebnis war dann bei Problemfällen oft, dass man zuerst Stunden und Tage ins Troubleshooting versenkt hat um dann zu erfahren, dass ein solches Update eben jenes Problem schon längst gelöst hätte. Weil es eben doch Änderungen am System gab die sich nicht vermieden ließen und weitere Änderungen hätten zur Folge haben müssen. Das Konzept „Never touch a running System“ lässt sich eben nicht so vorschnell und verallgemeinernd auf alle Systeme übertragen. Das mag im Einzelfall vielleicht mal berechtigt sein, aber ich gebe zu, das sieht man wirklich selten. Sollte irgendjemand noch einen uraltes Serversystem mit z.B. Windows 3.1/DOS irgendwo unterm Tisch laufen haben, welches für die Abrechnung der Gehälter oder Kundenrechnungen verantwortlich ist dann darf er gern die Finger davon lassen, sollte sich aber überlegen was der eigentliche Grund dafür ist diese Kiste nicht mehr anzufassen! 😉

Mein Fazit daraus: Stay current! (was alle Updates innerhalb der Schichten im System betrifft). Macht nicht nur Eure Applikationsupdates sondern sorgt auch dafür, dass angrenzende und abhängige Systeme auf dem neusten Stand sind. Egal ob Firmwares, Treiber, Patche, CU’s auf Serverhardware-, Applikationsebene, Betriebssystem, Storage, Firewall, Virtualisierung, Netzwerk usw. Es erspart in Summe mehr Arbeit als es das Risiko macht  mit einem Update etwas zu schrotten. Fehlersuche über Schichtgrenzen hinweg ist der größere Albtraum den man immernoch angehen kann wenn alle Elemente im System up-to-date sind.

Im Zweifelsfalle geben die Hersteller ja auch Hinweise ob Updates nur dann eingespielt werden sollen wenn ein konkretes Problem existiert, diese Updates klammere ich jetzt mal aus. Andererseits sollte die Devise gelten, was nicht aus gutem Grund ausgeschlossen ist, sollte installiert werden.

In diesem Sinne, happy patching and stay current!

This entry was posted in Allgemeines. Bookmark the permalink.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.