Cloud Development Environments (CDEs) sind eine neue Produktkategorie. In den letzten zwei Jahren sind deshalb viele neue Anbieter auf dem Markt erschienen. Und jeder hat eine etwas andere Vorstellung davon, wie eine CDE aussehen sollte. In diesem Artikel erkläre ich die gängigste Architektur und die Funktionen von CDEs und was Cloudomation DevStack einzigartig macht.
Die Standard CDE-Architektur
Die gängigste CDE-Architektur funktioniert wie folgt:
- Entwickler_innen haben einen ssh-fähigen IDE-Client auf dem Laptop installiert (z. B. VS Code oder IntelliJ).
Der IDE-Client verbindet sich mit dem IDE-Backend auf der CDE - Die CDE ist entweder ein Container (sehr verbreitet) oder eine (Mikro-)VM
- Die CDE enthält:
- IDE-Backend
- Source-Code-Repository
- Erforderliche Laufzeiten und SDKs
- Andere benötigte Tools, z.B. Linter oder Debugger
- Normalerweise muss die Software, an welche die Entwickler_innen arbeiten, auch in der CDE bereitgestellt werden. Funktional gibt es hier aber große Unterschiede zwischen den verschiedenen CDE-Produkten.
- Viele CDEs arbeiten mit In-Browser-IDEs zusammen, sodass keine Geräteabhängigkeit besteht. Entwickler_innen können dann auf jedem Gerät arbeiten.
Die Architektur von Cloudomation DevStack
Das Hauptziel von DevStack ist, dass sich die Arbeit mit der CDE genauso anfühlen soll wie die Arbeit in der lokalen Entwicklungsumgebung. Der Wechsel zur CDE sollte reibungslos erfolgen und kaum oder gar keine Änderungen an den Gewohnheiten und Vorlieben der Entwickler_innen erfordern. Um dies zu erreichen, unterscheidet sich DevStack in mehreren Aspekten von den meisten anderen CDE-Anbietern:
Auswahl einer beliebigen IDE
Aufgrund der Möglichkeit, Quellcode über ein gemeinsames Laufwerk auf dem Laptop des Entwicklers zwischenzuspeichern, können Entwickler_innen jede beliebige IDE verwenden. Es ist nicht erforderlich, eine SSH-fähige oder browserbasierte IDE zu verwenden. Diese können aber auch verwendet werden.
Zwischenspeichern von Dateien im freigegebenen Laufwerk
Entwickler_innen möchten oder müssen häufig Dateien überprüfen, die ihre Software erstellen oder mit denen sie interagieren – Berichte, Logs oder andere Dokumente oder Objekte.
Bei den meisten CDEs ist das umständlich, da Entwickler_innen oft keinen direkten Zugriff auf die CDE haben. Und wenn sie Zugriff haben, können sie nur über SSH mit Remote-Dateien im Terminal arbeiten. Entwickler_innen müssen entweder die Dateien im Terminal überprüfen, was umständlich und für einige Dateitypen unmöglich ist, oder sie kopieren Dateien auf ihre lokalen Rechner, was auch umständlich und langsam ist, insbesondere wenn Änderungen an den Dateien iterativ überprüft werden müssen .
Mit DevStack können Entwickler_innen Dateipfade auswählen, die sie lokal bereitstellen können, sodass Dateien automatisch mit dem CDE synchronisiert werden.
Zugriff auf die CDE
Entwickler_innen haben vollen Zugriff via SSH auf die CDE und können mit der zu entwickelnden Software über das Terminal genauso arbeiten, als ob die Software lokal ausgeführt wird.
CDE als VM
DevStacks stellt vollwertige VMs bereit. Die meisten anderen CDE-Produkte verwenden Container als CDEs und stellen manchmal einzelne VMs für jeden Dev-Container bereit, um eine vollständige Trennung der CDEs sicherzustellen. Es wird aber kein Zugriff auf die VM ermöglicht. Außerdem werden Entwickler_innen-Tools im Entwicklungscontainer und nicht auf der VM bereitgestellt.
Mit DevStack werden Tools direkt auf der VM bereitgestellt, sodass der Abstand zwischen Devs und der von ihnen entwickelten Anwendung minimal ist. Mit der Verwendung einer vollwertigen VM ist es zusätzlich möglich, Multi-Component, Heavy-Duty-Software in der CDE zu deployen. Mit einem einzelnen Entwicklungscontainer ist das nicht möglich.
Zusammenfassung
Auch, wenn es sich um eine neue Produktkategorie bei Cloud Development Environments handelt: Es lässt sich eine Architektur beobachten, der die meisten CDE-Produkte folgen. DevStack zeichnet sich dadurch aus, dass es diese Standardarchitektur so erweitert. Dadurch werden Hindernisse beim Wechsel von der lokalen zur cloud basierten Entwicklung abgebaut und es wird Developern ermöglicht, nahezu auf die gleiche Art und Weise wie zuvor weiterzuarbeiten.
Jetzt den Cloudomation-Newsletter abonnieren
Werden Sie Cloudomation-Insider. Immer am Ende des Monats neue News zum Thema „Cloud Development Environments“ und „DevOps“ erhalten.