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:
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: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.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.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.
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.
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.
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.
Datei | Konfigurationsbeschreibung |
---|---|
TODO MySQL Konfigurationsdateien beschreiben. | Zugriffsrechte vergeben, welche Tools werden für die Konfiguration verwendet? Wie wird die Datenbank gestartet und gestoppt? |