Deployment Dokumentation

VirtL besteht aus vielen Komponenten die zueinander passen müssen um ein vernünftiges System zu gewährleisten. Die einzelnen Komponenten, deren Aufgabe und die Abhängigkeiten zu anderen Komponenten, sind in diesem Dokument beschrieben.

Systemübersicht

Die folgende Grafik zeigt welche Systemkomponenten bei VirtL zusammen spielen:

Deployment Komponenten

VirtL Produktionsrechner

Auf dem Produktionsrechner wird das VirtL System für die Mitglieder betrieben. Auf diesen Rechnern haben nur die Systemadminstratoren Zugriff um Programme zu verändern. Die Entwickler, Tester usw. haben hier keine Rechte. Die produktive Umgebung soll so stabil wie möglich betrieben werden. Die Daten, die auf diesem Rechner hinterlegt sind, werden regelmäßig gesichert und archiviert. Der Produktionsrechner ist am höchsten Verfügbar (Schlagwort 7*24h). Bei einem (Releasewechsel, oder beim Einspielen eines (Patches, wird darauf geachtet das keine Daten verloren oder beschädigt werden.

Komponenten der Produktion

Auf dem Produktionsrechner werden folgende Komponenten und Systeme betrieben:
Produktionskomponenten
Komponente Beschreibung Installationskapitel
Apache Der Webserver wird bei TODO Provider eintragen betrieben und liegt zur Zeit in Version TODO Version Webserver eintragen betrieben. Falls die Wartung und Pflege des Webservers vom Provider übernommen wird ist es für VirtL nur interessant welche Versionen eingesetzt werden und wann die Upgrades gefahren werden. Falls der Server von VirtL Administratoren betrieben wird, müssen sämtliche Konfigurationen wie bei der Abnahme- und Entwicklungsumgebung eingestellt werden. Apache Konfiguration
MySQL Falls MySQL vom Provider bereitgestellt und betrieben wird, muss dem Provider mitgeteilt werden welche Datenbank installiert werden muss. Im Normalfall wird die MySQL Software (Runtime Environment) vom Provider angeboten und die VirtL Administratoren installieren die Datenbank selbst. TODO MySQL mit Provider abklären. MySQL Konfiguration
Tomcat Falls Tomcat vom Provider bereitgestellt und betrieben wird, muss dem Provider mitgeteilt werden welche Applikationen aufgerufen werden können. Eher wahrscheinlich ist jedoch das die Installation und Pflege des Tomcats im Aufgabenbereich der VirtL Administratoren fällt. TODO Tomcat mit Provider abklären. Tomcat Konfiguration
JBoss Falls JBoss vom Provider bereitgestellt und betrieben wird, muss vom Provider in Erfahrung gebracht werden, wie die Applikationen auf diesem Application Server installiert werden können. Eher wahrscheinlich ist jedoch das die Installation und Pflege des Tomcats im Aufgabenbereich der VirtL Administratoren fällt. TODO JBoss mit Provider abklären. JBoss Konfiguration
JUnit JUnit wird als jar-Datei innerhalb der Java Sourcen mitgeliefert. Nach einer Installation auf der Produktionsumgebung sollen die JUnit Testfälle auch auf der Produktion laufen um versteckte Fehler ausfindig zu machen.  
Ant Der Provider muss Ant von Apache herunter laden und installieren. TODO: Kontrollieren ob und welche Version der Provider von Ant anbietet. Ant Konfiguration
SCP Server Um die Installation überhaupt durchführen zu können muss der Provider eine Möglichkeit zur Verfügung stellen die Sourcen remote auf den Rechner zu spielen. Im Normalfall ist dies SCP (Secure Copy). Die Zugangsdaten dürfen nicht öffentlich publiziert werden. Diese Information darf nur den Systemadministratoren bekannt gemacht werden. Damit VirtL jedoch frei verwendet werden kann, soll hier die normale Vorgehensweise und Standard Zugangsmechanismen erklärt werden. TODO: SCP Parameter des Providers eintragen.  
Java Für den Betrieb von VirtL wird eine Java Runtime Umgebung (mindestens 1.4) benötigt. Mit dem Provider muss abgeklärt werden, ob er diese Runtime Umgebung mindestens unterstützt. Die Abnahme- und Entwicklungsumgebung soll mit der gleichen Java Runtime Umgebung betrieben werden. TODO: Java Version des Providers ausfindig machen.  
VirtL DB Migrations Tools Diese Tools werden als Ant Scripts verpackt geliefert. Mit diesen Tools ist der Systemadministrator in der Lage die bestehenden Datensätze aus den Produktions Datenbanktabellen zu entladen, die Tabellen neu anzulegen und die produktiven Datensätze wieder in die neue Tabellenstruktur zu überführen.  

VirtL Abnahme Rechner

Auf dem Abnahmerechner werden die neuen Releases produktionsnah getestet. Erst wenn die Installation, Konfiguration, die Abnahmetests und die Migration der Datenbanken korrekt abgelaufen sind, darf die Produktionsumgebung verändert werden. Die Installation und Konfiguration wird von den Systemadministratoren durchgeführt. Auf diesem Rechner haben Entwickler nichts verloren.
Im Normalfall wird für VirtL kein expliziter Abnahmerechner bereitgestellt. Wichtig ist nur, dass der Abnahmerechner physikalisch nicht die Entwicklungsmaschine ist. Der Rechner soll nur über Remote Zugriff für den Systemadministrator erreichbar sein, also die gleichen Eigenschaften wie ein Produktionsrechner aufweisen. Es genügt, wenn der Systemadministrator von seinem Arbeitsplatz aus via Remote auf den Rechner geht. Physikalisch kann der Rechner im gleichen Raum stehen.

Komponenten der Abnahme

Beim Abnahmerechner handelt es sich um eine 1:1 Kopie der Produktion und beinhaltet daher die gleichen Komponenten. Der Unterschied liegt darin, dass diese Rechner vom Systemadministrator und nicht vom Provider betrieben wird.
Abnahmekomponenten
Komponente Beschreibung Installationskapitel
Apache Der Abnahme Webserver wird auf dem hierfür vorgesehenen Abnahmeserver betrieben. Im Normalfall handelt es sich um eine Standardinstallation eines Apache Webservers, wie sie bei allen gängigen Linux Distributionen vorhanden ist. Apache Konfiguration
MySQL Die MySQL Datenbank wird mit den Standardeinstellungen der jeweiligen Linuxdistribution aufgesetzt und konfiguriert. Die Erzeugung der Datenbanktabellen wird im Ant Script bei der Erstellung integriert und läuft automatisch ab. MySQL Konfiguration
Tomcat Die Tomcat Servlet Engine wird mit den Standardeinstellungen der jeweiligen Linux Distribution aufgesetzt. Tomcat Konfiguration
JBoss CHRISS Hier kannst du ran! JBoss Konfiguration
JUnit JUnit wird als jar-Datei innerhalb der Java Sourcen mitgeliefert. Nach einer Installation auf der Abnahmetestumgebung werden die JUnit Testfälle durchlaufen um versteckte Fehler ausfindig zu machen.  
Ant Ant wird mit der Standardinstallation der jeweiligen Linux Distribution aufgesetzt und konfiguriert. Ant Konfiguration
SCP Server Die Installationsdateien werden via SCP auf den jeweiligen Abnahmetestrechner kopiert. Hierbei handelt es sich um eine Standardinstallation des SCP Servers der jeweiligen Distribution. Falls der Abnahmerechner im privaten Netzwerk betrieben wird, erübrigt sich die Sicherung durch Passphrases usw.. Falls der Rechner remote im Internet betrieben wird, muss eine stabile Absicherung des Systems gewährleistet sein.  
Java Für den Betrieb von VirtL wird eine Java Runtime Umgebung (mindestens 1.4) benötigt. Es muss die gleiche Runtime Environment wie auf der Produktionsmaschine verwendet werden. Die Installation erfolgt mit den Standardwerten der jeweiligen Linux Distribution.  
VirtL DB Migrations Tools Diese Tools werden als Ant Scripts verpackt geliefert. Mit diesen Tools ist der Systemadministrator in der Lage die bestehenden Datensätze aus den Abnahme Datenbanktabellen zu entladen, die Tabellen neu anzulegen und die Datensätze wieder in die neue Tabellenstruktur zu überführen. Dies wird, wenn es rechtlich möglich ist, mit produktiven Datensätzen durchgespielt um bei der produktiven Migration keine Überraschungen zu erfahren.  

Sourceforge

Von diesem Rechner beziehen alle weiteren Rechner ihre Sourcen. Auf dem CVS von Sourceforge sind die Sourcen hinterlegt. Weiterhin ist das Projekt und der Webauftritt von VirtL hier untergebracht.
CVS wurde zu Beginn von VirtL manuell angelegt und muss während der Projektlaufzeit nicht mehr beachtet werden. Eventuell wird auf Subversion umgestellt. Die Webseite wurde für die Systemadministratoren Christian und Roland freigeschalten. Die Zugangsdaten sind bekannt und werden nicht veröffentlicht.
Die Homepage wird via SCP nach dem Build der jeweiligen Version kopiert. Nur bei Veränderungen der Verzeichnisstruktur wird die Homepage komplett neu erstellt.
Der CVS Zugang wird für die jeweiligen Entwickler von den Administratoren freigeschalten. Die Entwickler erhalten dann ihre ext: Zugänge. Welche Sourcen eingespielt werden, entscheidet das Kernteam.

VirtL Entwicklungsrechner

Auf diesem Rechner wird VirtL entwickelt und die einzelnen Module getestet. Dieser Rechner beinhaltet eine komplette VirtL Umgebung, sowie alle für die Entwicklung notwendigen Werkzeuge. Entwickler, Tester und Redakteure verwenden unterschiedliche Werkzeuge. Die Grundausstattung ist jedoch immer die Selbe.

Komponenten der Entwicklungsumgebung

Beim Entwicklungsrechner wird unter anderem eine 1:1 Kopie der Produktion (oder der Abnahmetestumgebung) abgebildet und beinhaltet daher die gleichen Komponenten. Der Unterschied liegt darin, dass diese Rechner vom Entwickler betrieben wird. Weiterhin beinhaltet der Rechner die Werkzeuge, mit denen VirtL erstellt und gepflegt wird.
Entwicklungskomponenten
Komponente Beschreibung Installationskapitel
Apache Der Entwicklungs Webserver wird auf dem hierfür vorgesehenen Entwicklungsrechner als Localhost betrieben. Im Normalfall handelt es sich um eine Standardinstallation eines Apache Webservers, wie sie bei allen gängigen Linux Distributionen vorhanden ist. Apache Konfiguration
MySQL Die MySQL Datenbank wird mit den Standardeinstellungen der jeweiligen Linuxdistribution aufgesetzt und konfiguriert. Die Erzeugung der Datenbanktabellen wird im Ant Script bei der Erstellung integriert und läuft automatisch ab. Im Unterschied zum Abnahmerechner werden die Ant Scripts auf diesem Rechner erstellt und daher werden manuelle Eingriffe unvermeidlich bleiben. Bevor ein Entwickler seine Sourcen auf den Abnahmetest spielt, sollte er jedoch die Scripts erfolgreich auf seiner Umgebung laufen lassen. MySQL Konfiguration
Tomcat Die Tomcat Servlet Engine wird mit den Standardeinstellungen der jeweiligen Linux Distribution aufgesetzt. Tomcat Konfiguration
JBoss CHRISS Hier kannst du ran! JBoss Konfiguration
JUnit JUnit wird als jar-Datei innerhalb der Java Sourcen mitgeliefert. Nach einer Installation auf der Entwicklungsumgebung werden die JUnit Testfälle durchlaufen und ergänzt um versteckte Fehler ausfindig zu machen. Sämtliche Klassen und Funktionen sollen, falls es der Aufwand rechtfertigt, automatisch getestet werden.  
Ant Ant wird mit der Standardinstallation der jeweiligen Linux Distribution aufgesetzt und konfiguriert. Ant Konfiguration
SCP Client Damit die Installationsdateien via SCP auf den jeweiligen Abnahmetestrechner kopiert werden können muss ein SCP Client auf der Entwicklermaschine installiert sein. Hierbei handelt es sich um eine Standardinstallation des SCP Client der jeweiligen Distribution. Falls der Abnahmerechner im privaten Netzwerk betrieben wird, erübrigt sich die Sicherung durch Passphrases usw.. Falls der Rechner remote im Internet betrieben wird, muss eine stabile Absicherung des Systems gewährleistet sein. Installationen auf dem Produktivsystem werden nur vom Systemadministrator durchgeführt. Die Installation erfolgt aus dem dafür automatisch generierten Produktionsverzeichnis auf der Entwicklungsumgebung.  
Java Für den Betrieb von VirtL wird eine Java Runtime Umgebung (mindestens 1.4) benötigt. Es muss die gleiche Runtime Environment wie auf der Produktionsmaschine verwendet werden. Die Installation erfolgt mit den Standardwerten der jeweiligen Linux Distribution. Auf der Entwicklungsumgebung wird die JDK installiert, da die Sourcen nicht nur ausgeführt sondern auch übersetzt werden müssen. Es wird weiterhin empfohlen die Java Doc zu installieren.  
Java Editor Die Geschmäcker sind hier völlig verschieden. Roland hat sich in letzter Zeit an Eclipse gewöhnt, Chriss liebt Emacs, andere verwenden gerne Borland JBuilder oder VI. Welcher Editor verwendet wird ist egal, Hauptsache ist, dass der Code lesbar und den Styleguides von VirtL entspricht.  
HTML Editor Auch hier sind die Geschmäcker völlig verschieden. Roland liebt zur Zeit Quanta+, der Blowfish ist auch nett und sonst gibt es auch viel schönes Ding auf dieser Welt. Wichtig ist nur, dass der HTML Code W3C konform, kein unnötigen Schnick-Schnack enthält und auf allen gängigen Browsern ähnliche Resultate erzielt.  
VirtL DB Migrations Tools Diese Tools werden als Ant Scripts verpackt geliefert. Mit diesen Tools ist der Entwickler in der Lage die bestehenden Datensätze aus den Datenbanktabellen zu entladen, die Tabellen neu anzulegen und die Datensätze wieder in die neue Tabellenstruktur zu überführen. Dies wird, wenn es rechtlich möglich ist, mit produktiven Datensätzen durchgespielt um bei der produktiven Migration keine Überraschungen zu erfahren.  

Konfiguration des Apache Webservers

Außer auf der Produktionsumgebung werden die Apache Webserver vom Systemadministrator (Abnahmeumgebung) oder vom Entwickler (Entwicklungsumgebung) durchgeführt.

Apache Konfigurationsdateien
Datei Konfigurationsbeschreibung
org.virtl/src/webserver/httpd.conf In dieser Datei werden die globalen Einträge für den Apache Webserver eingetragen. Um VirtL betreiben zu können muss hier die Tomcat Servlet Engine eingetragen werden. TODO Was muss hier noch alles beachtet werden?
Bei SuSE muss nach der Installation von Apache und Tomcat nichts mehr manuell eingetragen werden. Falls Apache und Tomcat jedoch nicht miteinander funktionieren muss die Datei /etc/apache2/httpd.conf um die Einträge, die in httpd.conf beschrieben sind, ergänzt werden.

Apache Starten

Der Webserver wird entweder manuell gestartet oder beim Systemstart so konfiguriert das er grundsätzlich gestartet wird.
Bei SuSE wird hierfür als root rcapache2 start eingegeben. Falls der Webserver beim Systemstart gestartet werden soll, wird Apache im Yast unter dem Punkt System/Runlevel Editor auf aktiviert gesetzt.

Apache stoppen

Der Webserver wird manuell gestoppt.
Bei SuSE wird hierfür als root rcapache2 stop eingegeben.

Konfiguration des JBoss Application Servers

Außer auf der Produktionsumgebung werden die JBoss Application Server vom Systemadministrator (Abnahmeumgebung) oder vom Entwickler (Entwicklungsumgebung) durchgeführt.

JBoss Konfigurationsdateien
Datei Konfigurationsbeschreibung
CHRISS? TODO JBoss Konfiguration beschreiben. Chriss, hier bist du gefragt.

Konfiguration der Tomcat Servlet Engine

Außer auf der Produktionsumgebung werden die Tomcat Servlet Engines vom Systemadministrator (Abnahmeumgebung) oder vom Entwickler (Entwicklungsumgebung) durchgeführt.

Tomcat Konfigurationsdateien
Datei Konfigurationsbeschreibung
org.virtl/src/webserver/virtl.xml Um VirtL betreiben zu können, muss Tomcat die Webapplikation bekannt gemacht werden. Diese Bekanntmachung wird in der Datei virtl.xml beschrieben. Die Datei virtl.xml wird manuell einmalig vom Ordner nach:
SuSE: /etc/tomcat5/base/Catalina/localhost/virtl.xml
TODO DEBIAN: ???
kopiert.

Tomcat Starten

Die Tomcat Servlet Engine wird entweder manuell gestartet oder beim Systemstart so konfiguriert das er grundsätzlich gestartet wird.
Bei SuSE wird hierfür als root rctomcat5 start eingegeben. Falls Tomcat beim Systemstart gestartet werden soll, wird Tomcat im Yast unter dem Punkt System/Runlevel Editor auf aktiviert gesetzt.

Tomcat stoppen

Der Tomcat wird manuell gestoppt.
Bei SuSE wird hierfür als root rctomcat5 stop eingegeben.

Konfiguration von Ant

Außer auf der Produktionsumgebung wird die Installation und Konfiguration von Ant vom Systemadministrator (Abnahmeumgebung) oder vom Entwickler (Entwicklungsumgebung) durchgeführt.
Ant kann von Apache.org bezogen werden und ist bei den meisten Distributionen (Gentoo, SuSE, Debian...) schon integriert. Falls eine Windows Entwicklungsumgebung verwendet wird, kann auf Apache.org die Installation und Konfiguration nachgelesen werden.
Es muss auf allen Systemen die gleiche Ant Version gefahren werden. Aus diesem Grund soll die Ant Version des Providers erfragt werden. Falls eine andere Version gefahren wird, muss kontrolliert werden ob die Funktionalität auf dem Produktionsrechner gewährleistet ist.

Konfiguration der MySQL Datenbank

Außer auf der Produktionsumgebung wird die Installation und Konfiguration der MySQL Datenbank vom Systemadministrator (Abnahmeumgebung) oder vom Entwickler (Entwicklungsumgebung) durchgeführt.

MySQL Konfigurationsdateien
Datei Konfigurationsbeschreibung
TODO MySQL Konfigurationsdateien beschreiben. Zugriffsrechte vergeben, welche Tools werden für die Konfiguration verwendet? Wie wird die Datenbank gestartet und gestoppt?