You may have already heard the big news from JetBrains – remote development solutions for JetBrains IDEs.
The main idea is to help you overcome the limitations of local devices or slow laptops, allowing developers to work more efficiently, save time and contribute more to projects.
With that goal in mind, JetBrains decided to separate the IDE frontend and backend. The only software installed on your local computer would be a client that renders the IDE user interface and communicates with the remote backend. The remote backend is then in charge of all the demanding operations on the source code such as creating an index and syntax tree, offering code completion, refactoring, and so on.
What can you use as a remote backend? There are a number of options, but we believe that JetBrains itself offers one of the best supports for remote backends of the JetBrains IDE. We are pleased to announce cloud development environments in JetBrains Space!
With Space development environments you can form a remote development process that allows you to:
- Speed up onboarding with standardized environments.
- Get an IDE, that’s ready to use in seconds, with prebuilt snapshots.
- Centralize the management of your development environments.
- Save resources by automatically hibernating development environments.
- Work on several tasks at the same time.
- Collaborate on code with colleagues.
Continue reading to learn more about Space development environments and how to use them.
What is a development environment?
The development environment is a dedicated virtual device with a Docker container that has access to the source code of the project and provides backend components to your local code editor. The container is hosted by the same machine used in Space Automation. Read this article to know more about how it works.
Why choose Space for remote development?
Space, a comprehensive solution for software teams and projects, was created as a tool to cover the entire development cycle, from hosting Git repositories and automating CI/CD pipelines to publishing packages.
To help you cover all your remote development streams, Space now allows you to automatically manage remote development environments like virtual machines in the cloud.
The entire remote development pipeline crafted by JetBrains
With Space, you can configure, run, play, and manage your development environments, connect to JetBrains IDEs, and start encrypting in seconds.
IntelliJ IDEA Ultimate and Fleet, the new generation of JetBrains IDEs, already support remote development with Space development environments, with PyCharm, GoLand, WebStorm, CLion, and other JetBrains IDEs joining them soon. Read this blog post to learn more about JetBrains remote development solutions.
Space can help you increase the cost of running remote development environments by providing virtual machines (VMs) according to the size of your projects and automatically hibernating development environments after 30 minutes of inactivity. Learn more about pricing plans for development environments and available types of VMs.
Keep your code secure
All virtual machines (VMs) that run coding workspaces are isolated from each other, and a virtual machine cannot run more than one environment. Virtual networks of development environments are also isolated. You can treat your development environment as a temporary Git branch and avoid the difficulties that come with maintaining a permanent local development environment. When you’re done, you can easily delete it.
Flexible authentication and authorization
With a flexible permissions configuration at the project level, all you need to do is configure who gets permissions to use and manage your project workspaces.
What is already available in Space development environments?
- Pre-configured reproducible environments
Because development environments run in Docker containers, you can install all the tools and libraries required by your project using Dockerfile. If there is no ./.fleet/Dockerfile file in your project, Space will use the default container image. In this way, your development environments are harmonized within the entire team, which speeds up the onboarding experience of new developers. They can start developing practically immediately as they do not have to prepare their local machine for the project.
- Warm up your development environments
This is the best part! Space allows you to prepare the backend for work, cloning Git repositories, building project indexes, and resolving dependencies. It will seem as if someone came to the office an hour before you, turned on your computer, opened a project in the IDE and prepared everything for you. So you can start the day working in a 100% ready IDE. Warm-up is performed using Space Automation. Add the warm-up job to the project file .space.kts, put all the necessary warm-up scripts in it and run it. You can even set it to run according to the default daily schedule. Read this article to learn how to “warm up” the development environment.
- Sharing the development environment
You can send a link to the development environment to your colleagues to open in your IDE, view your code, run it, and debug it (currently only available with Fleet).
- Hibernation of the development environment
If the development environment is not used for more than 30 minutes, it will automatically hibernate – the container shuts down and the associated virtual machine releases. All unsaved changes are stored in the development environment. When you want to work on it again, the environment can be restored with exactly the same storage containers. Hibernation of the development environment makes sure you don’t incur costs due to unused resources.
There are two options already available:
- IntelliJ IDEA with JetBrains Gateway (can be installed via Toolbox app) – IntelliJ IDEA is installed locally and connects to the development environment using JetBrains Gateway. In the initial release, Space development environments only support IntelliJ IDEA. Support for other IntelliJ IDEs is on the way, so stay tuned.
- JetBrains Fleet (available as early preview) – next-generation IDE by JetBrains. Built from scratch, Fleet uses IntelliJ’s code processing mechanism, has a distributed IDE architecture, and has a redesigned user interface. Support for remote work and collaborative work in Fleet are first-class citizens.
To fit your project well and reduce costs, you can choose between three types of instances: Standard (4 CPU cores, 8 GB RAM), Large (8 CPU cores, 16 GB RAM) or Extra large (16 CPU cores, 32 GB RAM).
- Support for multiple IDEs
In addition to IntelliJ IDEA Ultimate and Fleet, it is planned to support PyCharm, GoLand, WebStorm, CLion and other JetBrains IDEs based on IntelliJ.
- Dev environment sharing for web app developers
Suppose you are developing a web application and want someone on your team to test your latest changes. Typically, if you are developing an application on your local computer, you should commit and push changes and in your local network and prepare a pre-production environment. With development environments all you have to do is build and run an application. You can create a sharing link through which anyone can access your online application without authentication.
- Support for multiple Git repositories
The development environment can currently work with only one project repository.
- Other features
- Advanced sharing options with support for different types of invitation flows and a list of collaborators/guests.
- Assigning user secrets to development environments.
- Support for Devfile format to describe the development workspace.
- Resource management of the development environment at the organizational and project level with support for resource quotas.
- Local (on-premise) development environments.
- Security audit and other features.
How to start developing in cloud development environments
- Start developing in a dev environment.
- Prepare a dev environment for a project.
- Mirror a Git repository in Spaceto use dev environments with an existing repository.
In case you experience any problems with Space development environments, contact JetBrains support by submitting a request through their website.