Ruby on Rails: Deployment mit Capistrano

Größere Webprojekte will niemand Datei für Datei auf den oder die Server kopieren. Im Ruby-on-Rails-Umfeld ist Capistrano das Softwareverteilungswerkzeug der Wahl.

vorlesen Druckansicht
Lesezeit: 11 Min.
Von
  • Ralf Wirdemann
  • Thomas Baustert
Inhaltsverzeichnis

Nicht zuletzt wegen des Webframeworks Ruby on Rails, kurz Rails oder RoR, erfreut sich die Skriptsprache Ruby wachsender Beliebtheit. Auf dem Entwicklungsserver erzeugte Anwendungen sollen irgendwann auf dem externen Webserver (oder mehreren) landen. FĂĽr dieses sogenannte Deployment gibt es ein frei verfĂĽgbares Werkzeug.

Capistrano heiĂźt die Software fĂĽr das automatisierte AusfĂĽhren von Aufgaben auf einem oder mehreren entfernten Servern. Sie gilt heute als das gefragteste Deployment-Tool fĂĽr Rails-Anwendungen. Dieser Artikel behandelt Version 2.0 des Framework.

Zentrales Prinzip ist die vollständige Automatisierung des Verteilungsprozesses. Dass dies Sinn ergibt, erkennt man spätestens, wenn man sich die Einzelschritte eines typischen Verteilungsvorgangs vor Augen führt:

  • Auschecken der Software aus der Versionskontrolle,
  • AusfĂĽhren der Unit-Tests,
  • Ăśbertragung der Software auf die Ziel-Server,
  • Aktualisierung der Datenbanken und
  • Neustart des Webservers beziehungsweise der Applikationsprozesse.

Die manuelle Ausführung der angeführten Schritte gestaltet sich zeitintensiv, fehleranfällig und darüber hinaus langweilig. Bedenkt man außerdem, dass Deployment im Rahmen eines agilen Entwicklungsprozesses relativ häufig stattfindet, erscheint die Automatisierung des Prozesses umso sinnvoller.

Genau dies hat sich Jamis Buck von der Firma 37signals gedacht, als er 2005 die erste Version von Capistrano (damals noch unter dem Namen Switchtower) entwickelte. Er hat Capistrano zunächst für interne Zwecke zum Deployment von Basecamp entwickelt, einer Rails-basierten Projektmanagementsoftware. Allerdings wurde schnell deutlich, dass Capistrano für andere Rails-Anwendungen ebenfalls nützlich ist, sodass die Firma Capistrano als eigenständiges Deployment-Tool veröffentlicht hat.