Space logo

Space

The intelligent code collaboration platform

Space is pivoting to SpaceCode, focused on Git hosting and code reviews. Learn more →

News

Neu: Remote-Entwicklung mit Space

Read this post in other languages:

Sie haben vielleicht schon die große Neuigkeit gehört: Wir führen die Remote-Entwicklung in JetBrains-IDEs ein. 

Die Grundidee besteht darin, die Einschränkungen von lokalen Computern und langsamen Notebooks zu überwinden und Entwickler*innen die Möglichkeit zu geben, effizienter zu arbeiten, Zeit zu sparen und produktiver zu Projekten beizutragen.

Mit diesem Ziel vor Augen haben wir beschlossen, das Frontend und das Backend von IDEs voneinander zu trennen. Die einzige Software, die auf Ihrem lokalen Computer installiert wird, ist ein Client, der die IDE-Bedienoberfläche darstellt und mit dem Remote-Backend kommuniziert. Das Remote-Backend übernimmt alle rechenintensiven Vorgänge zur Bearbeitung des Quellcodes – das Erstellen von Indizes und Syntaxbäumen ebenso wie die Code-Completion oder das Refactoring.

Welche Systeme sind als Remote-Backend geeignet? Es gibt verschiedene Möglichkeiten, und wir sind zuversichtlich, dass wir selbst einige der besten Optionen zur Unterstützung von Remote-Backends für JetBrains-IDEs entwickelt haben. Deshalb freuen wir uns ganz besonders, Ihnen Cloud-Entwicklungsumgebungen in JetBrains Space vorstellen zu können! 

Mit Space-Entwicklungsumgebungen können Sie einen Remote-Entwicklungsworkflow aufbauen, der Ihnen folgende Vorteile bietet:

  • Schnelleres Onboarding durch standardisierte Umgebungen.
  • Blitzschnelle Verfügbarkeit einer einsatzbereiten IDE dank fertiger Snapshots.
  • Zentrale Verwaltung Ihrer Entwicklungsumgebungen. 
  • Sparsame Ressourcennutzung durch automatische Ruheschaltung Ihrer Entwicklungsumgebungen.
  • Parallele Bearbeitung mehrerer Aufgaben.
  • Gemeinsame Codebearbeitung im Team.

Lesen Sie diesen Blogbeitrag, um mehr über Space-Entwicklungsumgebungen und deren Verwendung zu erfahren.

Was ist eine Entwicklungsumgebung?

Eine Entwicklungsumgebung ist eine dedizierte virtuelle Maschine mit einem Docker-Container, der Zugriff auf den Quellcode des Projekts hat und eine Backend-Funktionalität für Ihren lokalen Editor bereitstellt. Der Container wird von derselben Engine gehostet, die auch für Space-Automatisierungen verwendet wird. In diesem Artikel können Sie mehr über die genaue Funktionsweise erfahren.

Space cloud dev environments

Warum sollten Sie Space für Remote-Entwicklung nutzen?

Wir haben Space, unsere All-in-one-Lösung für Softwareteams und Projekte, als ein Tool konzipiert, mit dem Sie den gesamten Entwicklungslebenszyklus verwalten können, vom Hosten von Git-Repositories über die Automatisierung von CI/CD-Pipelines bis hin zum Veröffentlichen von Paketen. 

Um Ihre Remote-Entwicklungsworkflows zu unterstützen, können Sie ab sofort in Space Entwicklungsumgebungen als Cloud-VMs verwalten.

Eine komplette Remote-Entwicklungspipeline – entworfen von JetBrains

Mit Space können Sie Ihre Entwicklungsumgebungen konfigurieren, reproduzieren, verwalten und starten, um eine Verbindung zu JetBrains-IDEs herzustellen und in Sekundenschnelle mit dem Programmieren zu beginnen. 

IntelliJ IDEA Ultimate und Fleet, die Next-Generation-IDE von JetBrains, unterstützen die Remote-Entwicklung mit Space-Entwicklungsumgebungen bereits. PyCharm, GoLand, WebStorm, CLion und weitere JetBrains-IDEs werden bald dazukommen.

In diesem Blogartikel erfahren Sie mehr über die Remote-Entwicklungslösungen von JetBrains.

Kosteneffizienz

Space hilft Ihnen, die Kosten Ihrer Remote-Entwicklungsumgebungen zu optimieren, indem Sie passend zur Größe Ihres Projekts aus unterschiedlich ausgestatteten VMs wählen können und inaktive Entwicklungsumgebungen nach 30 Minuten automatisch in den Ruhezustand versetzt werden. Erfahren Sie mehr über die Preise von Entwicklungsumgebungen und die verfügbaren VM-Typen.

Sichere Verwahrung Ihres Codes

Alle virtuellen Maschinen, die Coding-Workspaces ausführen, sind voneinander isoliert, und eine virtuelle Maschine kann nicht mehr als eine Umgebung ausführen. Die virtuellen Netzwerke der Entwicklungsumgebungen sind ebenfalls voneinander isoliert. Sie können Ihre Entwicklungsumgebung als kurzlebigen Git-Branch verwenden und damit den Aufwand einer dauerhaft vorgehaltenen lokalen Entwicklungsumgebung umgehen. Wenn Sie mit Ihrer Arbeit fertig sind, können Sie die Umgebung einfach löschen.

Flexible Authentifizierung und Autorisierung

Dank der flexiblen, projektbasierten Rechtekonfiguration müssen Sie lediglich vorgeben, wer die Coding-Workspaces Ihres Projekts verwenden und verwalten darf.

Welche Möglichkeiten sind für Space-Entwicklungsumgebungen bereits verfügbar?

  • Vorkonfigurierte, reproduzierbare Umgebungen

Da Entwicklungsumgebungen in Docker-Containern ausgeführt werden, können Sie alle für Ihr Projekt erforderlichen Tools und Bibliotheken mithilfe eines Dockerfile installieren. Wenn die Datei ./.fleet/Dockerfile in Ihrem Projekt nicht vorhanden ist, verwendet Space das Standard-Containerimage. Dadurch können Sie die Entwicklungsumgebungen des gesamten Teams aufeinander abstimmen und das Onboarding optimieren. Neue Mitwirkende können praktisch sofort mit dem Entwickeln beginnen, da sie nicht erst ihren lokalen Computer für das Projekt vorbereiten müssen.

Active Space dev environment
  • Warm-up Ihrer Entwicklungsumgebungen

Dies ist der beste Teil! Mit Space können Sie das Backend für die Arbeit vorbereiten: zum Beispiel das Git-Repo klonen, Projektindizes anlegen und Abhängigkeiten herunterladen. Das ist, als würde jemand eine Stunde vor Ihnen extra ins Büro kommen, um Ihren Computer einzuschalten, das Projekt in der IDE zu öffnen und alles für Sie vorzubereiten. Auf diese Weise haben Sie einen perfekten Start in den Tag und können die Arbeit mit einer zu 100% einsatzbereiten IDE beginnen.

Das Warm-up wird mithilfe von Space-Automatisierungen durchgeführt. Legen Sie einen Warm-up-Job in der .space.kts-Datei des Projekts an, fügen Sie alle benötigten Warm-up-Skripte ein und führen Sie den Job aus. Sie haben sogar die Möglichkeit, den Job automatisiert täglich ausführen zu lassen. Weitere Informationen zum Vorbereiten von Entwicklungsumgebungen finden Sie in diesem Artikel.

Space dev environment warmup snapshot
  • Teilen von Entwicklungsumgebungen 

Sie können anderen einen Link zu Ihrer Entwicklungsumgebung senden, damit sie die Umgebung in der eigenen IDE öffnen und Ihren Code ansehen, ausführen und debuggen können (derzeit nur mit Fleet verfügbar). 

Sharing a Space dev environment
  • Pausieren von Entwicklungsumgebungen

Wird eine Entwicklungsumgebung länger als 30 Minuten nicht genutzt, wird sie automatisch in den Ruhezustand versetzt – der Container wird heruntergefahren und die VM freigegeben. Alle nicht gespeicherten Änderungen werden im Datenspeicher der Entwicklungsumgebung gespeichert. Wenn Sie bereit sind, Ihre Arbeit fortzusetzen, wird die Umgebung wiederhergestellt und der identische Datenspeicher wieder gemountet. Durch das Pausieren der Entwicklungsumgebung wird sichergestellt, dass Ihnen keine Kosten durch ungenutzte Ressourcen entstehen.

