Effiziente Entwicklung mit Virtualisierung (Teil 2)

von Tobias Kraft

Der erste Teil des zum Thema „Effiziente Entwicklung mit Virtualisierung“ hat die Vorteile der Virtualisierung für die Entwicklung aufgezeigt und ESXi als eine mögliche Lösung vorgestellt. In diesem Teil wird auf die Einrichtung und Konfiguration der Virtualisierungs-Images eingegangen.

Konfiguration eines Virtualisierungs-Images

Jeder Entwickler besitzt ein eigenes, vorkonfiguriertes VMWare-Image. Die Entwicklungstätigkeiten von exensio sind überwiegend im Bereich von Java angesiedelt und deshalb wird aus Performance-Gründen auf Linux als Betriebssystem für die Entwicklung und damit auch für die Virtualisierung gesetzt.

Es gibt ein Master-Image, das mit entsprechender Software, wie Entwicklungsumgebungen, Datenbank-Zugriff-Tools oder Versionsverwaltungssoftware, vorkonfiguriert ist. Die relevanten, über SVN versionierten, Software-Projekte werden entsprechend auf dem Master-Image ausgecheckt. Des Weiteren werden auf dem Master-Image auch zeitaufwendige Konfigurationen, wie die Einrichtung einer Domäne für einen Applikationsserver, vorgenommen.

Jeder PC-Benutzer hat natürlich auch seine Vorlieben und Einstellungen auf einem PC, die er nicht missen möchte. Durch Anlage eines Accounts auf dem Master-Image für jeden Entwickler können individuelle Konfiguration vorgenommen werden.

Neben den Entwicklungs-Images gibt es einen zentralen DB-Server auf dem alle Datenbanken für die Entwicklung verfügbar sind. Der DB-Server ist wiederum selbst eine virtuelle Maschine. Die nachfolgende Abbildung zeigt beispielhaft die virtuellen Maschinen für die Entwicklung und die Datenbank. Hierbei ist auf der rechten Seite der Abbildung auch zu sehen, dass virtuelle Netzwerke für die einzelnen Maschinen eingerichtet wurden. Damit werden die virtuellen Maschinen Netzwerk-Ports zugeordnet, um zu verhindern, dass alle über den gleichen Netzwerk-Port des ESXi-Servers gehen.

Ausrollen der Virtualisierungs-Images für ein neues Projekt

Wie erfolgt nun das Ausrollen der Virtualisierungs-Images, wenn exensio mit einem neuen Projekt beginnt?
  1. Ggfs. noch nicht installierte Software wird auf dem Master-Image eingerichtet
  2. Basisstruktur wird in der Entwicklungsumgebung angelegt (z.B. Workspace konfigurieren, Eclipse-Projekte erstellen, Domaine für den App-Server erstellen und konfigurieren)
  3. Datenbank und SVN-Repository für das neue Projekt einrichten und auf Master-Image auschecken bzw. konfigurieren
  4. Einfaches clonen des Master-Images für jeden Entwickler, der am Projekt teilnimmt
  5. Der Entwickler muss nach dem Starten seines Images noch ein Script ausführen, in dem individuelle Anpassungen vorgenommen werden, wie das Setzen des Hostnamen oder Berechtigungen für seinen Login-Benutzer
Die vorangegangene Auflistung zeigt noch einmal deutlich die Zeitersparnis, dass nur eine Person die eher lästigen Schritte 1. bis 4. durchführen muss und die anderen Entwickler anschließend direkt loslegen können.

Kategorien: Virtualisierung

Zurück