Otto – Teil 1: Wer ist Otto?

HashiCorp – die Entwickler von Vagrant – haben ihr neuestes Projekt vorgestellt: Otto. Und Otto hat es in sich! Inoffiziell bereits als Vagrant Nachfolger betitelt soll Otto uns die Erstellung von Entwicklungsmaschinen als auch das Deployment unserer Projekte auf Cloudserver erleichtern.

Ich habe mir die aktuelle Version 0.1 angesehen und bin schon ziemlich begeistert und sehr gespannt, was da noch auf uns zukommt. Noch ist der Funktionsumfang sehr eingeschränkt doch das dürfte sich in der nächsten Zeit rasch ändern – die Pläne sind groß. In diesem Artikel gebe ich dir einen kleinen ersten Überblick, was Otto bereits kann.

Wer ist Otto und was macht er so?

Otto ist ein (noch) kleines Tool welches die Arbeit mit Entwicklungsumgebungen erleichtert – ähnlich wie zum Beispiel Vagrant oder Docker (mit denen Otto übrigens gerne zusammen spielt). Dabei hat Otto allerdings einige Besonderheiten:

  1. Otto hat eine eigene Meinung. Das bedeutet, es kommt mit einer Basiskonfiguration und versucht automatisch rauszufinden, was wir eigentlich gerade für einen Server brauchen. Rufen wir Otto ohne Zusatzkonfiguration in einem PHP Projekt auf erkennt er das und installiert in der virtuellen Maschine automatisch PHP vor.
  2. Otto kann Abhängigkeiten auflösen. Was das bringt sehen wir etwas weiter unten.
  3. Otto bringt Deployment direkt mit. Wir können also Einstellungen festlegen (aktuell nur Amazon Web Services – was aber nicht lang so bleiben soll) und dann mit einem einfachen Konsolenbefehl unsere Applikation in die Cloud – und damit an die Öffentlichkeit – bringen. Selbst Dinge wie Load Balancing wird Otto dabei automatisch erledigen.

 

 

Abhängigkeiten voneinander trennen

Wie weiter oben bereits erwähnt ist eine Stärke von Otto das Auflösen von Abhängigkeiten. Microservices sind aktuell schwer im Kommen, das heißt man bricht Funktionalität in mehrere komplett getrennte Bereiche auf die sich dann gegenseitig nur noch als Abhängigkeit haben und lässt diese automatisiert auflösen.

Im Bereich der Programmierung ist das seit einigen Jahren Gang und Gäbe, denken wir nur an Packagemanager wie zum Beispiel composer oder npm. Auch Docker hat mit Docker Compose bereits erste Ansätze in diese Richtung.

Otto treibt diesen Ansatz nun etwas weiter und erlaubt das Hinzufügen von Abhängigkeiten zu einzelnen Umgebungen. Wir können also beispielsweise in einem PHP Projekt eine Abhängigkeit zu einem Apache2 Container einfügen. Dieser kann wiederum weitere Abhängigkeiten mit sich bringen. Otto wird diese komplett für uns auflösen und automatisch integrieren.

 

Otto das Laufen beibringen

Veranschaulichen wir diesen Artikel doch mit einem Beispiel. Dafür müssen wir natürlich Otto zuerst auf unserem Rechner installieren. Aktuell ist Otto eine simple exe Datei. Laden wir diese also zuerst herunter.

Speichern können wir die otto.exe wo wir möchten, allerdings müssen wir danach dafür sorgen, dass sie in unserer Windows PATH Variable zur Verfügung steht.
Dazu öffnen wir die Systemsteuerung und klicken auf System. Links finden wir den Menüpunkt Erweiterte Systemeinstellungen. Im sich öffnenden Fenster klicken wir dann auf Umgebungsvariablen und suchen in der Liste den Eintrag Path. Dort fügen wir am Ende (mit einem Strichpunkt getrennt) den Pfad zu dem Ordner ein, in dem unsere otto.exe liegt (beispielsweise C:\Otto\). Nach einem Klick auf Speichern ist Otto installiert und wir können es in der Kommandozeile verwenden.

 

 

Als nächsten Schritt können wir irgendwo eine php Datei (z.B. index.php) anlegen und sie mit einem einfachen Code füllen.

 

Nun können wir ein Kommandozeilentool (wie zum Beispiel Git Bash) öffnen und in den Ordner navigieren, in dem die PHP Datei liegt. Hier führen wir einfach nur folgenden Befehl aus und schon legt Otto mit der Arbeit los.

otto dev

Er erkennt nun automatisch die PHP Datei und legt los, eine virtuelle Maschine (VirtualBox muss installiert sein) einzurichten. Wenn wir uns das Logfile ansehen nimmt er uns auch direkt die Arbeit ab, PHP zu installieren und legt sogar noch Composer oben drauf – all das ohne eine einzige Sekunde Konfiguration (was natürlich aber auch möglich ist – dazu in einem späteren Artikel mehr). Am Ende bekommen wir noch eine IP geliefert unter der unsere virtuelle Maschine nun verfügbar ist.

Möchten wir nun diese virtuelle Maschine betreten genügt ein einfaches

otto dev ssh

und schon sehen wir mit dem Befehl php -v beispielsweise, dass PHP 5.6 installiert wurde.

 

 

Fazit

Wenn HashiCorp mit ihrer Vision von Otto so weitermacht wie sie angefangen haben bin ich begeistert. Die lästige Arbeit des Konfigurierens und Einrichtens von virtuellen Maschinen zur Entwicklung könnte uns zu einem Großteil abgenommen werden.
Ich weiß nicht wie es dir geht, aber ich richte sowieso meistens sehr ähnliche Maschinen ein wenn ich wieder ein neues Projekt starte: PHP in einer aktuellen Version, ein Webserver (ob das nun Apache2 oder Nginx ist ist mir relativ egal) und eine MySQL Datenbank. Dazu eine Laravel Installation und ich bin good to go.

Und genau diese Standardarbeit kann Otto mir abnehmen – zusätzlich mit der Aussicht, das geleistete dann auch ganz einfach und ohne großen Aufwand auf den Cloudanbieter meiner Wahl zu befördern.

Ich werde das Projekt Otto definitiv im Auge behalten und diese Artikelserie erweitern, wenn sich die nächsten Schritte tun. Schon für Version 0.2 wurden interessante Dinge angekündigt.

 

Mit welchen Tools entwickelst du auf deinem Rechner? Hast du mir einen Geheimtipp? Hinterlass mir gerne einen Kommentar.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*