Interview mit Sven Efftinge, Product Manager von Gitpod & Co-Lead Theia

Neue IDE für GitHub-Projekte: Vorhang auf für Gitpod
Keine Kommentare

Gitpod ist eine neue IDE für GitHub-Projekte. Das neuartige Konzept erlaubt es, individuelle Entwicklungsumgebungen mit nur einem Klick direkt aus relevanten GitHub Repositorys zu erstellen. Hinter dem Projekt steht – wie schon beim Projekt Theia – das Unternehmen TypeFox. Dessen Mitgründer Sven Efftinge, der auch als Product Manager für Gitpod verantwortlich zeichnet, stellt im Interview das neue Konzept und den Zusammenhang zwischen Theia und Gitpod vor.

Gitpod & Eclipse Theia: Online-IDEs für GitHub-Projekte

Eine individuelle Entwicklungsumgebung mit nur einem Klick direkt aus relevanten GitHub Repositorys erstellen? Klingt fast ein wenig wie Science Fiction, ist aber mit Gitpod kein Problem mehr. Die Betaphase ist vorbei, das Projekt offiziell verfügbar. Wir sprachen mit Sven Efftinge, Product Manager von Gitpod und Co-Lead von Eclipse Theia, über die Projekte und deren Zusammenhang.

Entwickler: Ihr habt gerade das Projekt Gitpod veröffentlicht, ein Online-Service, der „Einweg-Entwicklungsumgebungen“ für GitHub-Projekte bereitstellt. Was genau ist darunter zu verstehen? Was macht Gitpod genau?

Sven Efftinge: Gitpod bietet eine komplette Entwicklungsumgebung für beliebige GitHub-Projekte auf Knopfdruck. Das einzige, was man braucht, ist ein Browser. Wenn ich als Entwickler an einem Projekt arbeiten will, muss ich zunächst normalerweise immer erst eine funktionierende Entwicklungsumgebung aufsetzen, bevor endlich programmiert werden kann. Da sitzt man dann oft vor veralteter oder unvollständiger Dokumentation und konfiguriert stundenlang am eigenen System herum. Das macht nicht nur keinen Spaß, sondern sorgt auch dafür, dass viele Versuche, zu einem Projekt beizutragen, scheitern.

Mit Gitpod gibt es keine ‚Works-on-my-machine‘-Momente mehr.

Mit Gitpod wird das Setup in Form von Dockerfiles beschrieben und auf Knopfdruck eine Entwicklungsumgebung gestartet. Je nachdem, wo auf GitHub der Knopf betätigt wurde, wird das Projekt gecloned und der entsprechende Branch ausgecheckt. Startet man von einem Issue, wird ein neuer Branch angelegt und mit dem Issue verlinkt. Von Pull Requests aus startet Gitpod im Code-Review-Modus. Dann kann man in der IDE die Changes durchschauen und kommentieren – also genau wie auf GitHub, nur eben mit voller Sprachunterstützung und der Möglichkeit, die Changes auszuführen.

Dank der Automatisierung des Setups haben alle Entwickler eines Projektes immer eine funktionierende Entwicklungsumgebung. Es gibt so keine „Works-on-my-machine“-Situationen mehr und alle können gemeinsam dafür sorgen, dass die Developer Experience des Projektes fabelhaft ist. Da die Konfiguration eingecheckt und damit versioniert wird, ist auch ein Bugfix auf einem alten Branch kein Problem mehr. Gitpod bietet „Einweg-Entwicklungsumgebungen“, weil jedes Mal, wenn der Button auf GitHub betätigt wird, ein neuer Workspace gestartet wird. Den benutzt man dann für einen bestimmten Task und schließt danach einfach den Browser. Fire and Forget. Ich muss nicht mehr mein System pflegen, updaten oder manuell mit dem Repository synch-en. Das ist wie Infrastructure as Code, nur eben für Entwicklungsumgebungen, deshalb nennen wir das Dev Environment as Code.

Gitpod Features

Entwickler: Welche Features hat die Entwicklungsumgebung, die so bereitgestellt wird?

Sven Efftinge: Jeder Gitpod Workspace läuft in einem eigenen Linux Container basierend auf einem projektspezifischen Docker Image. Damit stehen alle Linux CLI Tools, die ich für das jeweilige Projekt benötige, zur Verfügung. Als User Interface bekommt der Entwickler eine komplette IDE, die im Browser läuft. Mit Terminals und einem sehr schnellen, modernen Editor (VS Code) mit Toolunterstützung für die allermeisten Programmiersprachen schaffen wir eine Developer Experience, die sich nicht groß von dem unterscheidet, was Entwickler lokal benutzen; aber eben ohne den ganzen Konfigurations- und Wartungsaufwand.

Gitpod ist wie Infrastructure as Code, nur eben für IDEs – quasi Dev Environment as Code.

Darüber hinaus bringt Gitpod noch weitere nützliche Features mit. User können z.B. andere User einladen, einen laufenden Workspace zu öffnen, um beispielsweise gemeinsam Fehlerquellen zu identifizieren. Ein einzigartiges Feature sind Workspace Snapshots. Damit kann man den aktuellen Zustand eines Workspaces in einem Link speichern und diesen dann Teilen. Der Link erzeugt dann einen Clone von genau diesem Zustand. Das ist extrem hilfreich, wenn man z.B. unterschiedliche Startpunkte für Tutorials vorbereiten möchte oder einfach auf StackOverflow bzw. in einem Blog Code-Beispiele nachvollziehbar machen will.

