5 Vorteile und 5 Gefahren
Die Vorteile von Entwicklungsumgebungen in der Cloud gehen weit über Effizienzgewinne beim Projekt-Onboarding hinaus. Nachfolgend meine Top 5:
- Skalierbarkeit: Cloud-Entwicklungsumgebungen können leicht auf die Anforderungen meines Projekts skalieren, ohne dass ich meine eigene Hardware aufstocken muss. Ich muss also nicht mehr einen überdimensionalen 5-Kilo-Entwicklungsnotebook durch die Gegend schleppen.
- Zugänglichkeit: Ich kann von überall auf der Welt und von jedem Gerät mit einem Browser auf meine Entwicklungsumgebung zugreifen, solange eine Internetverbindung besteht.
- Einheitlichkeit: Meine Entwicklungsumgebung ist weitgehend identisch mit denen meiner Mitentwickler:innen sowie den Test- und Prod-Umgebungen. Dieser Umstand wirkt dem “it works on my machine” Phänomen entgegen. Es gibt schliesslich kaum etwas Nervenaufreibenderes als einen Bug zu fixen, der lokal nicht reproduzierbar ist.
- Zusammenarbeit: Beim Coden unterstützen Kommentarfunktionen und Live-Editing das Pair Programming. Beim Reviewen von Code kann ich mühelos einen Pull Request in einem eigenen Entwicklungscontainer auschecken und laufen lassen.
- Verwaltung: Bestehendes Wissen zur Verwaltung von Containern, zu Build Pipelines und zu DevOps im Allgemeinen kann ich auf Entwicklungsumgebungen übertragen. So ist das automatisierte Ausliefern von Features und Security Patches an Entwickler:innen möglich. Das macht das Leben nicht nur einfacher, sondern auch sicherer. Denn die Software kommt in einem Container verpackt und muss nicht direkt auf Entwicklungsgeräten installiert werden.
Aus meiner Neugier wird nach und nach Begeisterung. Viele der genannten Punkte erinnern an Vorteile, die das Deployment von containerisierten Applikationen in der Cloud mit sich bringt. Entsprechend gibt es aber auch Gefahren, die Cloud-Entwicklungsumgebungen mit Cloud-Applikationen teilen:
- Internetabhängigkeit: Ohne oder mit einer instabilen Verbindung zum Internet kann ich mit Cloud-Entwicklungsumgebungen nicht oder nur schlecht arbeiten.
- Kosten: Bei einer lokalen Entwicklungsumgebungen fallen Kosten einmalig beim Kauf des Notebooks an. Anbieter von Cloud-Entwicklungsumgebungen verrechnen Kosten hingegen nutzenbasiert. Dadurch sind anfallende Kosten schwieriger planbar (Stichwort FinOps).
- Sicherheit und Datenschutz: Mein Code lebt in der Cloud, sprich auf fremden Servern. Dort ist er abgelegt und dort verarbeitet er empfindliche Daten. Ich muss mich mit (Cloud) Security auskennen und wissen, welche Datenschutzstandards mein Cloud-Anbieter unterstützt.
- Vendor Lock-in: Der Klassiker unter den Gefahren der Cloud. Indem ich Entwicklungsumgebungen zu einem Cloud-Anbieter auslagere, mache ich mich von ihm abhängig.
- Anpassbarkeit: Einheitliche Entwicklungsumgebungen bringen klare Vorteile mit sich (siehe oben). Gleichzeitig schränken sie mich in der individuellen Anpassbarkeit meiner Umgebungen ein.
Die ersten vier Gefahren sind nicht neu für Unternehmen, die bereits Services aus der Cloud beziehen. Für sie ist der Schritt Richtung Cloud-Entwicklungsumgebungen kleiner als für Cloud-unerprobte Unternehmen. Gleichzeitig sind für sie die Vorteile grösser, da sie Synergien zwischen den Cloud-Services nutzen können.