Das Problem: Die genervten Entwickelnden
Wer kennt es nicht: Voller Motivation startet man in das neue Projekt und möchte sofort die ersten Zeilen Quellcode commiten, doch zuerst muss die lokale Entwicklungsumgebung eingerichtet werden. Im Contribution Guide fehlt ein entscheidender Schritt und außerdem wurden zwischenzeitlich fünf neue Updates der Abhängigkeiten veröffentlicht. Statt produktiv zu entwickeln, verbringt man die ersten Tage damit Fehlermeldungen zu googeln.
Selbst wenn das initiale Setup geschafft ist, sind lokale Entwicklungsumgebungen anfällig für Probleme. Sollte eine Umgebung irgendwann dann endlich perfekt funktionieren, ist eine einzige, auf einen Kontext zugeschnittene Entwicklungsumgebung häufig nicht ausreichend und die Herausforderungen beginnen erneut.
Die Lösung: Entwicklungsumgebungen in der Cloud
Github ist angetreten dieses Problem zu lösen und bietet seit einigen Monaten das Produkt Codespaces an. Ein Codespace ist eine in der Cloud gehostete Entwicklungsumgebung, welche auf Visual Studio Code basiert.
Die Idee von Entwicklungsumgebungen in der Cloud ist nicht neu. So bietet z.B. die SAP mit dem Business Application Studio einen ähnlichen Service an. Dennoch lohnt sich der Blick auf Github Codespaces.
Was kann Github Codespaces besser als die Alternativen?
- Über Konfigurationsdateien als Teil des normalen Code Repositories, welches häufig sowieso bei Github gehostet wird, kann die Umgebung für den Entwickler vorkonfiguriert werden und steht so neuen Projektmitgliedern innerhalb von Sekunden und mit nur einem Klick zur Verfügung. Dies integriert sich perfekt in den bestehenden Entwicklungsworkflow.
- Github Codespaces erlauben die Verwendung von eigenen Dockerbuild Dateien als Basis der Entwicklungsumgebung. Alle benötigten Tools für die Entwicklung, zum Beispiel für die Ausführung von Abhängigkeiten, wie einer PostgreSQL Datenbank, können in die Entwicklungsumgebung integriert werden.
- Der Entwickler hat root Zugriff und kann somit weitere Tools nachinstallieren um zum Beispiel Webdriver.IO Tests in einem Headless Chrome auszuführen.
- Es stehen virtuelle Maschinen mit 2 bis 16 Kernen und 4 bis 32 Gigabyte RAM zur Verfügung. Je nach Anforderung kann jederzeit zwischen den Konfigurationen gewechselt werden.
Überzeugt? Hier gibt es alle Informationen zu Github Codespaces https://github.com/features/codespaces
