Multiserver Architektur mit Ruby on Rails und Vagrant

Ein Load Balancer, 2+ Webserver und ein oder mehrere Datenbankserver. Eine multiple Server Landschaft wird schnell bei großen Webseiten benötigt, um eine Webseite oder Webanwendung skalierbar und performant zu halten. Mit Vagrant wird diese Einrichtung erheblich vereinfacht und ermöglicht somit auch das Testen des gesamten Deployment Prozesses. Die Portierbarkeit und die einfache Wartung der Multiserver Landschaft mit Vagrant hilft den Zeitaufwand erheblich zu verkürzen.

Wer eine Multiserver Anwendung mit Load Balancer, Webservern und Datenbank Server(n) mal eingerichtet hat, weis wie Zeitaufwändig die Einrichtung sein kann.

Was aber, wenn man die gesamte Einrichtung für die Entwicklung mit nur einem Befehl in der Konsole einrichten kann? Geht nicht? Geht schon!

Mit Vagrant ist es nicht nur möglich eine Virtuelle Maschine zu definieren, sondern auch ein ganzes Set von Maschinen und auch unterschiedlichen Distributionen. CentOS als Load Balancer, Ubuntu als Webserver und RHEL als Datenbankserver. Auch die Anzahl der Webserver kann über eine Variable frei definiert werden. Ob 1, 2 oder 10 Webserver liegt allein an der Kapazität des verwendeten Entwicklungsrechners.

Entwickler haben dann eine vergleichbare Umgebung, um Ihre Anpassungen im Zusammenspiel mit unterschiedlichen Servern testen zu können.

Mögliche Szenarien:

  • Deployment Prozesse entwickeln/automatisieren/testen
  • REST API Schnittstellen zwischen den Servern entwickeln/ testen
  • Ausfall eines Webservers simulieren und die dafür eingerichteten Routinen entwickeln/ testen
  • Datenbank Synchronisation/ Replikationen entwickeln/ testen
  • Webserver Konfigurationen entwickeln/ testen

Für die Erstellung ist nur noch die Datei „Vagrantfile“ notwendig. In dieser Datei werden die Konfigurationen mit Chef, Puppet oder als Shell-Skripte für die jeweiligen virtuellen Maschinen definiert. Der Quellcode der Anwendung kann dann automatisiert aus einem Quellcode Repository z.B. git oder Subversion ausgecheckt und entsprechend konfiguriert werden.

Dank Vagrant spielt der verwendete Rechner und sein Betriebssystem dann keine Rolle mehr. Egal ob man mit Mac, Windows, oder einer der vielen Linux Distributionen lieber arbeiten möchte.

Alternativ kann man auch eine Multiserver Architektur einrichten und den Quellcode auf dem eigenen PC bearbeiten. Durch „Shard Folders“ können dann die Daten auf der entsprechenden virtuellen Maschine verfügbar gemacht werden.

Möchte man z.B. mit Capistrano seine Server Deploymentprozess automatisiert aktualisieren, kann man auf diese Weise auch den gesamten Ablauf testen.

Kommt dann ein neuer Entwickler dazu oder muss die Konfiguration auf einem anderen PC auch entsprechend eingerichtet werden, reicht es die „Vagrantfile“ Datei zu kopieren und dann mit „vagrant up“ die gesamte Architektur einzurichten. Notwendige Abhängigkeiten oder spezielle Konfigurationen eines oder aller Server wird dann automatisch durchgeführt. Ändert sich die Konfiguration, kann man diese in der Vagrantfile Datei anpassen.

Läuft was nicht wie gewünscht ist es ein leichtes die virtuellen Maschinen neu zu erstellen.

The following two tabs change content below.

atixadmin

Neueste Artikel von atixadmin (alle ansehen)

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar