Problemstellung	
  
Ein	
   häufiges	
   Problem	
   beim	
   Integrieren	
   neuer	
  
Entwickler	
   in	
   bestehende...
Maschinen	
   nicht	
   selbst,	
   sondern	
   delegiert	
   diese	
  
Aufgabe	
   an	
   sog.	
   Provisioner	
   wie	
 ...
diese	
   um	
   und	
   entwickeln	
   bestehende	
   Systeme	
  
weiter.	
   In	
   Zeiten	
   von	
   komplexen	
   Arb...
Nächste SlideShare
Wird geladen in …5
×

Vagrant

130 Aufrufe

Veröffentlicht am

Virtualisierung ermöglicht es auf einer bestehenden Plattform, dem sogenannten Hostsystem, virtuelle Hardware bereitzustellen. So können auf ein und derselben Hardware mehrere virtuelle Maschinen (VMs) parallel laufen, die dennoch vollständig voneinander isoliert sind.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
130
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
6
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Vagrant

  1. 1.   Problemstellung   Ein   häufiges   Problem   beim   Integrieren   neuer   Entwickler   in   bestehende   Software-­‐ Entwicklungsprojekte   stellt   das   initiale   Aufsetzen   der  benötigten  Tools  und  Technologien  dar,  die  für   das  Ausführen  der  Anwendung  nötig  ist.  Während   Quellcode   und   Dokumentation   in   der   Regel   an   einem   zentralen   Ort   für   alle   frei   zugänglich   sind,   trifft  dies  bei  ganzen  Umgebungen  eher  selten  zu.   Um   ihre   Anwendung   regelmäßig   lokal   zu   testen,   sind  die  Entwickler  beim  Aufsetzen  der  Umgebung   meist   auf   sich   allein   gestellt.   In   einer   typischen   Webanwendung   sind   die   eingesetzten   Applikationsserver   und   Datenbanken   den   Entwicklern   zwar   bekannt,   doch   nicht   zwingend   auch   die   eingesetzten   Versionen.   Eben   diese   Unschärfe  führt  dazu,  dass  bei  einem  Entwickler  die   Anwendung   fehlerfrei   läuft,   bei   einem   anderen   jedoch  nicht.  Dies  resultiert  in  unnötigem  Aufwand   für   sowohl   das   initiale   Aufsetzen,   als   auch   das   Finden  von  Fehlern.   Lösung   Um  neuen  Entwicklern  den  Einstieg  zu  vereinfachen   und   die   Fehlerquellen   zu   reduzieren,   ist   es   naheliegend   neben   dem   Quellcode   und   der   Dokumentation   auch   die   vollständige   Umgebung   zentral   bereitzustellen.   In   dieser   sind   alle   Komponenten   bereits   enthalten,   wodurch   jede   Umgebung   vollständig   identisch   zu   jeder   anderen   ist  -­‐  im  Idealfall  sogar  zur  Produktionsumgebung.   Mittels   Virtualisierung   lässt   sich   eben   dies   erreichen.   Ein   zentrales   Repository   verwaltet   die   Konfiguration   der   Umgebung   (die   sogenannte   Appliance),   mittels   derer   virtuelle   Maschinen   provisioniert   und   fertig   konfiguriert   werden   können.     Implementierung   Zur   Implementierung   dieser   Lösung   bietet   sich   Vagrant  [1]  an.  Vagrant  ist  ein  Tool  spezialisiert  auf   das   Erstellen   und   Konfigurieren   von   virtuellen   Maschinen.   Dabei   instanziiert   Vagrant   die   Virtualisierung   ermöglicht   es   auf   einer   bestehenden   Plattform,   dem   sogenannten   Hostsystem,   virtuelle   Hardware   bereitzustellen.   So   können   auf   ein   und   derselben   Hardware   mehrere   virtuelle   Maschinen   (VMs)   parallel  laufen,  die  dennoch  vollständig  voneinander  isoliert  sind.  Nicht  zuletzt  ist  es  genau  diese  Technologie,  die   das  Cloud  Computing  ermöglicht  hat.  In  großen  Datenzentren  werden  VMs  provisioniert  und  den  Kunden  zur   Verfügung  gestellt,  die  diese  dann  individuell  anpassen  können.   Virtualisierte  Umgebungen  mit  Vagrant  
  2. 2. Maschinen   nicht   selbst,   sondern   delegiert   diese   Aufgabe   an   sog.   Provisioner   wie   bspw.   Oracle   VirtualBox   [2].   Eine   zentrale   Konfigurationsdatei   (das  Vagrantfile)  ist  ausreichend  um  mittels  Vagrant   die  VM  erstellen  zu  lassen:       Die  Appliance  oder  auch  Box  zum  Bau  der  virtuellen   Maschine   kann   direkt   von   einem   Webserver   bezogen  werden.  Mittels  des  Vagrantfiles  kann  die   virtuelle  Maschine  nun  beliebig  angepasst  werden,   bspw.   um   die   verfügbare   virtuelle   Hardware   zu   ändern  oder  das  Netzwerk  zu  konfigurieren.  Mittels   hinterlegter   Skripte   oder   Tools   wie   Chef   [3]   oder   Puppet   [4]   (sog.   Provisioner)   lassen   sich   die   virtuellen   Maschinen   bis   ins   Detail   anpassen.   So   können   Pakte   installiert,   Server   konfiguriert   oder   neue  Nutzer  angelegt  werden:                 Somit   benötigen   Entwickler   nicht   mehr   als   die   Konfigurationsdatei   und   eine   Installation   von   Vagrant.   Ein   einfaches   vagrant  up   ist   ausreichend   um   die   Maschine   erstellen,   konfigurieren   und   starten   zu   lassen.   Auf   diese   kann   nun   mittels   SSH   direkt   zugegriffen   werden.   Ebenfalls   lassen   sich   lokale  Ordner  in  die  virtuelle  Maschine  spiegeln.  So   werden  Updates  auf  den  lokalen  Dateien  sofort  in   der  virtuellen  Umgebung  sichtbar.     Vorteile   Der   Einsatz   von   Virtualisierung   im   beschriebenen   Szenario   erlaubt   es   Entwicklern   viel   schneller   produktiv  zu  sein.  Der  Aufwand  zum  Aufsetzen  der   Umgebung   fällt   nun   nur   noch   beim   Erstellen   der   Konfiguration   einmalig   an.   Im   Falle   von   Updates   kann   die   virtuelle   Maschine   einfach   gestoppt   und   mit  der  neuen  Konfiguration  neu  gestartet  werden.   Genau   diese   Tatsache   macht   das   Experimentieren   mit  neuen  Versionen  viel  weniger  riskant.  So  kann   einfach   eine   neue   Komponente   in   der   virtuellen   Maschine   installiert   und   getestet   werden.   Führt   dies   zu   Fehlern,   wird   die   bestehende   VM   einfach   verworfen  und  eine  neue  gestartet.  Dies  dauert  in   der   Regel   nicht   länger   als   fünf   Minuten.   Das   Phänomen,   dass   Anwendungen   bei   einem   Entwickler   lokal   fehlerfrei   laufen,   bei   einem   anderen   jedoch   nicht,   lässt   sich   hinsichtlich   der   Umgebung   nun   auch   ausschließen.   Die   virtuellen   Maschinen   können   lokal   ausgeführt   werden   –   sie   können   aber   ebenso   auf   dedizierte   Hardware   der   jeweiligen   Firma   oder   sogar   in   der   Cloud   provisioniert  werden.  Somit  skaliert  dieser  Ansatz  je   nach   Größe   und   Bedarf   des   jeweiligen   Unternehmens.     Konsequenzen   Jedoch  gibt  es  auch  bei  diesem  Ansatz  Punkte,  die   zu   bedenken   sind.   So   muss   die   entsprechende   Infrastruktur   initial   aufgebaut   werden,   und   die   Appliances   müssen   konfiguriert   werden.   Auch   Vagrant   selbst   wird   stetig   weiterentwickelt,   wodurch   es   zu   verschiedenen   Versionen   kommt.   Wohingegen   sich   der   beschriebene   Workflow   bei   neuen  Projekten  sehr  gut  einsetzen  lässt,  bedarf  es   mehr  Aufwand  beim  Ändern  bestehender  Abläufe.   Das   Versionsproblem   von   Vagrant   selbst   wird   dadurch   adressiert,   dass   die   Konfiguration   unabhängig  von  der  jeweiligen  Version  ist,  und  auch   der   initiale   Aufwand   lässt   sich   mit   den   zu   erwartenden   Einsparungen   für   das   Aufsetzen   der   Umgebungen   und   Beheben   von   Fehlern   rechtfertigen.     Kompetenzen   techdev   Solutions   kann   Sie   bei   der   Einführung   virtualisierter  Abläufe  unterstützen.  Als  Partner  der   Deutsche   Börse   Cloud   Exchange   AG   sowie   durch   den   Einsatz   von   Vagrant   und   Chef   für   die   Entwicklung   der   eigenen   Softwarelösungen,   verfügt   techdev   über   umfangreiche   Erfahrung   im   Einsatz  von  Virtualisierung.   Wir  helfen  Ihnen  gerne!     Über  uns   techdev   Solutions   ist   der   unabhängige   Beratungspartner   für   anspruchsvolle   IT-­‐Projekte.   Gemeinsam   mit   unseren   Kunden   konzipieren   wir   individuell   abgestimmte   Softwarelösungen,   setzen   Vagrant.configure(“2”)  do  |config|      config.vm  =  “precise64”      config.vm.box_url  =  “http://files.acme.inc/precise64.box”      config.vm.provider  :virtualbox  do  |vb|          vb.customize  [“modifyvm”,  :id,  “-­‐-­‐cpus”,  2]          vb.customize  [“modifyvm”,  :id,  “-­‐-­‐memory”,  2048]      end   end   execute  “apt-­‐get  update”   package  “openjdk-­‐7-­‐jdk”   Listing 2 - Installieren eines JDK aus den Paketquellen   Listing 1 - Konfiguration einer Linux-basierten VM  
  3. 3. diese   um   und   entwickeln   bestehende   Systeme   weiter.   In   Zeiten   von   komplexen   Arbeitsabläufen   und  einer  hauptsächlich  von  Zeit-­‐  und  Kostendruck   bestimmten   Wettbewerbsfähigkeit,   sind   optimale   Prozesse   und   effiziente   IT-­‐Strukturen   oft   der   entscheidende   Vorteil,   welcher   unseren   Kunden   ihre  Favoritenrolle  sichert.   Kontakt techdev  Solutions  UG  (haftungsbeschränkt)   Bismarckstr.  47   76133  Karlsruhe     info@techdev.de   http://techdev.de     Referenzen   [1]  http://www.vagrantup.com/   [2]  https://www.virtualbox.org/   [3]  http://www.getchef.com/chef/   [4]  http://puppetlabs.com/  

×