Workspace Snapshots sind auch die Basis für die Prebuilt Workspaces: Wenn man unsere App aus dem GitHub Marketplace auf einem Repository installiert, baut Gitpod nach jeder Änderung das Projekt durch und macht dann einen Snapshot. Wenn nun jemand einen Workspace öffnet, bekommt der Entwickler das fertig durchgebaute Projekt inklusive aller Dependencys. Damit muss man dann endlich nicht mehr zuschauen, wie Maven das Internet herunterlädt.

Entwickler: In welchem Zusammenhang steht Gitpod mit Eclipse Theia, eurem vorigen Projekt?

Sven Efftinge: Eclipse Theia ist die IDE von Gitpod und macht ca. 50 Prozent der gesamten Code-Basis aus. Wir entwickeln das Projekt zusammen mit Ericsson, Red Hat und einigen anderen, etwa Google, die Theia als Google Cloud Shell anbieten. Theia basiert sehr stark auf dem hervorragenden VS Code und wird demnächst auch VS Code Extensions unterstützen. Die andere Hälfte von Gitpod beschäftigt sich mit der Provisionierung von Workspaces und ist in Go bzw. TypeScript implementiert. Gitpod ist zudem eine Microservices-Anwendung und läuft auf Kubernetes. Wir betreiben die Website Gitpod.io zur Zeit auf drei Clustern bei Google (Asien, Europa und Nordamerika). Damit stellen wir vernünftige Verbindungsgeschwindigkeiten in der ganzen Welt sicher.

Entwickler: Welche Vorteile hat Gitpod gegenüber „klassischen“ IDEs wie Eclipse / IntelliJ / Visual Studio und Web-IDEs wie VS Code, Eclipse Orion oder GitHubs Atom?

Sven Efftinge: Bis auf Eclipse Orion ist das ja die Liste der etablierten Editoren (+Sublime, Emacs, Vim). Wir finden von all diesen Optionen VS Code am ausgewogensten: Es ist schnell, hat eine sehr gute Sprachunterstützung und legt nicht über alles ein grafisches User Interface. Stattdessen wird auf der Kommandozeile aufgebaut. Genau diese Entwicklungsumgebung wollen wir mit einem Knopf für alle Projekte im Browser bereitstellen und zwar exakt in dem Zustand, den ich als Entwickler in der jeweiligen Situation benötige. Das ist Gitpod.

Entwickler: Wie kann man Gitpod beziehen? Welche Preismodelle gibt es?

Sven Efftinge: Wir haben einen kostenlosen Open-Source-Tarif, mit dem man bis zu 100 Stunden im Monat auf öffentlichen GitHub Repositorys arbeiten kann. Der Standard-Tarif kostet 17€ pro Monat und beinhaltet ebenfalls 100 Stunden, bietet aber die Möglichkeit, auch private Projekte zu öffnen. Für professionelle Entwickler bieten wir den Unlimited-Plan. Wie der Name suggeriert, gibt es hier keine Zeitbeschränkung, und man kann alle möglichen Repositorys bearbeiten. Dieser Tarif kostet 35€ im Monat. Schließlich kann man die Unlimited-Variante auch für ganze Teams erwerben, und für Studenten kostet der gleiche Tarif nur 8€ im Monat.

Entwickler: Wie geht es bei euch nun weiter? Welche Pläne habt ihr bzgl. Gitpod?

Sven Efftinge: Wir werden zunächst die Unterstützung der VS Code Extensions fertigstellen. Außerdem arbeiten wir an einer Optimierung der Startzeiten. Wir haben noch viele Ideen, wie wir die User Experience optimieren können, und brennen darauf, das umzusetzen. Parallel zu Gitpod.io werden wir im Mai eine Testversion von Gitpod Enterprise veröffentlichen. Gitpod Enterprise kann auf beliebigen Kubernetes Clustern installiert und mit GitHub-Enterprise- sowie GitLab-Installationen verbunden werden. Die Unterstützung für GitLab hatten wir tatsächlich schon im Januar fertig gestellt, haben uns aber entschieden, dieses Feature zunächst nicht in Gitpod.io zu aktivieren, weil GitLab als Service nicht besonders viel genutzt wird. Wir planen Gitpod Enterprise auch in einer von uns gehosteten Variante anzubieten.

Entwickler: Vielen Dank für dieses Interview!

Sven Efftinge liebt es, sich hübsche Plätze in der Produktentwicklung zu suchen. Im Fokus steht bei seinem Engagement stets der Pragmatismus und der Vorteil des Endnutzers. Er hat schon oft gezeigt, dass er eine kreative Quelle für viele erfolgreiche Technologien ist. Außerdem ist er Mitgründer von TypeFox, Co-Lead von Eclipse Theia und Product Manager von Gitpod. In seiner Freizeit verbringt er gerne viel Zeit mit seinen Kindern oder mit einem Kite auf der Ostsee.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -