Modellbasierte Server-Konfiguration auf TMF/Xtext umgestellt
11. September 2009 – 12:25 pmSeit etwa zwei Jahren wird die IT-Infrastruktur der itemis mithilfe der modellbasierten Server-Konfiguration verwaltet. Vorteil dieser Methode ist, dass aus einer zentralen Übersicht der Server-Landschaft – dem Modell – die Konfigurationsdateien eines jeden Servers generiert werden. Dabei werden auch Abhängigkeiten berücksichtigt, die sich z.B. durch verwendete Dienste auf unterschiedlichen Servern ergeben. Im Modell werden alle Server, deren Hardware und die installierten Dienste eingetragen. Daraus können andere Server Dienste in Anspruch nehmen. Es können aber auch zwecks der zentralen Funktionsüberwachung mittels Nagios oder MRTG die Konfiguration der Überwachungsdienste so generiert werden, dass sie immer dem Realzustand entsprechen. Dazu ist das Modell der Sollzustand, durch das Generieren der Konfiguration und das Deployment wird dieser Sollzustand in den Istzustand überführt. Ein solcher Vorgang dauert ca. eine Minute für das Generieren und bis zu zehn Minuten für das Deployment. Ein weiterer Vorteil ist der einheitliche Qualitätsstandard, der sich durch das Generieren der Konfiguration ergibt.
Die bisherige Variante der modellbasierten Server-Konfiguration benutzte UML2 als Metamodell. Diese Vorgehensweise hat den Nachteil, dass das Modell nur durch ein GUI-Tool bearbeitet werden kann. Änderungen am Metamodell sind nur schwerfällig umsetzbar. Auch das Generieren dauert auf Grund des umfangreichen UML-Metamodells relativ lange. Der zwingende Einsatz einer GUI erschwert auch das Ändern des Modells bei Remote-Zugriff über Fernwartung.
Aus diesem Grund wurde die modellbasierte Server-Konfiguration auf TMF/Xtext umgestellt. Das Metamodell ist jetzt eine textuelle DSL, die mithilfe einer Grammatik erstellt wurde. Änderungen an diesem Metamodell bedeuten Änderungen an der Xtext-Grammatik. Dieser Vorgang ist leichtgewichtig und kann schnell durchgeführt werden. Das Modell selbst liegt textuell vor. So kann man selbst mit einfachen Editoren (z.B. vi) remote das Modell ändern, die Konfiguration generieren und deployen. Natürlich muss auf den von Xtext generierten Editor mit Code Completion und Syntax Highlighting nicht verzichtet werden. Ein weiterer Vorteil ist, dass der Generierungsvorgang ca. fünf Mal schneller geworden ist, dabei aber wesentlich mehr Sonderfälle berücksichtigt.
Die Umstellung musste behutsam erfolgen. Ein Komplettdeployment an den Produktivsystemen wäre im ersten Anlauf vermutlich schief gegangen, wären vorher die Generate beider Metamodellvarianten nicht sorgfältig Server für Server verglichen worden. So konnten Fehler im neuen Modell (eine XMI-Darstellung musste in eine textuelle Modellrepräsentation überführt werden) und Fehler im Generator im Vorfeld erkannt und behoben werden.
Insgesamt hat sich der Umstieg gelohnt, da TMF/Xtext ein geniales, einfach zu bediendendes Werkzeug darstellt und somit eine schwergewichtige Modellrepräsentation in eine leichtfüßige Anwendung überführt werden konnte.


