Cloudomation DevStack:
Die Amazon CodeCatalyst Alternative

Mit Cloudomation DevStack ganz einfach Cloud Development Environments (CDEs) deployen, die Entwickler_innen im Self-Service starten können.

Cloudomation DevStack vs. Amazon CodeCatalyst

Feature Cloudomation DevStack Amazon CodeCatalyst
Hosting
Self-Managed, Managed On-Premise,
Managed Cloud (SaaS)
SaaS Die komplexen Angebote der großen Cloud-Anbieter erfordern fundierte Fachkenntnisse in der Verwaltung, obwohl sie als SaaS bereitgestellt werden. Dadurch unterscheiden sich diese Angebote von "Login and use" SaaS-Produkten.
Abrechnung
Pro Stunde CDE-Laufzeit
Pro User
Ungefähre Kosten SaaS /
Entwickler / Jahr
Bei 1920 Stunden CDE Laufzeit / Jahr mit 8 CPUs & 16GB RAM
€ 1.500 € 1000 Lizenz + € 500 Infrastrukturkosten
$ 1200 $ 240 Lizenz + $ 960 Infrastrukturkosten. Details siehe unten
Ungefähre Kosten Self-Hosted /
Entwickler / Jahr
Bei 1920 Stunden CDE Laufzeit / Jahr mit 8CPUs & 16GB RAM
€ 1.000
Self-hosting nicht möglich
Unterstützte IDEs
Alle IDEs
(z.B. Visual Studio Code, Jetbrains mit und ohne
SSH, Eclipse, Netbeans, Web IDEs, ...)
AWS Cloud9 IDE, VS Code,
JetBrains IDEs
CDEs sind
VMs
Ein Container
Docker in der CDE
Ja
Nein
Custom Blueprints Benutzerdefinierte CDE Konfiguration, z.B. mit custom deployment Skripten
Ja
Nur im Enterprise Tier
Offline arbeiten möglich
Ja Source Code kann auf Entwicklerlaptop gespiegelt werden, um offline Arbeiten zu ermöglichen
Nein
Für Backend-Entwicklung geeignet
Ja Dank VM-basierter CDEs können auch schwergewichtige Backends mit komplexer Deployment-Logik auf der CDE laufen
Nein Da CDEs einzelne Container sind, können nur leichtgewichtige Web-Apps o.ä. mit simpler Deployment-Logik in der CDE laufen
Einfacher Umstieg für Entwickler:innen
Ja Lokale Spiegelung von Source Code ermöglicht Entwickler:innen Arbeit "wie immer". Nutzung der CDE erfordert kaum Änderung der Arbeitsweise
Nein Rein online im in-Browser Editor arbeiten bedeutet deutliche Änderung der Arbeitsweise für Entwickler:innen

Quellen: https://codecatalyst.aws/explore/dev-environments, https://docs.aws.amazon.com/codecatalyst/latest/userguide/devenvironment.html

Amazon CodeCatalyst vs. Cloudomation DevStack

Amazon CodeCatalyst kurz erklärt

Amazon nennt seinen CodeCatalyst einen „Softwareentwicklungsdienst“, der Automatisierungs- und Cloud-Ressourcen für eine Reihe verschiedener DevOps-Prozesse anbieten soll, darunter auch CDEs. 

CodeCatalyst ist Teil des Cloud Angebots von Amazon Web Services (AWS) und ausschließlich in der Cloud verfügbar. 

Amazon Code Catalyst Dev Environment Erstellung und Konfiguration

In klassischer AWS-Manier sind Entwickler_innen der vollen Komplexität der AWS Produktpalette ausgesetzt. Um eine CDE zu erstellen, klicken sich Entwickler_innen durch ein vielfältiges Konfigurationsmenü. Ob und welche  Konfigurationsmöglichkeiten bestehen, hängt vom gewählten Lizenzmodell ab. Im Standard-Tier ($ 48 / Jahr + variable Infrastrukturkosten) können ausschließlich Templates aus öffentlichen Container-Repositories verwendet werden. Für benutzerdefinierte Templates braucht man den Enterprise-Tier ($ 240 / Jahr + variable Infrastrukturkosten). Da die CDEs einzelne Container sind, ist es aber ohnehin nicht zu empfehlen, komplexe Custom-Deployments in die CDE bringen zu wollen. 

Um den CDE container selbst zu konfigurieren, kann ein devfile.yaml genutzt werden. In diesem yaml wird z.B. gewählt, welches Container Image verwendet werden soll.

Grundsätzlich sieht das CodeCatalyst CDE Modell auch nicht vor, komplexe Software innerhalb der CDE zu betreiben, sondern geht davon aus, dass AWS-basierte Software entwickelt wird. Das heißt, dass Entwickler_innen ihre Software ohnehin in AWS Ressourcen (Container, VMs, Cluster …) deployen würden und dass diese Deployment Prozesse auch für die Arbeit mit CDEs genutzt werden. Die Krux dabei: So sind Entwickler_innen wieder von ihren Deployments „getrennt“ und haben kein Äquivalent eines lokalen Deployments zur Verfügung. Um z.B. auf Logs zuzugreifen, müssen sich Entwickler_innen zu diesen externen Ressourcen verbinden. Setups dieser Art sind nicht auf inner-loop-Bedürfnisse ausgerichtet. Eine häufige Konsequenz daraus: Entwickler_innen versuchen erst recht, ihre Software lokal zu betreiben. 

Amazon CodeCatalyst Dev Environment Preise erklärt

Beim Pricing liegt der Teufel im Detail: Wie bei allen AWS Produkten wird für eine große Anzahl an einzelnen Punkten separat verrechnet. In jedem Lizenzpaket sind Quotas für jeden der Kostenpunkte inkludiert. So wird z.B. zur CDE Laufzeit separat und zusätzlich „compute“ verrechnet, welche für die Durchführung von rechenintensiven Tasks auf der CDE verwendet werden (tests, build etc.). Wie viel compute in einem Lizenzpaket inkludiert ist, hängt vom benötigten Maschinentyp ab. Bei Nutzung einer 8 CPU / 16GB RAM Maschine sind, je nach Paket, 6,25 – 12,5 Stunden / Monat an compute inkludiert – nicht viel. Wenn ein User über die Grenzen hinauskommt, werden die Kosten schnell sehr hoch: so kostet z.B. eine zusätzliche Stunde compute gleich $ 1,20.

Wie hoch die Kosten pro Monat und Nutzer dann tatsächlich sind, ist bei CodeCatalyst ähnlich schwer zu schätzen wie für andere AWS Produkte. Wir haben uns bemüht und nach einem durchschnittlichen Nutzungsmodell, wie wir es bei unseren eigenen Entwickler_innen sehen, eine Kostenschätzung für berechnet.

Kurz zusammengefasst:

  • 8 vCPU / 16GB RAM Maschine für das Dev Environment sowie für compute
  • 160 Nutzungsstunden des Dev Environments / Monat
  • 25 Stunden (1500 Minuten) compute für builds & tests / Monat
  • Gesamtkosten pro Entwickler_in: $ 97,70 / Monat oder $1172,40 / Jahr

Mehr dazu: Amazon CodeCatalyst: Das Preismodell erklärt

Für wen ist Amazon CodeCatalyst geeignet

Amazon CodeCatalyst richtet sich an Unternehmen, die ihre Software bereits primär in der AWS Cloud betreiben. Die Idee ist, dass über CodeCatalyst Teile bestehender Automatisierungen – wie z.B. Build- oder Test-Container – wiederverwendet werden können. Damit soll die Entwickler_innen-Arbeit auch näher an der Produktivumgebung stattfinden und „works on my machine“-Probleme mildern. 

Das Problem dabei ist, dass ein solchen Setup nicht an den Bedürfnissen von Entwickler_innen ausgerichtet ist. Mit Amazon CodeCatalyst haben Entwickler_innen die Möglichkeit, rein online und unabhängig von ihren lokalen Rechner an Code zu arbeiten, und Code-Änderungen direkt in verbundene CI/CD Pipelines zu pushen. Es gibt aber kein direktes Äquivalent eines lokalen Builds. Das führt dazu, dass Entwickler_innen länger auf Feedback warten müssen, seltener einen Build durchführen und größere Code-Änderungen auf einmal builden. Das wiederum führt zu langsamerem Lernen und schlechterer Qualität in der entwickelten Software

