Remote Development Environments: Ein Ansatz zur Bewältigung aktueller Herausforderungen in der Softwareentwicklung

  • Veröffentlicht

In der Softwareentwicklung gibt es wiederkehrende Herausforderungen. Es sind Fragen, die Sie sich wahrscheinlich auch schon einmal gestellt haben: Wie kann eine geeignete Entwicklungsumgebung für Remote-Work bereitgestellt werden, ohne die Produktivität zu mindern? Wie sollen Entwickler_innen ausgestattet werden, ohne jetzige und zukünftige Leistungseinbußen bei der Entwicklung? Wie können Standardisierung und individuelle Tool-Vorlieben zusammengeführt werden? In diesem Beitrag sehen wir uns gegenwärtige Lösungen an und zeigen, wie Remote Development Environments (RDEs) helfen können, diese Herausforderungen zu bewältigen.

Neu in der RDE-Welt? Dann diesen Beitrag durchlesen: Was sind Remote Development Environments?

Inhalt

Herausforderungen in der Softwareentwicklung

Latenz & Lag bei Virtual Desktop Environments

Bedingt durch COVID-19 ist die Remote-Entwicklung weiter im Vormarsch. Softwareentwickler_innen arbeiten verstärkt in Telearbeit, Freelancer_innen ergänzen oft das Inhouse-Team. Und alle benötigen Zugriff auf die notwendigen Tools. Wie wird das gelöst? Beispielsweise über eine Virtual-Desktop-Lösung. Damit wird sich mit der Entwicklungsumgebung verbunden. So wird die Desktopumgebung gestreamt und die Entwicklungsarbeit kann beginnen. Auch die Daten bleiben auf dem vom Unternehmen gewünschten Server. Das Problem? Der Lag. Ein flüssiges Arbeiten ist möglich, aber vom stabilen Netz und der Bandbreite abhängig. Mit der Cloudomation RDE kann dieses Problem elegant gelöst werden. Es gibt drei Varianten, wie dieser Herausforderung begegnet wird:
  1. Die Sourcen werden über einen File Mount eingebunden und nicht lokal gecached. Die RDE an sich benötigt eine geringe Bandbreite. Eine langsame Verbindung hat nur einen kleinen bis gar keinen Einfluss auf das Arbeiten. Mit kurzen Unterbrechungen der Verbindung kann umgegangen werden. Längere Internetausfälle würden sich aber während dem Arbeiten bemerkbar machen. Der Source Code ist in dieser Variante air-gapped. (Ein Air Gap wird eingesetzt, um zwei oder mehr unterschiedlich vertrauenswürdige Rechner oder Rechnernetze voneinander zu isolieren, die jedoch Daten des jeweils anderen Systems verarbeiten müssen.)
  2. Die Sourcen werden über einen File Mount eingebunden und ein lokales Caching findet statt. Der Vorteil ist, dass auch während eines Internetausfalls weitergearbeitet werden kann. Der Start eines Build-Vorgangs oder Testing ist allerdings während eines Internetausfalles nicht mehr möglich.
  3. Eine VM wird bereitgestellt. Diese VM ermöglicht ein durchgängiges Offline-Arbeiten – ohne Funktionsverlust. Zu beachten ist hier – wie bei jeder lokalen VM – die Leistung des Equipments.

Fehlendes Equipment für optimale Performance

Typischerweise findet die Softwareentwicklung in lokalen Entwicklungsumgebungen und auf dem eigenen Laptop statt. Die verfügbaren Ressourcen wie die Rechenleistung, der RAM und Speicherplatz sind allerdings begrenzt. Ein weiteres Problem: Irgendwann reicht die Leistung einfach nicht mehr aus. Dann muss neues Equipment angeschafft werden. Die begrenzte Rechenleistung kann zu einer schlechten Performance führen, vor allem, wenn ressourcenintensive Arbeit durchgeführt werden muss (Build, Tests, Kompilieren). 

Cloudomation Remote Development Environments können hingegen beliebig skaliert werden. Die RDEs können nach den individuellen Anforderungen des Unternehmens eingerichtet und automatisiert bereitgestellt werden. Bestehende Systeme sind integrierbar: Beispielsweise eine Test-Pipeline, die dann direkt von der RDE ausgelöst werden kann.

