Cloud Development Environments, Remote Development Environments, Standardised Development Environments…Was?

  • Veröffentlicht

In der IT-Branche, in der es vor Abkürzungen nur so strotzt, ist ein neuer Technologie-Hype ausgebrochen. Worum geht es? “There is a quiet revolution unfolding at tech companies: cloud development environments (CDEs)”, schreibt Gergely Orosz in seinem Blogpost “Why are Cloud Development Environments Spiking in Popularity, Now?

Gartner erwähnt Cloud Development Environments das erste Mal in ihrem neuen “Hype Cycle for Emerging Technologies”. “CDE”, dieses Akronym wird oft gebraucht, wenn es um diesen neuen “Hype” geht.

Tatsächlich ist dieser Begriff aber nicht sonderlich gut gewählt und wird in der Praxis auch ganz unterschiedlich verwendet. Anbieter sprechen zum Beispiel auch von Workstations, Cloud-based Platforms oder Remote Development Environments. Noch dazu werden von manchen Unternehmen auch reine Cloud-IDEs als CDEs bezeichnet.

Richard McManus von thenewstack hat den entstehenden Begriffs-Urwald gut eingeordnet, als ein Unternehmen noch einen weiteren Begriff benutzt hat: “I’m not sure a new acronym helps in a market already confused by what is or isn’t a “cloud IDE.

Es wird Zeit den Akronym-Jargon zu entrümpeln, um die Begriffe einzuordnen.

Als Synonym-Jäger im Begriffs-Urwald

Es gibt mehrere Begriffe, die für diese Technologie verwendet werden, die oft den gleichen Wortstamm haben (Development; Environment). Hier eine Übersicht:

  • Remote Development Environments (Cloudomation)
  • Cloud Development Environments (Gitpod)
  • Standardised Development Environments (Daytona)
  • Remote Development Workspaces (Gitlab)
  • Cloud Development Environment Platform (DevZero)
  • Cloud-based workstations (Microsoft)
  • Self-Hosted Remote Development Platform (Coder)
  • Generisch: Disposable Development Environments, on-demand cdes, self hosted remote development platform etc.

Prinzipiell beschreiben alle diese Begriffe eine Technologie, um Entwicklungsumgebungen in Sekunden zu deployen. Warum ist das sinnvoll? Dafür gibt es mehrere Gründe:

  • Das Setup ist schneller: Entwickler_innen starten einfach die Entwicklungsumgebung und beginnen zu Coden. Mit einer lokalen Entwicklungsumgebung muss zuerst die Umgebung eingerichtet werden. Das dauert.
  • Hardware spielt keine Rolle: Dev Tools bringen die Laptops der Entwickler_innen zum Glühen. Die bewährte Vorgehensweise: Einfach immer wieder neue, bessere Laptops kaufen. Mit RDEs ist die Hardware kein Problem, weil rechenintensive Tasks verlagert werden.
  • Sicherheit und Onboarding: Die Zeit zum Onboarding reduziert sich quasi auf Minuten. Auch externe Entwickler_innen können sofort mit ihrer Arbeit starten, egal wo sie sich befinden. Außerdem liegen Code und Testdaten nicht auf dem Laptop der Entwickler_innen.

Mehr darüber: Vorteile von RDEs

Die Probleme mit dem Begriffs-Urwald

  • Die Begriffe meinen zwar dasselbe, werden aber teilweise auch für andere Produkte missbraucht. Beispielsweise gibt es Anbieter, die mit CDE einfach nur einen Editor im Browser beschreiben. CDEs gehen aber viel weiter (Weiterführend: Was sind RDEs). Der Grund: Die Produktkategorie ist relativ neu.
  • Der Marketing-Trick: Natürlich will man sich von anderen Unternehmen abheben. Mit eigenen Begriffen schafft man sich ein Alleinstellungsmerkmal.

Outcome: Verwirrung und Intransparenz. Ein Vergleich der Anbieter wird schwierig und mühsam. Als interessierte Person muss man erstmal einen Synonym-Jagdschein machen, um gezielt auf die Suche nach Lösungen gehen zu können. (Hier haben wir übrigens ein paar Tools detaillierter aufgelistet)

Was tun? Entrümpeln. Aufräumen. Neu einordnen. Probieren wir das.
Beginnen wir bei den Basics. Was ist eigentlich eine Entwicklungsumgebung?

Back to the roots: Was sind Entwicklungsumgebungen?

Modern wie wir sind – fragen wir zuerst ChatGPT: „Eine Entwicklungsumgebung ist der virtuelle Arbeitsplatz eines Entwicklers, in dem Code geschrieben, getestet und debuggt wird. Sie umfasst nicht nur den Code-Editor, sondern auch Tools, Bibliotheken und Ressourcen, die für die Softwareentwicklung benötigt werden. Die Entwicklungsumgebung bietet eine Plattform, auf der Entwickler_innen effizient arbeiten können, unabhängig davon, ob sie lokal oder in der Cloud gehostet wird.