Space dev environment hibernation
  • Unterstützung für JetBrains-IDEs

Zwei Optionen sind bereits jetzt verfügbar:

  • IntelliJ IDEA mit JetBrains Gateway (kann über die Toolbox-App installiert werden): IntelliJ IDEA wird lokal installiert und stellt über den Launcher von JetBrains Gateway eine Verbindung zu einer Entwicklungsumgebung her. Bei diesem ersten Release wird nur IntelliJ IDEA von Space-Entwicklungsumgebungen unterstützt. Die Unterstützung für andere IntelliJ-basierte IDEs ist bereits in Arbeit – freuen Sie sich auf unsere weiteren Updates.
  • JetBrains Fleet (als Early Preview verfügbar) – die Next-Generation-IDE von JetBrains. Fleet ist eine von Grund auf neu entwickelte IDE. Sie kombiniert die IntelliJ-Engine zur Codeverarbeitung mit einer verteilten IDE-Architektur und einer neu gestalteten Bedienoberfläche. Remote-Entwicklung und kollaborative Workflows stehen bei Fleet im Mittelpunkt.
JetBrains Fleet
  • Skalierbarkeit

Um Ihre Kosten passend zur Größe Ihres Projekts zu optimieren, können Sie zwischen drei Instanztypen wählen: Regular (4 CPU-Kerne, 8 GB RAM), Large (8 CPU-Kerne, 16 GB RAM) und Extra Large (16 CPU-Kerne, 32 GB RAM).

Welche weiteren Funktionen sind geplant?

  • Unterstützung für weitere IDEs

Neben IntelliJ IDEA Ultimate und Fleet wollen wir auch PyCharm, GoLand, WebStorm, CLion und andere IntelliJ-basierte JetBrains-IDEs unterstützen.

  • Teilen von Entwicklungsumgebungen für die Web-App-Entwicklung

Angenommen, Sie entwickeln eine Web-App und möchten Ihre neuesten Änderungen von einem anderen Teammitglied testen lassen. Wenn Sie die App auf Ihrem lokalen Computer entwickeln, müssen Sie dazu im Normalfall Ihre Änderungen committen und pushen und eine Preprod-Umgebung im lokalen Netzwerk vorbereiten. Bei Verwendung einer Entwicklungsumgebung hingegen müssen Sie nur einen App-Build erstellen und ausführen. Sie können einen öffentlichen Link erstellen, über den jeder ohne Authentifizierung auf die Web-App zugreifen kann.

  • Unterstützung für mehrere Git-Repos

Derzeit kann eine Entwicklungsumgebung nur ein Projekt-Repository verwenden.

  • Weitere Features
    • Erweiterte Freigabeoptionen mit Unterstützung für verschiedene Einladungsabläufe und eine Liste von Mitwirkenden und Gästen.
    • Bereitstellung von User-Secrets für Entwicklungsumgebungen.
    • Unterstützung des Devfile-Formats zur Beschreibung von Entwicklungsumgebung-Workspaces.
    • Unterstützung für mehrere Git-Repositories.
    • Ressourcenmanagement für Entwicklungsumgebungen auf Organisations- und Projektebene mit Unterstützung von Ressourcenkontingenten.
    • On-Premises-Bereitstellung von Entwicklungsumgebungen.
    • Sicherheitsaudit und weitere Funktionen.

Ihr Einstieg in die Nutzung von Cloud-Entwicklungsumgebungen

Sie benötigen nur eine Installation von JetBrains Fleet oder JetBrains Gateway auf Ihrem Computer sowie ein in Space gehostetes Projekt. Die folgenden Anleitungen bieten Ihnen detaillierte Unterstützung:

Start developing remotely with Space and JetBrains IDEs

Sollten Sie bei der Verwendung von Space-Entwicklungsumgebungen auf ein Problem stoßen, wenden Sie sich bitte an unser Supportteam, indem Sie über unsere Website eine Anfrage stellen.

Wie ist Ihre Meinung zu Space-Entwicklungsumgebungen? Bitte teilen Sie uns Ihre Ideen und Ihr Feedback weiter unten in einem Kommentar mit.

Autorin des Original-Blogposts:

image description