Systeme: dev, staging, prod

09/12/2008 - 16:15 von Thomas Guettler | Report spam
Hallo,

bisher habe ich mit nur zwei Systemen gearbeitet:
dev (Entwicklungsumgebung)
prod (Produktivumgebung).

Aus verschiedenen Gründen ist mir nun klar, dass es
wirklich besser ist mit dev, staging, prod zu arbeiten.
Also, dass zwischen dev und prod noch ein System für
die Qualitàtssicherung ist.

Bisher arbeite ich auch ohne RPMs oder Deb-Paketen,
da alles Scripte sind (90% Python, 10%Shell) und
ich dafür ein unison àhnliches Tool zum Abgleichen
zwischen SVN und Server habe.

Doch gerade für SQL-Schema Updates gefàllt mir dieses Vorgehen
nicht und suche nach einer guten Lösung.

Es handelt sich um Django-Anwendungen.
SQL-Schema Updates schreibe ich mit Zeitstempel
in ein Verzeichnis, so dass das Produktivsystem
beim Update sauber aktualisiert wird.

Ich habe noch nie mit Python eggs gearbeitet. Lassen die
sich auch verwenden um beim Update:
- Server in den Wartungsmodus schalten
- DB aktualisieren
- Server wieder aktivieren
...



Gruß,
Thomas

Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
 

Lesen sie die antworten

#1 Diez B. Roggisch
10/12/2008 - 11:36 | Warnen spam
Thomas Guettler wrote:

Hallo,

bisher habe ich mit nur zwei Systemen gearbeitet:
dev (Entwicklungsumgebung)
prod (Produktivumgebung).

Aus verschiedenen Gründen ist mir nun klar, dass es
wirklich besser ist mit dev, staging, prod zu arbeiten.
Also, dass zwischen dev und prod noch ein System für
die Qualitàtssicherung ist.

Bisher arbeite ich auch ohne RPMs oder Deb-Paketen,
da alles Scripte sind (90% Python, 10%Shell) und
ich dafür ein unison àhnliches Tool zum Abgleichen
zwischen SVN und Server habe.

Doch gerade für SQL-Schema Updates gefàllt mir dieses Vorgehen
nicht und suche nach einer guten Lösung.

Es handelt sich um Django-Anwendungen.
SQL-Schema Updates schreibe ich mit Zeitstempel
in ein Verzeichnis, so dass das Produktivsystem
beim Update sauber aktualisiert wird.

Ich habe noch nie mit Python eggs gearbeitet. Lassen die
sich auch verwenden um beim Update:
- Server in den Wartungsmodus schalten
- DB aktualisieren
- Server wieder aktivieren



Nein, das hat mit eggs nichts zu tun.

Eggs haetten in deinem Szenario uU den Vorteil, das du sie mit
revisions-tracking erstellen kannst, also sowas der art wie

MyApp-0.1-r12334-py2.5.egg

Dann kannst du auf dem Zielsystem ohne grossen aufriss eine bestimmte
version aktivieren, indem du sie direkt per easy_install <egg> aufrufst.

Und eben auch wieder die alte, wenn das noetig ist...

Aber fure den Rest bist du auf dich alleine gestellt. Neulich kam ueber die
c.l.py liste ein deployment-framework, kannst du ja mal nach suchen.

Wir haben hier unser selbstgebautes, "deployboy". Der nutzt allerdings
direkt SVN, und installiert eggs "nur" als Abhaengigkeiten, durch einen
eggbasket-server hindurch (womit garantiert ist, das die eggs verfuegbar
sind & ein versionset zwingt sie auf die korrekten versionen. Fuer
TurboGears-anwendungen wichtig)

Mit live/stage oder nicht hat aber auch all das nix zu tun.

Diez

Ähnliche fragen