Effiziente Entwicklung mit Virtualisierung (Teil 1)

von Tobias Kraft

Insbesondere bei größeren Projekten haben wir schon öfters in der Praxis erlebt, dass einiges an Zeit für die Einrichtung und das Warten der Entwicklungsinfrastruktur benötigt wird. Woran liegt das?
Die Entwicklungsumgebungen bieten heutzutage eine große Unterstützung und sind in der Regel einfach zu installieren. Allerdings sind in vielen Fällen zusätzliche Konfigurationen und Installationen notwendig z.B. für das Anbinden von Drittsystemen. Dies kann sehr zeitintensiv sein, wenn jeder Projektmitarbeiter dies an seinem Entwicklungsrechner selbst durchführt.
Kosten und auch Nerven kann der Einsatz von Virtualisierung in der Entwicklung sparen.

Virtualisierung mit ESXi

exensio setzt hierfür ESXi [1] ein. ESXi kommt von der Firma VMWare und ist ein sogenannter Bare-Metal-Hypervisor, der direkt auf der Server-Hardware installiert wird. Es handelt sich dabei um ein abgespecktes Linux-System, das im Vergleich zu anderen Virtualisierungslösungen einen sehr niedrigen Overhead hat. Des Weiteren ist ESXi kostenfrei verfügbar.

Für die Entwicklung greifen Entwickler auf ein VMWare-Image zu, das auf dem zentralen ESXi-Server läuft. Der Zugriff erfolgt bei Windows über den Remote Desktop und bei Linux über den NXClient. Auf dem VMWare-Image ist alle notwendig Software installiert und konfiguriert, so dass direkt mit der Arbeit losgelegt werden kann.
Die Hardwareausstattung des ESXi-Servers sollte angepasst sein an die Anzahl der parallel arbeitenden Entwickler. Bei komplexeren JEE-Projekten sollte man pro Virtuelle Maschine mit 3,5 GB RAM kalkulieren.

In einem der nächsten Blogeinträge wird detaillierter auf die Konfiguration, Individualisierung und Verteilung der VMWare-Images eingegangen.

Vorteile der Virtualisierung

Welche Vorteile können sich also durch die Nutzung von Virtualisierung für die Entwicklung ergeben?

Zeitersparnis, da die Basisumgebung nur einmal eingerichtet wird und anschließend für alle Entwickler dupliziert wird. Bei größeren Projekten ist diese Arbeit nicht zu unterschätzen:

  • Anlegen oder Konfiguration einer Server-Domaine (z.B. JDBC-Einstellungen)
  • Installation der Entwicklungsumgebung
  • Ggfs. Konfiguration der Versionsverwaltung
  • Basisstruktur für das Projekt wird einmal zentral aufgesetzt
  • Installationen und Konfiguration für den Zugriff auf Backendsysteme (z.B. DLL für SAP-Zugriff)

Es kann einfach auf eine funktionierende Entwicklungsinfrastruktur zurückgegriffen werden, falls etwas "zerstört" wurde (z.B. defekte Serverdomäne), sei es durch den Entwickler selbst oder das System.

Wird eine Applikation kompiliert oder deployed, dann fällt in der Regel eine hohe Belastung für die CPUs an. Durch die Virtualisierung steht über den ESXi-Server wesentlich mehr Leistungspotential (CPU, Festplattendurchsatz, ...) zur Verfügung, das von den jeweiligen VMs zeitweise abgerufen werden kann.

Was sollte man beachten?

Für einen reibungslosen Ablauf und Verbesserungen ist die Mitarbeit aller Entwickler erforderlich. Änderungen die zukünftig für alle verfügbar sein sollten müssen in das Masterimage zurückgespielt werden. Dies können beispielsweise Helper-Skript sein oder Plugins für die Entwicklungsumgebung.

Des Weiteren sollte für die Verwaltung der zentralen Entwicklungsserver eine dedizierte Personengruppe zuständig sein, da sonst sehr schnell der Überblick verloren geht.

Links

[1] ESXi

Zurück

© 2006-2024 exensio GmbH
Einstellungen gespeichert

Datenschutzeinstellungen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.

Sie können Ihre Einwilligung jederzeit ändern oder widerrufen, indem Sie auf den Link in der Datenschutzerklärung klicken.

Zu den gesetzlichen Rechenschaftspflichten gehört die Einwilligung (Opt-In) zu protokollieren und archivieren. Aus diesem Grund wird Ihre Opt-In Entscheidung in eine LOG-Datei geschrieben. In dieser Datei werden folgende Daten gespeichert:

 

  • IP-Adresse des Besuchers
  • Vom Besucher gewählte Datenschutzeinstellung (Privacy Level)
  • Datum und Zeit des Speicherns
  • Domain
You are using an outdated browser. The website may not be displayed correctly. Close