Der größte Vorteil von Amazon CodeCatalyst ist, dass es grundsätzlich flexibel ist. Mit der Enterprise-Subscription ist es möglich, vom vorgegebenen Modell von CodeCatalyst abzuweichen und eigene Workflows abzubilden. Dem Grundkonzept von einem einzelnen Container als Entwicklungsumgebung entkommt man aber nicht, wodurch grundsätzlich die Co-Location von Code und gebauter Software in einer Umgebung (wie bei einem lokalen Build) nicht möglich ist. 

Cloudomation DevStack kurz erklärt

Cloudomation DevStack ist eine Plattform für das automatisierte Deployment und Management von Cloud Development Environments (CDEs). Die DevStack Plattform inkludiert Cloudomation Engine, eine Python-basierte Automatisierungs-Engine, über welche das Deployment von CDEs durchgeführt wird. 

Cloudomation DevStack kann On-Premise selbst betrieben werden, oder als managed Service sowohl in eigener Infrastruktur (managed on-premise) oder in der Cloud (SaaS) bezogen werden. 

Das Standard-Deployment erfolgt auf Basis von VMs, auf denen die Entwicklungstools ausgeführt werden. Es ist möglich, einen einzelnen Devcontainer in die CDE zu deployen, um Software direkt auf der VM zu auszuführen. Es kann auch ein komplettes Kubernetes-Cluster deployed werden – je nach Bedarf.

Der Quellcode wird mit der lokalen Maschine der Entwickler_innen synchronisiert und ermöglicht es, jede IDE zu wählen. SSH-fähige IDEs wie VS Code oder JetBrains IDEs können ebenfalls verwendet werden, wobei das IDE-Backend auf der CDE läuft. Wenn Sie komplexe Software ausführen möchten, ist der VM-Ansatz von Cloudomation sehr flexibel.

Cloudomation DevStack Dev Environment Erstellung und Konfiguration

Die Konfiguration von CDEs in DevStack erfolgt in zwei Ebenen. In Cloudomation Engine wird grundlegende Konfiguration in „CDE Types“ festgelegt. Die CDE Types können beliebige Konfiguration beinhalten, die für das Deployment der jeweiligen CDE und darauf laufender Softeware relevant sind. Es kann aus fertigen Templates für CDE Types gewählt werden – z.B. for node.js Projekte, oder wenn Standards wie devfile oder devcontainer.json genutzt werden sollen, etc. Die Templates können nach belieben erweitert, oder ganz eigene CDE Types erstellt werden. Die Standard-Templates sehen vor, dass volle VMs als CDEs deployed werden. Auch das kann bei Bedarf angepasst werden und z.B. nur Container als CDEs deployed werden.

Basierend auf der CDE-Type Konfiguration werden zugehörige Automatisierungen definiert, welche CDEs in der jeweiligen Konfiguration erstellen. Diese Automatisierungen sind in Python definiert. Auch hier kann aus bestehenden Templates gewählt werden, welche angepasst, oder ganz eigene Automatisierungsskripte in Python erstellt werden. 

Die zweite Ebene an Konfiguration ist frei definierbar und bestimmt, welche zusätzlichen Konfigurationsoptionen Entwickler_innen bei der Erstellung einer CDE zur Verfügung stehen. Diese Konfigurationsoptionen stehen Entwickler_innen in einem Self-Service Portal zur Verfügung. Dort wählen sie in einem kleinen Formular einen CDE-Typ sowie optionale weitere Konfigurationen, die spezifisch für die jeweilige Software sind, die in die CDE deployed werden soll (z.B. ob und welche Testdaten in die CDE geladen werden sollen o.ä.).

Entwickler_innen erstellen sich über das Self-Service Portal selbständig CDEs in einer einfachen, sauberen Oberfläche. Über ein CLI können Entwickler_innen den Source Code lokal spiegeln und, wenn gewünscht, lokal mit ihren präferierten Werkzeugen (z.B. IDE) arbeiten. Ports können lokal forwarded werden, Logs von der CDE im lokalen Terminal ausgegeben werden. Entwickler_innen können sich über das CLI interaktiv mit der CDE verbinden und „wie lokal“ mit der dort deployten Software arbeiten. Sind Entwickler_innen offline, können sie weiterhin am Code arbeiten.

