Zwischen den Fronten: Automatisierung als Chance zum Dialog
Dies ist eine kurze Zusammenfassung des Vortrags inklusive audio-visueller Aufzeichnung.
Ausgangslage
Anwendungsumgebungen werden meist manuell und nicht standardisiert eingerichtet. Die Folge sind regelmäßige Fehler bei der Inbetriebnahme der Anwendung in der jeweiligen Betriebsumgebung. Die Korrektur derartiger Fehlersituationen ist in der Regel zeitaufwändig und ressourcenintensiv.

Fehler bei der Verbindung zur Datenbank
Um dem Problem Herr zu werden automatisiert man im Betrieb stets wiederkehrende Aufgaben bereits durch individuell angefertigte Skripte. Doch es gestaltet sich schwierig die Skripte aller Mitarbeiter (inklusive ihrer jeweiligen Versionen) unter Kontrolle zu halten. Mangelnde Dokumentation, fehlende Namenskonventionen und unzureichende Disziplin bei der Ablage der Dateien an einer für alle zugänglichen Stelle machen einen vollständigen Überblick über die bestehenden Helfer schier unmöglich. Im schlimmsten Fall verwenden verschiedene Mitarbeiter ihre persönlich favorisierte Skriptsprache, wodurch die Programme für andere Kollegen schwer lesbar und damit nicht verwendbar werden.

Ansammlung von Skripten unterschiedlicher Art ohne klare Namesstruktur
Ein Skript kann zudem nur lokal agieren und kann sich keinen Zustand einer Installations- oder Konfigurationsaktivität merken, wenn es einmal beendet wurde. Längerfristig gespeicherte Protokollierung ist in Form von Log-Dateien vielleicht vorhanden aber nur schwer lesbar und ohne Verknüpfungen zu anderen Aktionen. Der Zusammenhang zwischen den Bereitstellungen einzelner Komponenten einer Umgebung geht verloren.
Ein großer und oft unterschätzter Schwachpunkt sind zudem die Übergabepunkte von Einstellungsparametern. Ist eine Datenbank eingerichtet braucht die Anwendung trotzdem noch einmal den Benutzer und den Datenbankport. Sind die Verantwortlichkeiten für Datenbank und Anwendung in unterschiedlichen Abteilungen angesiedelt werden die Parameter per Laufzettel oder per E-Mail an den Verantwortlichen weitergegeben. Übertragungs- oder Tippfehler sind vorprogrammiert.

Fehler bei der Übertragung des Benutzernamens.
Am Ende sind alle nur noch damit beschäftigt Fehler zu suchen und zu beheben anstatt die IT fit zu machen für das, was morgen kommen wird.
Lösungsansatz
Aus unserer Sicht gibt es nur eine Lösung dem Problem Herr zu werden: Die Bereitstellung einer Umgebung muss mit einem Werkzeug automatisiert werden. Idealerweise deckt das Werkzeug alle Bereiche der IT ab und standardisiert somit den Umgang mit neuen und bestehenden Anwendungsumgebungen.
Natürlich gibt es entsprechende Werkzeuge bereits am Markt, die sich aber in ihren Ansätzen grundlegend unterscheiden. Unabhängig der konkreten Problemstellung sollte ein Automatisierungswerkzeug immer folgende Eigenschaften aufweisen.
Plattformunabhängigkeit
Systemlandschaften sind über die Jahre gewachsen um den sich ständig ändernden Anforderungen eines Marktes oder Unternehmens zu genügen. Aus diesem Grunde sind sie sehr heterogen aufgebaut, was die verwendeten Betriebssysteme und Plattformen mit einschließt. Für den konsequenten Einsatz in allen Unternehmensbereichen muss das Automatisierungswerkzeug entsprechend plattformunabhängig sein und die gängigsten Betriebssysteme unterstützen.
Nachvollziehbarkeit
Bei der Identifizierung von Konfigurationsfehlern ist die Nachvollziehbarkeit besonders entscheidend. Zudem achten viele Unternehmen (z.B. im Bankensektor) stark auf die Einhaltung der Compliance-Anforderungen. Durch die Protokollierung aller im Werkzeug ausgeführten Aktionen ist stets sichtbar, welcher Mitarbeiter wann und auf welchem System eine Änderung durchgeführt hat. Darüber hinaus werden die Text- und Fehlerausgaben der einzelnen Programmaufrufe zentral und direkt am jeweiligen Aufruf protokolliert. Hierdurch entfällt die mühsame Suche nach den benötigten Informationen in verteilten und von mehreren Prozessen gemeinsam genutzten Logdateien.
Rechtemanagement
Ein fein justierbares Rechtemanagement sichert das System gegen unbefugte Verwendung der Automatisierungslogik ab. Bestehende Abteilungs- und Kompetenzstrukturen müssen abbildbar sein. So kann beispielsweise ein Auszubildender trotz besonders eingeschränkter Zugriffsrechte Hilfsaufgaben auf einem System ausführen jedoch keine neue Umgebung bereitstellen.
Objektorientierung
Konfigurationsparameter der Installation oder Abhängigkeiten zwischen den Softwarekomponenten sollen im Werkzeug objektorientiert gespeichert werden. Dies ermöglicht das Wiederverwenden von Konfigurationsparametern bei der späteren Installation um Übertragungsfehler zu vermeiden. Auch die Ausführung von Aktionen auf bereits bestehenden Umgebungskomponenten wird durch die Objektorientierung möglich. Das Starten oder Stoppen eines Anwendungsservers oder das Leeren von Logdateien einer Anwendung können somit ebenfalls über das Werkzeug erfolgen.
Reproduzierbarkeit und Flexiblität
Die werkzeuggestützte Automatisierung erlaubt es, gleichartige Anwendungsumgebungen reproduzieren zu können. Für die gewollten Unterschiede zwischen Entwicklungs- und Produktivumgebung (Loglevel, Cluster, Loadbalancer) muss jedoch gleichzeitig eine entsprechende Flexibilität in der Ausführung bzw. Parametrisierung möglich sein.
Benachrichtigung
In den Installationsablauf integrierte Benachrichtigungen ermöglichen zeitnahe Mitteilungen über abgeschlossene Umgebungsinstallationen und Konfigurationsänderungen für betroffene Mitarbeiter. Darüber hinaus gehende Events erlauben zudem die Einbindung von Drittsystemen für weiterführende Prozessaktivitäten.
Next Generation IT Service Management – Live
Leider ist das Video nicht von einer optimalen Position aus aufgenommen (der Saal war gut gefüllt) und Ausleuchtung/Lautstärke ist dementsprechend keine Studioqualität.
Fazit
Wir haben unseren Vortrag bewusst unter das Schlagwort ‚Dialog‘ gestellt. Der Kern der DevOps-Bewegung besteht aus Kommunikation. Unsere Erfahrungen zeigen, dass gerade die Kommunikation zwischen den Domänen Betrieb und Entwicklung ausgebaut werden kann. An vielen Stellen profitieren beide Parteien vom Dialog mit der ‚Gegenseite‘. Denn nur wer die Probleme des jeweils Anderen versteht kann mit neuen Ideen den Weg zu einem reibungslosen Betrieb einer Anwendung ebnen.
Aktuelle Beiträge