Einsatz individueller Tools je Entwickler_in

Gitlab hat schon vor Jahren geschrieben: “Großartige Software wird von großartigen Menschen entwickelt – nicht von „magischen“ Tools oder Technologien. Untersuchungen zeigen jedoch, dass die Tools, die Sie für Ihr Team auswählen, einen größeren Einfluss auf die Zufriedenheit und Bindung der Entwickler haben können, als Sie dachten. Tatsächlich sagen satte 81 % der Entwickler, dass es wichtig ist, dass Unternehmen die neuesten Entwicklungstools verwenden, und 36 % gehen sogar so weit zu sagen, dass sie einen Job ablehnen würden, wenn der Arbeitgeber nicht die neuesten Tools verwendet.

Es geht aber nicht nur um die neuesten Tools, sondern auch, welche auf individueller Basis verwendet werden können. Ein Problem von lokalen Entwicklungsumgebungen ist, dass jede Umgebung anders ist. Über Standardisierungen kann dies eingeschränkt werden. Allerdings führt das oft zu Widerstand, weil auf Tools verzichtet werden muss, die individuell je Entwickler_in eingesetzt werden.

Bei der Planung der Cloudomation RDE war uns bewusst, dass die Verwendung der eigenen Tools ein Muss-Kriterium ist. Durch unseren Ansatz, die RDE über einen File Mount zu lösen, kann jeder Entwickler das lokale Tooling weiter verwenden und ist nicht an spezifische Tools gebunden. Die Entwicklungsumgebung bleibt standardisiert, aber Entwickler_innen können weiterhin exakt das System, den Browser und Tools verwenden, die für sie passen.

Die Produktivität Ihres IT-Teams mit Cloud Development Environments auf das nächste Level heben

In diesem Whitepaper erfahren Sie, wie Cloud Development Environments (CDEs) helfen, den Aufwand für die Wartung der lokalen Entwicklungsumgebung zu reduzieren und die Produktivität Ihres IT-Teams zu erhöhen.

Jetzt herunterladen

Standardisierung

Wie schon erwähnt, arbeiten Entwickler_innen in ihrer lokalen Entwicklungsumgebung. Abhängigkeiten und die zu entwickelnde Software müssen installiert werden. Klassischerweise gibt es hier Standardisierungsrichtlinien, dennoch passiert es in der Praxis, dass sich Entwickler_innen bei der Erstinstallation als auch langfristig mit individuellen Fehlern herumschlagen. Fehlerbehebungen werden dann nur in einer Umgebung, für einem_r Entwickler_in, durchgeführt. Dieselben Probleme müssen also häufig wiederkehrend und individuell gelöst werden.

Die Cloudomation RDE sorgt für die nötige Standardisierung. Probleme mit der Entwicklungsumgebung werden nicht mehr auf individueller Basis gelöst, sondern für alle Entwickler_innen. Es wird eine Entwicklungsumgebung eingerichtet, die in Sekunden bereitgestellt werden kann und standardisiert ist.

Häufig ist beim Troubleshooting außerdem das Problem, dass Anpassungen über mehrere Systeme hinweg gemacht werden müssen. Da das Tooling und auch die Pipelines mit Cloudomation umgesetzt werden können, kann das Troubleshooting innerhalb eines zentralen Systems durchgeführt werden.

Fazit

Häufige Herausforderungen, die aktuell in der Softwareentwicklung anzutreffen sind und mit denen gekämpft werden muss, sind:

  • Latenz & Lag beim Einsatz von Virtual Desktop Environments
  • Fehlendes Equipment für optimale Performance
  • Einsatz von individuellen Tools je Entwickler_in
  • Standardisierung

Remote Development Environments sind eine Lösung, diesen Herausforderungen zu begegnen. Die Cloudomation RDEs benötigen wenig Bandbreite. Eine langsame Internetverbindung hat wenig bis keinen Einfluss auf das Arbeiten. Die Leistung der RDEs kann beliebig skaliert werden und Entwickler_innen können weiterhin ihre Lieblings-Tools verwenden. RDEs sorgen für die nötige Standardisierung, um die zu entwickelnde Software sofort verwenden zu können und individuelle Probleme mit der lokalen Entwicklungsumgebung zu vermeiden.

Johannes Ebner

Marketing Manager