Bestehende Arbeitsweisen von Entwickler_innen bleiben damit unverändert, der Umstieg auf eine CDE erfordert kaum Anpassung. Nur problematische Teile der lokalen Entwicklungsumgebung werden in die CDE gehoben: das lokale Deployment sowie ressourcenintensive Aufgaben wie Tests. 

Cloudomation DevStack Dev Environment Preise erklärt

Das Pricing von Cloudomation DevStack basiert auf der Laufzeit von CDEs. Es können Lizenzpakete erworben werden, welche CDE-Runtime-Minuten umfassen, die zwischen allen Benutzer:innen geteilt werden. Das Lizenzmodell ist so designed, dass für Vollzeit-Entwickler_innen mit einer CDE-Laufzeit von 160 Stunden / Monat (1920 Stunden / Jahr) rund € 1000 / Jahr an Lizenzkosten anfallen. 

Je nach gewählten Deployment-Modell werden im SaaS-Modell Infrastrukturkosten für den Betrieb von CDEs ohne Aufschlag weiterverrechnet. So behalten Kunden volle Flexibilität über benötigte Ressourcen, da keine Einschränkungen in Bezug auf Maschinentyp etc. bestehen. Für eine relativ große CDE Maschine mit 8 Cores und 16GB RAM fallen z.B. € 0,27 / Stunde an Kosten an. 

Für wen ist Cloudomation DevStack geeignet

Cloudomation DevStack unterscheidet sich von anderen CDE Produkten vor allem durch die Flexibiltät und Transparenz der unterliegenden Automatisierung. Durch die Nutzung einer mächtigen Automatisierungsplattform ist Nachvollziehbarkeit und Robustheit der automatisierten CDE-Erstellung garantiert. Damit ist DevStack besonders geeignet für:

  • Software mit speziellen Deployment-Anforderungen, wie z.B. sehr viele Komponenten mit komplexen oder zeitkritischen Abhängigkeiten zueinander, oder nicht-Containerisierte Deployments, oder sonstigen speziellen Anforderungen,
  • Backend Komponenten, welche nicht in einzelne Container deployed werden können,
  • Software, die Artefakte produziert, auf die Entwickler_innen direkten Zugriff brauchen (Reports, Daten, Bilder etc.),
  • Unterschiedliche CDE Varianten, die übersichtlich und einfach wartbar bleiben sollen,
  • Unternehmen, die Unabhängigkeit von Cloud-Anbietern suchen,
  • Einfachen Umstieg auf CDEs, die wenig Änderung in der Arbeitsweise von Entwickler_innen verlangt,
  • Entwickler_innen, die auch ab und zu offline arbeiten oder nur langsame / unterbrochene Internetverbindung haben.

Features

Die wichtigsten Features von Cloudomation DevStack im Überblick.

Self-Managed, Managed On-Premise, Managed Cloud (SaaS)

Entscheiden Sie über Ihr bevorzugtes Hosting.

Environments auf Basis von VMs

Entwicklungsumgebungen auf VM-Basis, in denen die zu entwickelnde Software und alle benötigten Tools verfügbar sind.

Air Gapped

Die Entwicklungsumgebung Air Gapped einrichten. Der Source Code liegt nicht am Entwicklerlaptop. Testdaten können abgeschirmt genutzt werden.

Zentrale Konfiguration

Konfigurieren Sie die Entwicklungsumgebungen für alle Entwickler_innen und legen Sie fest, welche Tools zur Verfügung stehen.

Self-Service Portal für Entwickler_innen

Selbstständiges Starten und Beenden der Entwicklungsumgebungen.

Automatisierungsplattform

Neben Cloudomation DevStack steht Cloudomation Engine zur Verfügung, ein Pro-Code Automatisierungstool auf Basis von Python.

Mehr über Cloudomation DevStack erfahren

Lernen Sie unser Produkt kennen.

Cloudomation DevStack

Cloudomation DevStack kennenlernen