Konfigurationsdrift ist ein wichtiges Thema für alle IAAC-Entwickler da draußen. In diesem Beitrag erfahren Sie mehr über die Verwaltung von Konfigurationsabweichungen, ihre Bedeutung, ihre Ursachen und mögliche Lösungen.
Was ist Konfigurationsdrift?
Die Eigentümer von Anwendungen müssen ihre Anwendungen und die zugrunde liegende Infrastruktur im Laufe der Zeit ändern, um das Kundenerlebnis kontinuierlich zu verbessern. Diese Kunden können sowohl innerhalb als auch außerhalb des Unternehmens sein.
Die Konfiguration der Anwendungen und der Infrastruktur ändert sich im Zuge dieser Aktualisierungen und Änderungen. Diese Änderungen können vorteilhaft sein oder den gehärteten Zustand der Systeme beeinträchtigen. Konfigurationsdrift ist der Begriff für diese Entwicklung.
Wie Konfigurationsdrift funktioniert
Das Potenzial für Konfigurationsabweichungen steigt mit der Komplexität von Softwareproduktions- und -bereitstellungssystemen. Der Code wird in der Regel von der Workstation eines Entwicklers in eine gemeinsame Entwicklungsumgebung, in Test- und QA-Umgebungen und schließlich in Staging- und Produktionsumgebungen übertragen.
Die potenziellen Auswirkungen nehmen zu, je weiter die Drift in der Pipeline fortgeschritten ist. Selbst kleine Abweichungen zwischen einer auf dem Laptop eines Entwicklers installierten Paketversion und der auf einem Testserver installierten Version können die Problembehebung verzögern. In der Regel wird erwartet, dass nur Staging und Produktion eine Kopie der anderen sind. Die Belastung ist groß, da viele Unternehmen täglich mehrmals neuen Code bereitstellen.
Häufige Ursachen für Konfigurationsabweichungen
Mangelnde Kommunikation
Manchmal gelingt es den Upstream-Teams nicht, mit den Downstream-Partnern über die von ihnen vorgenommenen Änderungen zu kommunizieren, was zum Zusammenbruch des gesamten Downstream-Systems führt.
Hotfixes
Hotfixes sind Änderungen am Code, die vorgenommen werden, um ein kritisches Problem zu beheben, das nicht bis zur nächsten geplanten Aktualisierung der Anwendung warten kann. Manchmal versäumen es die Techniker, die an der Lösung des Problems arbeiten, Änderungen vorzunehmen oder denselben Fix für andere Umgebungen in der Pipeline zu dokumentieren, was zu einem Abdriften führt. Oft lässt sich diese Abweichung durch die Wiedereinführung des ursprünglichen Problems beheben.
Kritische Paket-Updates
Kritische Paketaktualisierungen sind Hotfixes in gewisser Weise ähnlich. Beide werden in einem schnellen Tempo durchgeführt. Der Hauptunterschied besteht darin, dass kritische Paketaktualisierungen in der Hoffnung durchgeführt werden, zukünftige Vorfälle zu vermeiden. Daher können solche Updates auf die gleiche Weise wie Hotfixes eine Drift verursachen.
Fehlende Automatisierung
Durch Automatisierung lässt sich die Gefahr einer Konfigurationsabweichung nicht völlig ausschließen. Sie wird lediglich die Wahrscheinlichkeit verringern.
Bequeme Änderungen
Manchmal sind die von Entwicklern vorgenommenen Änderungen nur vorübergehend. Dies ist beispielsweise der Fall, wenn ein Entwickler ein neues Paket auf einem Testserver installiert, um eine bestimmte Funktionalität zu testen, und dann vergisst, es in den ursprünglichen Zustand zurückzusetzen.
Warum ist Konfigurationsmanagement wichtig?
Einer der Gründe, warum Konfigurationsabweichungen so schädlich sein können, liegt darin, dass sie unentdeckt bleiben können, wenn niemand ständig danach sucht, während sie nach und nach die Basis Ihrer Infrastruktur untergraben, ähnlich wie ein kleines Leck in einem Haus hinter einer Wand.
Wenn die Konfigurationsabweichung entdeckt wird, kostet die Suche nach dem Grund für die Konfigurationsabweichung Zeit, die in einem Notfall eine wertvolle Ressource ist.
In der Softwareentwicklung ist die Drift eine wesentliche Ursache für langsame Release-Zyklen. Sie kann unnötige Mühen verursachen und die Produktivität der Entwickler beeinträchtigen.
Niedrigere Kosten
Wenn Sie ein detailliertes Bild Ihrer IT-Infrastruktur haben, können Sie den Gesamtbetrag, der benötigt wird, senken, indem Sie Duplikate oder eine Überbevorratung aufdecken.
Höhere Produktivität
Cluster mit stabilen und bekannten Konfigurationen ermöglichen die Batch-Verwaltung und den Aufbau einer Infrastruktur. Darüber hinaus wird der Bedarf an der manuellen Verwaltung individueller Einstellungen durch die Begrenzung einzigartiger (oder Snowflake-) Server verringert.
Schnelleres Debugging
Konsistente Konfigurationen ermöglichen es Debugging-Teams, Konfigurationsfehler auszuschließen. Die Teams können sich auf andere mögliche Ursachen konzentrieren und Tickets schneller lösen, da sie nicht nach Konfigurationsunterschieden zwischen Servern, Server-Clustern oder Umgebungen suchen müssen.
Probleme, die durch Konfigurationsabweichungen verursacht werden
Sicherheitsprobleme
Unsichere Konfigurationen sind eine der häufigsten Ursachen für Sicherheitsverstöße. Konfigurationsabweichungen können andere Angriffe und Netzwerkverletzungen wahrscheinlicher machen, selbst wenn Sie mit einer geschützten Konfiguration beginnen.
Ausfallzeiten
Erhebliche Ausfallzeiten können die Folge eines Konfigurationsfehlers sein, der es einem Angreifer ermöglicht, eine DoS-Schwachstelle zu nutzen oder einen wichtigen Server zu kompromittieren. Das ist aber noch nicht alles. Nehmen wir an, Sie ändern die Konfiguration eines Netzwerkgeräts, was sich auf die Leistung auswirkt. Sie können jederzeit zu Ihrer “goldenen Konfiguration” zurückkehren, oder? Es wird viel länger dauern, den Service wiederherzustellen, wenn diese Konfiguration fehlerhaft ist.
Nicht mehr konform
Strenge Sicherheitskontrollen sind für die Einhaltung von Vorschriften wie ISO 27001, PCI-DSS und HIPAA erforderlich. Konfigurationsabweichungen können dazu führen, dass Sie die Vorschriften nicht einhalten, wenn sie nicht gestoppt werden.
Verschlechterte Leistung
Eine Konfiguration ist in der Regel in ihrem optimalen Zustand, wenn sie sich in ihrem vorgesehenen Zustand befindet. Ad-hoc-Änderungen können Netzwerkoptimierungsversuche behindern, indem sie Engpässe und Konflikte verursachen.
Vergeudete Zeit
Die Fehlersuche in einem Netzwerk, das Sie nicht gut verstehen oder das nicht mit Ihrer Netzwerkdokumentation übereinstimmt, kann viel Zeit in Anspruch nehmen. Das bedeutet, dass Konfigurationsabweichungen dazu führen können, dass die IT-Abteilung Probleme beheben muss, die vielleicht gar nicht bestanden hätten oder leichter zu lösen gewesen wären, wenn sich das Netzwerk in seinem vorgesehenen Zustand befunden hätte.
Häufige Fehler, auf die Sie bei der Überwachung der Konfigurationsabweichung achten sollten
In einer perfekten Welt hätten alle Umgebungsserver für Entwickler (Dev/QA/Staging/Prod) die gleichen Konfigurationen. Leider ist das in der “realen” Welt nicht der Fall. In kommerziellen Umgebungen ändern die Eigentümer von Anwendungen häufig die Infrastruktur, wenn neue Funktionen in die Software eingeführt werden.
Die Überwachung der Konfigurationsdrift ist entscheidend, um sicherzustellen, dass die Softwareumgebungen so homogen wie möglich sind. Das Konfigurationsmanagement senkt die Kosten, erhöht die Produktivität und die Zeit für die Fehlersuche und verbessert die Benutzerfreundlichkeit.
Um mit der Überwachung so erfolgreich wie möglich zu sein, müssen Unternehmen Fehler vermeiden, auch wenn sie das Konfigurationsmanagement einsetzen und ihre Konfigurationsdrift überwachen.
Die häufigsten Fehler sind im Folgenden aufgeführt:
Keine CMDB pflegen
Eine Konfigurationsmanagement-Datenbank(CMDB) auf dem neuesten Stand zu halten, ist ein wichtiges Element des Konfigurationsmanagements. Informationen über die Hardware- und Software-Installationen eines Netzwerks können an einem Ort untersucht werden, der von einer Konfigurationsmanagement-Datenbank bereitgestellt wird. Die Daten werden für jede Anlage oder jedes Konfigurationsobjekt erfasst und sorgen für Sichtbarkeit und Transparenz am Arbeitsplatz.
Ohne eine CMDB besteht die Gefahr, dass Unternehmen nicht vollständig verstehen, wie sich die Konfiguration eines Elements auf ein anderes Element auswirkt. Unternehmen riskieren, ihre Infrastruktur und Sicherheit zu beschädigen, ohne die Konsequenzen zu kennen.
CMDBs können schwierig zu verwalten sein, insbesondere wenn die Anzahl der Assets steigt. Eine effektive Organisation und Verwaltung der Datenbank ist jedoch entscheidend für die erfolgreiche Verfolgung von Konfigurationsänderungen und das Verständnis der Infrastruktur.
Kein Plan für die Überwachung der Konfigurationsabweichung
Unternehmen verfügen häufig über umfangreiche, komplizierte Infrastrukturen, die überwacht werden müssen. Es ist wichtig zu bestimmen, welche Komponenten am meisten überwacht werden müssen. Andernfalls kann das Konfigurationsmanagement schnell unüberschaubar und chaotisch werden.
Unternehmen müssen festlegen, welche Anlagen für die Überwachung des Unternehmens und bestimmter Geschäftsbereiche wichtig sind. Die wichtigsten Systeme werden überwacht, was von Einheit zu Einheit und von Branche zu Branche unterschiedlich sein wird.
Keine automatische Überwachung
Unternehmen können die Konfigurationsabweichung auf verschiedene Weise überwachen. Einige Ansätze sind jedoch ausgefeilter und erfolgreicher als andere.
Die manuelle Überwachung der Konfigurationsabweichung ist kostspielig und zeitaufwändig. Die manuelle Überwachung birgt auch die Möglichkeit menschlicher Fehler. Dies ist nicht die beste Methode zur Überwachung der Konfigurationsabweichung, es sei denn, Ihr Unternehmen hat nur eine sehr kleine Infrastruktur.
Die automatische Überwachung ist die am weitesten entwickelte und effizienteste Methode, um Konfigurationen im gewünschten Zustand zu halten. Spezielle Konfigurationsüberwachungssysteme können Konfigurationsabweichungen sofort erkennen und häufig Lösungen anbieten, einschließlich schneller Korrekturen. Dadurch wird gewährleistet, dass die Infrastruktur des Unternehmens so schnell wie möglich und mit minimalen Auswirkungen wieder in den gewünschten Zustand versetzt wird.
Wie man Konfigurationsdrift überwacht:
Es wird deutlich, warum die Erkennung von Configuration Drift ein Hauptanliegen sein sollte, sobald Sie den Schaden erkennen, den sie verursachen kann. Der erste Schritt in diesem Prozess besteht darin, zu wissen, was es zu bewahren gilt und warum es eine Änderung gab, die eine Drift verursacht hat.
Wissen, wonach Sie suchen
Sie können Ihr Unternehmen einteilen, indem Sie die für das Unternehmen als Ganzes und die für die einzelnen Geschäftseinheiten wichtigen Komponenten ermitteln.
Dies ist von Einheit zu Einheit unterschiedlich und kann in stark regulierten Branchen sehr umfangreich sein oder sich nur auf kleinere systemkritische Dateien/Anwendungen konzentrieren. Die Wichtigkeit des Systems bestimmt die Häufigkeit und Ernsthaftigkeit der Überwachungssysteme.
Legen Sie eine Basislinie fest
Aufgrund der verschiedenen Einstellungen wird es immer Abweichungen zwischen einer Produktionsumgebung und den Testphasen geben. Die Baseline zur Überprüfung der Abweichung wird erstellt, indem festgelegt wird, wie jeder Schritt aussehen soll und welche Arten von Abweichungen zulässig sind.
Frühe Testphasen eignen sich möglicherweise besser für eine höhere Drift als eine Einstellung für Benutzerakzeptanztests oder eine Produktionsphase ohne Drift.
Überwachen Sie Ihr System
Der Umfang der erforderlichen Überwachung hängt von der Reife des Unternehmens, seinen aktuellen Systemen, der Ausstattung, der Gesamtzahl der zu prüfenden Konfigurationen und dem erforderlichen Maß an Kontrolle ab. Je nach den Anforderungen und der Einhaltung von Vorschriften kann die Überwachung für jede Einheit innerhalb eines Unternehmens unterschiedlich ausfallen.
Wie Sie die Konfigurationsabweichung verhindern
Die Überwachung muss sicherstellen, dass die Infrastruktur in der richtigen Konfiguration gehalten wird, nachdem eine Baseline von Konfigurationen und zulässigen Lücken definiert wurde. Ohne eine Überwachungsstrategie ist die Erstellung von Konfigurationsplänen und Dokumentationen reine Zeitverschwendung.
Es gibt verschiedene Ansätze zur Überwachung der Konfigurationsabweichung, und viele Unternehmen werden je nach Reifegrad und Compliance-Anforderungen verschiedene Methoden und Tools kombinieren.
Ständige manuelle Überwachung
Einzelne Maschinenkonfigurationen können manuell überprüft und mit einer bekannten Konfigurationsdatei verglichen werden. Aufgrund des menschlichen Aspekts ist dieser Prozess immer noch fehleranfällig und teuer in Bezug auf die Arbeitszeit der Mitarbeiter. Ich sollte nur in geringem Umfang für einige wenige Server-Cluster oder ein Unternehmen mit einer bescheidenen Infrastruktur eingesetzt werden.
Audits
Im Rahmen von Konfigurationsaudits prüft ein Team die Serverkonfigurationen manuell und vergleicht sie mit einem vorgegebenen Modell. Diese Audits können teuer sein, da sie Spezialwissen erfordern, um zu bestimmen, wie ein System aufgebaut sein sollte, und dann eine gründliche Untersuchung aller nicht dokumentierten Möglichkeiten, um zu entscheiden, ob sie beibehalten werden sollten oder nicht.
Das Auditteam nimmt auch notwendige Anpassungen an den Konfigurationsdokumenten vor, die beim nächsten Audit angewendet werden. Audits werden in der Regel für hochwertige oder Compliance-lastige Cluster beibehalten und aus Zeit- und Kostengründen regelmäßig, in der Regel mehrmals pro Jahr, durchgeführt.
Audits garantieren eine konsistente und wiederholbare Serverkonfiguration nach einem vorgegebenen Zeitplan.
Bis zum nächsten Audit werden die Einstellungen jedoch mehr und mehr abdriften und bleiben.
Automatisierte Überwachung in Echtzeit
Die automatisierte Echtzeit-Überwachung ist die ausgefeilteste Methode, um Konfigurationen im gewünschten Zustand zu halten. Dazu müssen Server oder Servergruppen zusammen mit einer Beschreibung ihrer Konfiguration mit Hilfe spezieller Server-Setup-Tools erstellt werden.
Diese Programme verwenden einen leichtgewichtigen Agenten, um die Konfiguration eines Servers innerhalb dieser Gruppe zu überwachen und sie mit der Definition zu vergleichen.
Dieser automatisierte Prozess warnt sofort vor Abweichungen und bietet in der Regel mehrere Möglichkeiten zur Korrektur der Serverabweichung an.
Letzte Worte:
Inkonsistente Konfigurationselemente (CIs) zwischen Computern oder Geräten sind die Hauptursache für Konfigurationsabweichungen. Konfigurationsabweichungen kommen in Rechenzentrumsumgebungen ganz natürlich vor, wenn Software- und Hardwareänderungen spontan vorgenommen werden, ohne dass sie sorgfältig dokumentiert oder nachverfolgt werden.
Viele Ausfälle von Hochverfügbarkeits- und Disaster Recovery-Systemen werden auf Konfigurationsabweichungen zurückgeführt. Administratoren sollten die Netzwerkadressen der Hardwaregeräte sowie die darauf installierten Softwareversionen und die durchgeführten Upgrades genauestens dokumentieren, um die Konfigurationsabweichung zu minimieren.