Die Modernisierung des Infrastrukturbetriebs steht auf der Tagesordnung jedes Unternehmens. Strategien wie Infrastructure-as-Code (IaC) und das Erreichen eines hohen Automatisierungsgrades untermauern dies. Der Weg zu einer erfolgreichen Automatisierung muss jedoch die Menschen einbeziehen, deren Arbeitsmethoden sich radikal verändern.
Mit Code arbeiten
Automation umfasst die Erstellung von skriptbasierten Aktionen und Konfigurationen, wie Code und Playbooks. Dies erfordert Tools wie Terraform, Ansible oder Puppet, die zunächst lokal oder auf Dateiservern gespeichert und verwaltet werden.
In kleinen Umgebungen und Teams funktioniert die Zusammenarbeit und der Informationsaustausch auf diese Weise in der Regel. Die Zusammenarbeit auf lokaler Ebene stößt jedoch an ihre Grenzen, insbesondere wenn auf größere Teams und Umgebungen skaliert werden muss.
Hier kommen Tools aus der Softwareentwicklung und der Open-Source-Community ins Spiel. Diese Tools sind seit Jahrzehnten so konzipiert, dass sie sich für viele Teams eignen, auch für global verteilte. Sie verwenden Code-Editoren und integrierte Entwicklungsumgebungen (Integrated Development Environments - IDE), um effizient zu arbeiten und den Code in einem Versionsverwaltungssystem – in der Regel Git – zu speichern. Darüber hinaus werden Open-Source-Artefakte über ein Repository bereitgestellt.
Spätestens jetzt haben Systemadministratoren und Team-Leiter in Bereichen wie Datacenter, Security und Netzwerke viele Fragezeichen in den Augen oder sogar die Aufmerksamkeit anderweitig fokussiert. In den Betriebsteams sind Begriffe wie IDE oder Git und die damit verbundenen Arbeitsweisen weitgehend unbekannt. Das führt bei der Einführung von Automatisierung zu Herausforderungen bei der Anpassung von Arbeitsweisen und dem Erlernen neuer Werkzeuge.
Automation automatisiert nicht automatisch
Der Erwerb einer Automatisierungslösung oder der Kauf von Software allein führt noch nicht zu einer Automatisierung. Eine Automatisierungslösung muss in ein Ökosystem anderer Tools integriert werden, das idealerweise von einem zentralen Team verwaltet wird. Auf diese Weise können sich Fachteams auf ihre Aufgabe/ihr Fachgebiet konzentrieren und vorhandene Vorlagen sowie bewährte Verfahren, die vom zentralen Team bereitgestellt werden, wiederverwenden. Das führt dazu, dass die Arbeit schneller und mit besserer Qualität erledigt werden kann.
Darüber hinaus müssen sich die einzelnen Mitarbeiter mit diesen neuen Tools und Prozessen vertraut machen. Dies bedeutet, dass sie das hohe Fachwissen ihrer Kollegen in ihren Spezialgebieten und ihr technisches Wissen bei der Erstellung und Nutzung von Automatisierung nutzen müssen.
Die Automatisierung bietet zahlreiche Vorteile. So kann beispielsweise die Sicherheit durch die Automatisierung des Patch- und Release-Managements und den Import der neuesten Versionen von Softwarepaketen und Artefakten erheblich verbessert werden. Dies erfordert jedoch die konsequente Umsetzung der Automatisierung, einschließlich der Anpassung von Freigabeprozessen wie dem Changemanagement.
Mehr als eine Schulung
Von Systemadministratoren zu erwarten, dass sie zu Entwicklern werden, die ihre Domäne (teilweise) automatisieren, kann nicht mit nur durch eine einzelne Schulung erreicht werden. Die nachhaltige Verankerung von Automatisierung in Teams beginnt mit der Anpassung bestehender Arbeitsabläufe und der Integration von Konzepten wie der zentralen Speicherung des gesamten Codes und der Automatisierungsartefakte in Git.
Um dies zu erreichen, müssen sowohl die Regeln für die Zusammenarbeit in Git als auch Best Practices koordiniert und festgelegt werden. Automatisierungslösungen verwenden Open-Source-Artefakte, aber wie werden diese Artefakte sicher bereitgestellt und wie fließen sie in Automatisierungsprozesse und neue Versionen ein? Wichtig ist es zudem, automatisierte Tests zu koordinieren und zu entscheiden, wie eine schnelle und automatisierte Freigabe in die Produktion gesteuert werden soll.
All dies zeigt, wie komplex die Automatisierung der IT eines Unternehmens ist.
Ein Enablement-Programm
Neben der Auswahl der Technologiebausteine muss eine Automatisierungsstrategie durch ein Enablement-Programm unterstützt werden. Je nach Ausgangslage des Unternehmens kann ein solches Programm von einer mehrmonatigen Einarbeitungsphase für die Teams bis hin zur Entwicklung einer selbstorganisierten Community of Practice (CoP) reichen.
Durch ein solches Programm erhalten die Mitarbeiter eine schrittweise, modulare Schulung in den Technologien und Best Practices für die Automatisierung, verbunden mit Praxisbeispielen aus ihren Fachgebieten. Darüber hinaus wird eine Plattform für Austausch und gemeinsames Lernen geschaffen, auf der auch spezifische Automatisierungsmodule ausgetauscht und gemeinsam verbessert werden können.
Computacenter hat diese Enablement-Programme bei vielen Kunden umgesetzt und so eine nachhaltige Automatisierungskultur gefördert. Wir haben dies um Empfehlungen ergänzt, die Methoden wie DevOps oder Platform-Engineering basieren.
Die Grundlage für solche Transformationen ist die Abkehr von der Konsole und der grafischen Administrationssoberfläche und stattdessen die Verwendung der IDE und von Git-Code-Commits für eine erfolgreiche Automatisierung. Der Aufwand dafür zahlt sich aus, da er zu einer besseren Skalierbarkeit, höherer Sicherheit und reproduzierbaren, konsistenten Ergebnissen führt.