Ec2&s3: von Hand oder mit Tools?!

Hi Liste,

ich will aus einer ganzen Reihe von Gründen von meinem jetzigen Hoster
weg und überlege gerade, ob ec2/s3 eine gute Option wären: momentan
laufen auf einem managed server eine ganze Reihe von Anwendungen: Die
gesamte Infrastruktur dafür (libs und gems, datenbank, backupscripts
usw.) ist eher gewachsen und ich brauch jetzt was, mit dem ich einen
neuen Server+Infrastruktur+Anwendungen neu aufsetzen kann.

Dafür gibt’s ja schon eine ganze Menge von Tools und/oder Services,
die sowohl mit ec2/s3 als auch das Deployment auf normalen Servern
automatisieren:

die teils mit teils ohne ec2 auskommen, teils nur beim konfigurieren
eines Image helfen, teils auch monitorin/deplyoment und Konsolen haben

  • wie sind da eure Erfahrungen?! Was braucht man, was ist am Ende nur
    Spielkram? Images selber bauen oder einen von bringen diese Dienste
    echten Mehrwert?! Ich finde die Toollandschaft momentan etwas
    verwirrend und bin hier für jeden Erfahrungsbericht dankbar…

GrüßeStefan


stefan frank

software&service
weberstr. 10
69120 heidelberg
tel. +49 (0) 6221 7277049
mobil +40 (0) 173 2383390
mail [email protected]

Hi,

automatisieren:

[…]

zu den anderen Tools kann ich aus eigener Erfahrung leider nichts
sagen, aber ich nutze seit einiger Zeit Puppet.

Puppet ist, wie Du schon angedeutet hast, nicht spezifisch für ec2/s3,
oder Rails. Vielmehr kann man mit Puppet fast alle
Systemadministrationsaufgaben automatisieren und Systemkonfigurationen
managen.

Die mächtige, objektorientierte Beschreibungssprache von Puppet und die
Tatsache, dass es dringend empfohlen wird, Puppetkonfiguration in einem
Versionskontrollsystem zu halten, kommen einem Entwickler sehr
entgegen, während es manchen Admin wohl vor neue Herausforderungen
stellen könnte.

Außerdem spannend: Puppet erlaubt eine recht abstrakte Konfiguration
von Diensten etc. und bringt sog. Provider mit, die das dann
fürkonkrete Plattformen umsetzen. Sprich: Im Idealfall definiert man
einmal, wie z.B. ein Apache-Webserver installiert und konfiguriert
werden soll, und kann das dann auf Debian-, FreeBSD-, OSX- etc. Systemen
ausrollen.

Zuguterletzt ist Puppet für einen versierten Ruby-Entwickler problemlos
erweiterbar.

Der Nachteil: Puppet erfordert schon eine recht hohe Einarbeitungszeit.
Die lohnt sich meiner Erfahrung nach aber, wenn einer der folgenden
Fälle zutrifft:

  • Man muss eine große Anzahl gleichförmiger Server aufsetzen (bestes
    Beispiel: Rails-Applicationserver)
  • Man muss häufiger immer wieder das selbe konfigurieren (z.B.
    LDAP-Authentifizierung, NTP-Zeitsynchronisation o.ä.)
  • Man arbeitet mit einer Vielzahl von unterschiedlichen Plattformen und
    verliert viel Zeit, sich immer wieder in die verschiedenen Eigenarten
    einzudenken

Die Dokumentationslage bei Puppet ist durchwachsen. Im Prinzip steht
alles im Wiki, aber die umfassende Einführung, die auch zeigt, wie
alles zusammenhängt, fehlt mir persönlich. Diese gibt auch das bisher
einzige Buch zum Thema (“Pulling Strings with Puppet: Configuration
Management Made Easy”) nur teilweise. Da es aber bisher halt
konkurrenzlos ist, würde ich es trotzdem zum Einstieg empfehlen.

Schöne Grüße
David