Trennung von Produktions- und Entwicklungszweig
Motivation
Im Betrieb eingesetzte Software darf nur durch neuere Versionen ersetzt werden, wenn zumindesteine starke Zuversicht herrscht, dass die neue Version lauffähig ist und die erforderliche Funktionalität aufweist. Daher sollte jeder Update durch eine gewollte explizite Aktion erfolgen, die erst nach entsprechender Verifikation der Software erfolgen soll.
Degegenüber erfordert die Weiterentwicklung des System eine vergleichsweise häufige Aktualisierung von Softwarekomponenten, ohne dass immer in allen Einzelheiten die volle Funktionsfähigkeit des Gesamtsystems geprüft wird.
Es ist deshalb sicherzustellen, dass nicht durch die Weiterentwicklung versehentlich auch Software, die bereits im Betrieb läuft, ersetzt ist.
Realisierung
Die Trennung von im Betrieb eingesetzter Produktionssoftware einerseits und Entwicklungszweig andererseits wird durch Aufspaltung der Direktory-Struktur in einen Produktionszweig (production) und einen Entwicklungszweig (development) erreicht.
Ferner wird für jede Realease der Betriebsversion eine eigene Direkctory eingerichtet, mit der Struktur
/<Systemversion>/>Release>
.
Mit dem Umzug der SW-Entwicklung auf die 64-Bit Umgebung (Blade-Recher, asl72x) wurden die bisherigen Directories an anderer Stelle im Filesystem eingehängt. Aktuell (Anfang 2010) gelten folgende Pfade für den Produktionszweig:
libasl |
/common/usr/production/lib/asl/ |
(32-bit version) |
libasl64 |
/common/usr/production/lib64/asl/ |
(64-bit version) |
libppc |
/common/usr/eldk/ppc_6xx/opt/acc/sys/devman/ |
|
incasl |
/common/usr/production/include/asl/ |
|
incvme |
/common/usr/production/include/vme/ |
|
incmsg |
/common/usr/production/include/msg/ |
(no release-specific sub-directories) |
Bis auf die Message-Directory (
incmsg
) enthalten alle Directories Release-spezifische Unter-Directories. So liegen die 64-bit Libraries für die Release 16 in der Directory
common/usr/production/lib64/asl/16
. Jede dieser Directories enthält ferner den Link
current
, der auf die jeweils aktuelle Release zeigt.
Einrichtung der bisherigen Directory-Struktur (auf asl71x)
Bisherige Pfade auf asl71x:
libasl |
/usr/local/acc/production/lib/asl/v01/07 |
libppc |
/usr/local/acc/eldk/ppc_6xx/opt/acc/sys/devman/v09/07 |
incasl |
/usr/local/acc/production/include/asl/v01/07 |
incvme |
/usr/local/acc/production/include/vme/v09/07 |
incmsg |
/usr/local/acc/production/include/msg/07 |
Directrory-Struktur eingerichtet am 25. Feb. 2008:
- In /etc/init.d/devman (bezogen auf das root-Verzeichnis des ke3cg08, auf dem asl lautet der komplette Pfad somit /usr/local/acc/eldk/ke3cg08/etc/init.d/devman): Änderung des LD_LIBRARY_PATH auf .:opt/acc/sys/devman/v09/07
- Auf asl710 in /etc/xinetd.d/ufcserver Änderung der Variablen server und server_args in /usr/local/acc/production/lib/asl/v01/07/ufcserver, Änderung des Wertes für LD_LIBRARY_PATH in /usr/local/acc/production/lib/asl/v01/07
- Auf asl711 wurde in /etc/init.d/GSInameserver die Variable libasl auf /usr/local/acc/production/lib/asl/v01/07 gesetzt, so dass dann beim Durchlaufen des Init-Skripts das nameserver-Executable aus diesem Verzeichnis genutzt und der LD_LIBRARY_PATH entsprechend gesetzt werden. Die Dateien right.txt und accessdata.txt wurden nach /usr/local/acc/production/nameserver kopiert, in der Datei /usr/local/acc/etc/sysconfig/nameserver wurde die Variable DATADIR auf dieses Verzeichnis gesetzt, so dass ab sofort der Nameserver diese Dateien benutzt.