• Software-Entwicklung
  • Software-Modernisierung

Remote Development - die richtige Person für eine Aufgabe - Teil 2

Dieser Blog ist eine Fortsetzung von Code With Me – Die richtige Person für eine Aufgabe und gleichzeitig die nächste bessere Iteration. Unserem Kunden hat die Arbeit meines Kollegen so gut gefallen, dass ein Folgeauftrag für uns drin war. Die Grund Herausforderungen blieben die gleichen, allerdings wussten wir nun, dank dem Fazit, auf was wir uns einlassen, wenn wir wieder Intellij Code With Me verwenden.

Da der neue Auftrag umfangreicher war, versuchten wir etwas Neues, aber mit der gleichen Grundidee. Dem Kunden soll kein Mehraufwand z.B. für VPN, Freischaltungen, etc. für das Onboarding meines Kollegen entstehen. Mein Kollege soll mit einem eingerichteten Workspace gleich losstarten können.

Remote Development

Meet JetBrains Remote Development. Damit kann man sich mittels SSH auf einen Rechner verbinden und remote arbeiten. Es geht sogar soweit, dass mein Kollege meinen bestehenden Workspace verwenden konnte.

DISCLAIMER: Remote Development funktioniert derzeit nur, wenn der Remote Host ein Linux Betriebssystem ist. An macOS und Windows wird gearbeitet.

Was sind nun aber die Vorteile von Remote Development gegenüber Code With Me? Ganz einfach -> man hat vollen Zugriff auf das gesamte Feature Set von Intellij. Der Client behält sogar seine Shortcuts. Applikationen, die Ports öffnen, können per Klick weitergeleitet werden. Es funktioniert einfach runder. So konnte mein Kollege mit seinem Laptop wie gewohnt und ohne Einschränkungen arbeiten und das auf einem fertig eingerichteten Workspace.

Da geht doch noch mehr

Auf den Laptop eines Kollegen oder einer Kollegin per SSH zugreifen, ist jetzt auch nicht unsere erste Wahl. Genau genommen ist es keine Option. Mit Remote Development öffnen sich jedoch weitere Möglichkeiten und auf zwei möchten wir hier eingehen.

Remote Development auf VMs

Viele unserer Kunden arbeiten noch klassisch mit VMs. Auch die Stages wie DEV, TEST, PROD laufen auf VMs. Da wäre es doch praktisch, eine durchgehend einheitliche Umgebungslandschaft zu haben, auch für die “lokale” Entwicklung. Mit JetBrains Remote Development werden die Entwickler Laptops zu Thin Clients. Lediglich die UI wird am Laptop angezeigt. All die schwere Arbeit leistet die VM. Auch der Source Code liegt nicht mehr am Laptop, was den CISO vielleicht freut. Kommt nun ein:e neue:r Mitarbeiter:in ins Projekt, kopiert man (stark vereinfacht ausgedrückt) den Workspace aus dem User Verzeichnis in ein neues User Verzeichnis und die/der neue Mitarbeiter:in kann gleich loslegen mit einem eingerichteten Projekt.

Remote Development in der Cloud

Hier bietet z.B. JetBrains mit Space eine Möglichkeit On-Demand Umgebungen zu starten. Da wir uns aber viel mit Openshift beschäftigen, tut sich hier eine weitere Option auf.  Mit Openshift Dev Spaces kann man im Browser entwickeln. Dabei wird in OpenShift alles Nötige gestartet. Eine Beschreibung der Umgebung liegt dabei in Form eines devfiles im Git Repository. Mit Hilfe des Intellij Plugins OpenShift Dev Spaces dürfte es nun möglich sein, sich mit dem lokalen Intellij und Dev Spaces zu verbinden. Das schreit geradezu nach einem 3ten Teil :-D.

Fazit

Tools entwickeln sich ständig weiter und wir sollten darauf achten, dass wir unsere Arbeitsweise überdenken. Besonders in Projekten, wo es sehr kompliziert ist, einen Workspace einzurichten, bieten sich solche Automatisierungen an. Wir denken dabei aber auch an Projekte, die in einen Wartungsmodus gegangen sind. Hier muss man gelegentlich ein Update oder einen Bugfix machen. Mit solchen Remote Workspaces, die dann gleich funktionieren, spart man sich einiges an Zeit.

Du willst mehr über Software-Modernisierung wissen?

geschrieben von:
Herbert
WordPress Cookie Plugin von Real Cookie Banner