Für den Aufbau und den Betrieb von größeren Software-Systemen ist es erforderlich, die Tätigkeiten der Installation und der Konfiguration zu automatisieren. Dies dient nicht nur der Beschleunigung repetitiver Schritte, wenn die Anzahl der Komponenten und Systeme groß wird. Der Vorteil, über längere Zeiträume Installation und Konfiguration reproduzierbar vorzuhalten, sollte mit Hinweis auf eventuelle Audits oder auch zu Zwecken der Desaster Recovery nicht unterschätzt werden.
Installation- und Konfigurations-Management
Abhängig vom Anwendungszweck kommen verschiedene Tools zum Einsatz. Zur Automatisierung repetitiver Prozess-Abläufe, gegebenenfalls absolut geordnet, haben wir mit dem Tool Ansible gute Erfahrungen gemacht. Liegt der Schwerpunkt demgegenüber eher auf dem Herstellen und Überwachen von Zuständen sowie einer automatischen Wiederangleichung von Ist- zu Soll im Falle ungewollter Veränderungen empfehlen wir Puppet, weniger Chef, beide jedoch eher nicht im Fall eines Neu-Aufbaus, sondern eher als Wartung eines bestehenden Systems.
Orchestrierung
Für den Betrieb von Software strebt man seit einigen Jahren im Cloud- oder Cloud-ähnlichen Ansatz an, von Details zu abstrahieren und lediglich zu fordern, daß eine Komponente „irgendwo“ über das Netzwerk adressier- und nutzbar läuft. Damit einher geht die Abkehr von der konkreten Einzel-Installation (pet) hin zu redundant replizierten Instanzen mit einem gewissen Fehler-Budget (cattle).
Dies wird in-cloud und on-premises meist durch OCI-Container und Kubernetes oder OpenShift implementiert. Container-paketiert kann Software ausgesprochen schnell ausgebracht werden – das limitierende Element sind hier die Leistungsfähigkeit des Netzwerkes und die Zeit, die die Software benötigt, zu starten. Damit der konkrete Ort der Installation un- oder weniger wichtig wird, werden Rechner-Instanzen unter die Verwaltung einer Cluster-Software, gestellt. Auf einem so gebildeten Cluster kann Software einfach und schnell ausgebracht werden, wobei die Cluster-Software Mechanismen zur Replikation/Redundanz und zum Lebenszyklus des Deployments bereitstellt.
Wir verfügen über umfangreiche und langjährige Erfahrung im Design und Betrieb solcher Systeme sowie in der Migration von Bestands-Software. Für einen Neu-Aufbaut empfehlen wir meist Kubernetes.