Remote Development Environments (RDEs)

Problem

Entwickler_innen verlieren sehr viel Zeit, die lokale Entwicklungsumgebung aufzusetzen und kämpfen regelmäßig mit Kompitabilitätsproblemen. Tatsächlich ist regelmäßiges Troubleshooting eines der Hauptprobleme von Entwickler_innen. Das frisst Zeit, Ressourcen und verringert die Produktivität.

Lösung

Remote Development Environments (RDEs) sind standardisierte und ohne Einrichtungszeit sofort verfügbare Remote-Umgebungen. Entwickler_innen stehen sofort alle für ihre Arbeit notwendigen Tools zur Verfügung und erhalten die Rechenleistung, die sie für ressourcenintensive Aufgaben benötigen.

Das Problem

  • Das initiale Aufsetzen der lokalen Entwicklungsumgebung dauert. 
    Onboarding von Softwareentwickler_innen oder ein Gerätewechsel ist schwierig.
  • Unterschiede in der lokalen Entwicklungsumgebung je Entwickler_in beeinträchtigen die Produktivität. Dadurch muss viel Zeit für die individuelle Problembehandlung aufgewendet werden.
  • Leistungsstarkes und teures Equipment wird benötigt, um Anwendungen lokal verwenden zu können (Die eigene Software, Testing Tools etc.). 
  • Produktivitätseinbußen, weil auf Tests, Builds o. ä. gewartet werden muss. Versions- / Branchwechsel ist zeitaufwändig, da beispielsweise alle Abhängigkeiten neu eingerichtet werden müssen.
  • Der Source Code ist lokal und unsicher gespeichert.

Die Lösung

  • Remote Development Environments, die zentralisiert vom DevOps-Team gemanaged und von Softwareentwickler_innen als Service genutzt werden.
  • Standardisierte Umgebungen, die mit einem Klick zur Verfügung stehen: Komplexe Applikationen wie große Monolithen und nicht-containerisierte Software in RDEs betreiben und sofort bereitstellen.
  • Weiterhin alle individuell eingesetzten Tools nutzen: Integration über einen mounted File-Share mit allen Sourcen für lokale Editoren / IDEs oder über SSH für Web- / Remote-IDEs.
  • Build von noch nicht committeten Zwischenständen, Wiederverwendung bereits vorhandener lokaler Build Tools (der z.B. Code nicht minimised) und komfortable Inspektion von Logs.
  • Umfassende Automatisierungs- und Integrationsfunktionalität: Weitere Prozesse ganz nach Bedarf mit Cloudomation automatisieren, z. B. Integration Tests auf der IDE.

So funktioniert es

Self-service FrontendÜber das Self-Service-Frontend die RDEs auswählen, anlegen und entfernen und einen Überblick über laufende RDEs erhalten.

Konfigurations-Frontend: Festlegen, welche Remote Development Environments via Self-Service-Frontend zur Verfügung stehen. Konfiguration des Datenmodells und Nutzung von Konfigurationsvorlagen möglich.

Automatisierungs-Frontend: Definieren, wie Remote Development Environments erstellt werden. Integration von Tools und die Nutzung bereits bestehender Automatisierungsabläufe oder über andere Automatisierungstools umgesetzte Prozesse.

Das Ergebnis

Umfassende Standardisierung:

  • Zentrale Verwaltung der Entwicklungsumgebungen.
  • Das gleiche System für alle: Automatisierte Bereitstellung genau nach Unternehmensanforderung – und zwar auf Knopfdruck.
  • Verwendung der gleichen Tools für Entwicklung, Production, Testing und Deployment.

Deutliche Zeitersparnis:

  • Keine Setup-Zeit beim Onboarding und bei der täglichen Arbeit.
  • Zeit für Troubleshooting der Entwicklungsumgebung sinkt auf null.
  • Paralleles Arbeiten an verschiedenen Branches / Versionen: Mit einem einfachen Wechsel der RDE.

Developerfreundlich & sicher:

  • Keine Hardwarebeschränkung: Rechenintensive Prozesse werden in der RDE durchgeführt. Theoretisch kann sogar am Tablet entwickelt werden.
  • Softwareentwicklung mit und ohne Internetverbindung möglich.
  • Air-gapped RDEs für Sicherheit von Source Code und Daten: Einrichtung möglich, so dass Source Code nie lokal am Rechner der Entwickler_innen landet.

Stellen Sie die Effizienz Ihrer aktuellen Entwicklungsumgebung auf die Probe.