© best_vector/Shutterstock.com
Windows Developer
Bedeutung von Containertechnologie in der Softwareentwicklung

Docker - was bringts für Entwickler?

Es ist selten, dass es ein Tool, das es Stand heute nur für Linux gibt, in unzählige Microsoft-Blogs und sogar auf die TechEd schafft. Docker ist dieses Kunststück im letzten Jahr gelungen. Ein Grund ist sicherlich zum einen die neue Offenheit von Microsoft hinsichtlich Linux. Der Hauptgrund ist aber die Begeisterung über das große Potenzial, das Docker hat. Dass Docker für Administratoren ein Thema ist, um das sie 2015 nicht herumkommen werden, scheint offensichtlich. Wie sieht es aber mit der Relevanz für uns Softwareentwickler aus? Wird Docker unseren Entwicklungsalltag beeinflussen?

Rainer Stropek


Video: Die neue Offenheit

Docker ist ein Werkzeug zur Virtualisierung von Anwendungen in Containern. Sie fragen sich vielleicht, wozu eine neue Virtualisierungstechnologie? Was ist falsch an Hyper-V, VMware und Co.? Sie bieten doch enorme Flexibilität. Ein Linux am Windows-Server betreiben? Kein Problem mit Hyper-V. Genau diese Flexibilität ist es, die klassische Virtualisierungslösungen oft langsam und schwerfällig erscheinen lassen.

Stellen Sie sich vor, Sie könnten Ihren virtuellen Build-Server in unter einer Sekunde starten und genauso schnell wieder stoppen. Welche Auswirkungen hätte das auf den Build-Prozess? Es wäre denkbar, für jede Übersetzung Ihrer Anwendung eine neue, frische Serverinstanz zu starten. Was würde sich ändern, wenn Sie zum Debuggen nicht mehr einen lokalen Entwicklungswebserver starten, sondern jedes Mal einen frischen Server in Sekundenbruchteilen hochfahren, in dem Ihre Anwendung automatisch installiert wird? Ihre Anwendung würde später in Produktion exakt die gleiche virtuelle Infrastruktur vorfinden. Konfigurations- und Kompatibilitätsprobleme, die nur in der Produktionsumgebung auftreten, würden auf ein Minimum reduziert. Bei einer so leichtgewichtigen Virtualisierung könnte man auch viel „verschwenderischer“ mit virtuellen Maschinen umgehen. Warum mehrere Anwendungen auf einen Server packen, wenn man sie mithilfe von Containern sauber trennen kann? Wieso nicht die produktive Cluster-Umgebung mit Containern am lokalen Entwicklerrechner nachstellen? Mögliche Fehler durch gegenseitiges, negatives Beeinflussen oder Unterschiede zwischen Produktions- und Entwicklungsumgebung gehörten so der Vergangenheit an.

Containertechnologie = leichtgewichtige Virtualisierung

Bei klassischen Virtualisierungslösungen wie Hyper-V wird ein kompletter Computer mit eigenem Betriebssystem via Emulator oder Hypervisor simuliert. Als Benutzer eines solchen Systems können Sie jedes beliebige Betriebssystem als virtuelle Maschine installieren. Selbst die Mischung von Betriebssystemen (z. B. Windows auf Linux) ist kein Problem. Den Vorteil der Flexibilität bezahlt man durch relativ hohen Overhead. Will man zum Beispiel auf einem physischen Computer mehrere virtuelle Server mit identischen Betriebssystemen betreiben, braucht jeder virtuelle Server eine eigene Betriebssystemkopie. Das benötigt Speicher, erhöht den Wartungsaufwand und ist schwerfällig in der Handhabung (z. B. langsames Starten der Server).

Container sind eine leichtgewichtigere Altern...

Windows Developer
Bedeutung von Containertechnologie in der Softwareentwicklung

Docker - was bringts für Entwickler?

Es ist selten, dass es ein Tool, das es Stand heute nur für Linux gibt, in unzählige Microsoft-Blogs und sogar auf die TechEd schafft. Docker ist dieses Kunststück im letzten Jahr gelungen. Ein Grund ist sicherlich zum einen die neue Offenheit von Microsoft hinsichtlich Linux. Der Hauptgrund ist aber die Begeisterung über das große Potenzial, das Docker hat. Dass Docker für Administratoren ein Thema ist, um das sie 2015 nicht herumkommen werden, scheint offensichtlich. Wie sieht es aber mit der Relevanz für uns Softwareentwickler aus? Wird Docker unseren Entwicklungsalltag beeinflussen?

Rainer Stropek


Video: Die neue Offenheit

Docker ist ein Werkzeug zur Virtualisierung von Anwendungen in Containern. Sie fragen sich vielleicht, wozu eine neue Virtualisierungstechnologie? Was ist falsch an Hyper-V, VMware und Co.? Sie bieten doch enorme Flexibilität. Ein Linux am Windows-Server betreiben? Kein Problem mit Hyper-V. Genau diese Flexibilität ist es, die klassische Virtualisierungslösungen oft langsam und schwerfällig erscheinen lassen.

Stellen Sie sich vor, Sie könnten Ihren virtuellen Build-Server in unter einer Sekunde starten und genauso schnell wieder stoppen. Welche Auswirkungen hätte das auf den Build-Prozess? Es wäre denkbar, für jede Übersetzung Ihrer Anwendung eine neue, frische Serverinstanz zu starten. Was würde sich ändern, wenn Sie zum Debuggen nicht mehr einen lokalen Entwicklungswebserver starten, sondern jedes Mal einen frischen Server in Sekundenbruchteilen hochfahren, in dem Ihre Anwendung automatisch installiert wird? Ihre Anwendung würde später in Produktion exakt die gleiche virtuelle Infrastruktur vorfinden. Konfigurations- und Kompatibilitätsprobleme, die nur in der Produktionsumgebung auftreten, würden auf ein Minimum reduziert. Bei einer so leichtgewichtigen Virtualisierung könnte man auch viel „verschwenderischer“ mit virtuellen Maschinen umgehen. Warum mehrere Anwendungen auf einen Server packen, wenn man sie mithilfe von Containern sauber trennen kann? Wieso nicht die produktive Cluster-Umgebung mit Containern am lokalen Entwicklerrechner nachstellen? Mögliche Fehler durch gegenseitiges, negatives Beeinflussen oder Unterschiede zwischen Produktions- und Entwicklungsumgebung gehörten so der Vergangenheit an.

Containertechnologie = leichtgewichtige Virtualisierung

Bei klassischen Virtualisierungslösungen wie Hyper-V wird ein kompletter Computer mit eigenem Betriebssystem via Emulator oder Hypervisor simuliert. Als Benutzer eines solchen Systems können Sie jedes beliebige Betriebssystem als virtuelle Maschine installieren. Selbst die Mischung von Betriebssystemen (z. B. Windows auf Linux) ist kein Problem. Den Vorteil der Flexibilität bezahlt man durch relativ hohen Overhead. Will man zum Beispiel auf einem physischen Computer mehrere virtuelle Server mit identischen Betriebssystemen betreiben, braucht jeder virtuelle Server eine eigene Betriebssystemkopie. Das benötigt Speicher, erhöht den Wartungsaufwand und ist schwerfällig in der Handhabung (z. B. langsames Starten der Server).

Container sind eine leichtgewichtigere Altern...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang