Re: B&E: Portsupdate auf einem Produktionssystem

From: Alvar Freude <alvar(at)a-blast.org>
Date: Thu, 16 Mar 2006 17:10:09 +0100

Hi,

-- Oliver Fromme <olli(at)lurza.secnetix.de> wrote:

> Alternativ kann man natürlich eine Testmaschine hernehmen
> (oder ein Jail) und dort beliebig updaten und intensiv
> testen. Die Möglichkeit hat man aber nicht immer (die
> Testumgebung muß möglichst exakt mit der Produktions-
> umgebung übereinstimmen, was z.B. auch Netzwerkkomponenten
> wie Filer/NAS betrifft), und es kostet enorm viel Zeit,
> insbesondere auch das Testen, wenn man es richtig machen
> will, wozu etwa auch Performance-Tests gehören. Siehe
> obiges Beispiel.

In der Theorie habe ich mir für Webserver folgendes Beispiel überlegt,
aber in der Praxis noch nicht verifiziert:

Angenommen man hat einen Szenario mit Frontend- und Backend-Apache, wie
es für dynamische Applikationen mit relativ hohem Speicherverbrauch
sowieso sinnvoll ist.[1]

Dann könnte man für das Frontend einen Apache mit
mod_proxy_load_balencer nehmen
<http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html> und hinten
dran zwei Apaches in zwei Jails. Normalerweise ist nur ein Backend-Apache
in Betrieb, wenn aber ein Update ansteht -- das kann bei komplexen
Applikationen ja durchaus aufwendiger sein, ich benötige beispielsweise
mehrere Dutzend Ports -- kann man das Update im zweiten Jail machen,
dieses hochfahren und das bisherige herunterfahren. Wenn dann etwas
schief ging, dann lässt sich das alte Jail wieder ruckzuck hochfahren
und das neue abschalten.
Das gleiche Prinzip lässt sich natürlich auch nutzen, wenn ein Update
im eigenen Code ansteht.

Für mittelwichtige Systeme dürfte dies ein guter Kompromiss zwischen
kosten und möglichen Ausfallzeiten sein.

Ciao
  Alvar

[1]
Ich habe einen Frontent-Apache (2.2 mit Threads) und mehrere
Backend-Apache mit schwergewichtigen mod_perl-Applikationen. Die
Konstellation ist zum Speicher-Sparen und entlastet den Server sehr:
statische Inhalte schiebt das schlanke Frontend raus, dynamische leitet
das Backend ans Frontend. Da zieht ein Prozess zwar etwas mehr Speicher,
aber davon werden auch bei 90% dynamischen Inhalten nur wenige gebraucht,
da der Frontend die u.U. relativ zeitaufwendige Auslieferung
(Modem-User!) übernimmt. Backend ist also nach seinen 3-10 Millisekunden
Berechnungszeit fertig und kann den nächsten Request übernehmen. Für
100000 PIs/Tag reichen so ca. 5 Server-Prozesse locker aus.

-- 
** Alvar C.H. Freude, http://alvar.a-blast.org/
** http://www.wen-waehlen.de/
** http://odem.org/
** http://www.assoziations-blaster.de/

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 16 Mar 2006 - 17:11:55 CET

search this site