Eine Entwicklungsumgebung ist also ein für die Entwicklung konfigurierter Arbeitsbereich, in der Entwickler_innen Anwendungen erstellen, testen und debuggen, bevor sie ihre Code-Änderung in die allgemeine Code-Basis pushen. Das passiert traditionellerweise lokal, deshalb spricht man auch von der lokalen Entwicklungsumgebung.

Oft wird “IDE” mit der gesamten Entwicklungsumgebung gleichgesetzt. Es gibt aber einen Unterschied, den wir schon einmal in einem Beitrag aufgegriffen haben. Kurz in der Tabelle zusammengefasst:

IDE Lokale Entwicklungsumgebung
Werkzeug zur Erstellung, Bearbeitung
und Überprüfung von Code
Sammlung von Werkzeugen und Ressourcen
für die Entwicklung von Software
Beinhaltet normalerweise einen Editor,
Compiler/Interpreter, Debugger
Beinhaltet eine IDE, Compiler/Debugger,
Versionsverwaltung, Datenbank-Management-Systeme
(wenn benötigt) und alle Ressourcen, die für die Entwicklung
und Ausführung der Software benötigt werden.
Code-Erstellung im Fokus
Gesamte Entwicklung im Fokus

Wikipedia schreibt, dass “IDE” für mehr als ein Werkzeug/Editor steht: Der Aspekt integriert erfordert mehr als einzelne getrennt operierende Werkzeuge. Z.B. heißt das auch, dass die Prozesse der Softwareentwicklung oder auch des gesamten Software-Lebenszyklus begleitet und unterstützt werden. In der Praxis ist es aber üblich, eine IDE als einen Codeeditor wie VSCode zu bezeichnen, mit dem man arbeitet.

Folgen wir diesen Einordnungen, sind CDEs Entwicklungsumgebungen, die alle Werkzeuge und Ressourcen für die Entwicklung von Software zur Verfügung stellen.

Das ist wichtig, weil damit Cloud-IDEs klar eingeordnet sind und nicht mit CDEs gleichgesetzt werden können.

Eine Einordnung: CDEs, RDEs, SDEs?

Was genau unterscheidet die Begriffe?

Cloud Development Environments (CDEs)

Wie schon erwähnt ist CDE ein Begriff, der momentan am häufigsten in Verbindung mit der Technologie genannt wird. Cloud Dev Envs beschreiben Entwicklungsplattformen, die in der Cloud gehostet werden. Entwickler_innen können über das Internet auf die Umgebung zugreifen und mit den dort zur Verfügung gestellten Tools arbeiten. Der Nachteil des Begriffs steckt im Namen: CDE suggeriert, dass nur ein Hosting in der Cloud (SaaS) zur Verfügung steht.

Remote Development Environments (RDEs)

Remote Dev Envs beschreiben Entwicklungsplattformen, die entweder in der Cloud, oder selbst von Unternehmen gehostet werden. Was das Hosting betrifft, geht der Begriff also viel weiter als CDEs.

Standardised Development Environments (SDEs)

Ein neuer Begriff, der im Kontext dieser Technologie aufgetaucht ist. Eine standardisierte Entwicklungsumgebung soll eine konsistente, replizierbare und kontrollierte Umgebung sein. Nachteil: Unterschiede zwischen den Entwicklungsumgebungen sind genau das Problem, das diese Technologie lösen will. Ob deshalb ein neuer Begriff notwendig ist, der die Standardisierung extra hervorhebt, ist fraglich. Außerdem ist die Kategorisierung in “Standardisierte Entwicklungsumgebungen” und “Nicht-Standardisierte Entwicklungsumgebungen” nicht klar voneinander trennbar. Auch lokale Entwicklungsumgebungen sind bis zu einem gewissen Grad an unternehmenseigene Richtlinien angepasst.

Fazit

  • Cloud Development Environments sind im Trend. Der Begriff ist allerdings irreführend und wird uneinheitlich verwendet – z.B. auch für Cloud-IDEs.
  • Eine klare Einordnung wäre, CDEs als Entwicklungsumgebungen zu bezeichnen, die alle Werkzeuge und Ressourcen für die Entwicklung von Software zur Verfügung stellen.
  • CDEs suggerieren, dass die Entwicklungsumgebung nur in der Cloud verfügbar ist. Der Begriff Remote Development Environments (RDEs) geht weiter und schließt andere Hosting-Optionen mit ein.

Jetzt den Cloudomation-Newsletter abonnieren

Werden Sie Cloudomation-Insider. Immer am Ende des Monats neue News zum Thema „Cloud Development Environments“ und „DevOps“ erhalten. 




    Johannes Ebner

    Marketing Manager