Space
The intelligent code collaboration platform
Space is pivoting to SpaceCode, focused on Git hosting and code reviews. Learn more →
Introducing Remote Development With Space
You may have already heard about the big news from JetBrains – the remote development solutions for JetBrains IDEs.
The main idea is to help you overcome the limits of local machines or slow laptops, making it possible for developers to work more efficiently, save time, and contribute more to projects.
With this goal in mind, we decided to separate the IDE’s frontend and backend. The only software installed on your local machine would be a client that renders the IDE user interface and communicates with a remote backend. The remote backend is then in charge of all heavyweight operations with the source code such as building indexes and the syntactic tree, providing code completion and refactorings, and so on.
What can you use as a remote backend? There are a number of options, but we believe that we offer some of the best support for JetBrains IDEs remote backends ourselves. We’re happy to announce cloud dev environments in JetBrains Space!
With Space dev environments, you can build a remote development process that lets you:
- Speed up onboarding with standardized environments.
- Get a ready-to-use IDE in seconds with prebuilt snapshots.
- Centralize the management of your dev environments.
- Save resources with automatically hibernating dev environments.
- Work on several tasks simultaneously.
- Collaborate on code with your teammates.
Read this blog post to learn more about Space dev environments and how to use them.
What is a dev environment?
A dev environment is a dedicated virtual machine with a Docker container that has access to the project source code and provides backend components to your local code editor. The container is hosted by the same engine that is used in Space Automation. Read this article to learn more about how it works.
Why choose Space for remote development?
We created Space, our all-in-one solution for software teams and projects, as a tool to help you cover the entire development lifecycle, from hosting Git repositories and automating CI/CD pipelines to publishing packages.
Starting today, to help you cover your remote software development workflows, Space allows you to automatically manage remote development environments as virtual machines in the cloud.
The entire remote development pipeline crafted by JetBrains
With Space, you can configure, spin up, reproduce, and manage your dev environments, connect to JetBrains IDEs, and start coding in seconds.
IntelliJ IDEA Ultimate and Fleet, the next generation IDE by JetBrains, already support remote development with Space dev environments, with PyCharm, GoLand, WebStorm, CLion, and other JetBrains IDEs joining them soon.
Read this blog post to learn more about remote development solutions by JetBrains.
Cost-effective solution
Space can help you optimize the costs of running remote development environments by providing VMs that fit the size of your projects and automatically hibernating inactive dev environments after 30 minutes of inactivity. Learn more about the dev environment pricing plans and the VM types that are available.
Keep your code safe and secure
All virtual machines that run coding workspaces are isolated from each other, and a virtual machine cannot run more than one environment. Virtual networks of dev environments are also isolated. You can treat your dev environment like a short-lived Git branch and avoid the friction that comes with maintaining a permanent local development environment. You can simply delete it when you’re done.
Flexible authentication & authorization
With flexible project-based permissions configuration, all you need to do is configure who gets permissions to use and manage the coding workspaces for your project.
What is already available in Space dev environments?
- Preconfigured reproducible environments
As dev environments run in Docker containers, you can install all the tools and libraries required by your project using a Dockerfile. If there’s no ./.fleet/Dockerfile file in your project, Space will use the default container image. This ensures that your dev environments are aligned across the team and streamlines the onboarding experience for new developers. They can start developing almost immediately as they don’t have to prepare their local machine for the project.
- Warm up your dev environments
This is the best part! Space lets you prepare the backend for work, cloning the Git repo, building project indexes, and resolving dependencies for you. It will seem as if someone has come to the office an hour before you, turned your computer on, and opened the project in the IDE and prepared everything for you. So you can get your day off to a great start and begin working in a 100% ready IDE.
The warm-up is performed with the help of Space Automation. Add a warm-up job to the project’s .space.kts file, put all the required warm-up scripts to the job, and run it. You can even configure it to run on a daily schedule. Read this article to learn how to warm up the dev environment.
- Sharing a dev environment
You can send a link to the dev environment to your colleagues so that they can open it in their IDE, look at your code, run it, and debug it (currently only available with Fleet).
- Dev environments hibernation
If a dev environment is not used for more than 30 minutes, it will automatically hibernate – the container is shut down and the corresponding virtual machine is released. All unsaved changes are saved to the dev environment storage. When you are ready to work on it again, the environment can be restored with the exact same storage mounted. The dev environment hibernation makes sure you don’t incur costs from unused resources.
- JetBrains IDE support
There are two options that are already available:
- IntelliJ IDEA with JetBrains Gateway (can be installed via the Toolbox App) – IntelliJ IDEA is installed locally and connects to a dev environment using the JetBrains Gateway launcher. With the initial release, only IntelliJ IDEA is supported by Space dev environments. Support for other IntelliJ-based IDEs is on its way, so please stay tuned for updates.
- JetBrains Fleet (available as early preview) – the next-generation IDE by JetBrains. Built from scratch, Fleet uses the IntelliJ code-processing engine, with a distributed IDE architecture and a reimagined UI. Remote and collaborative workflows are first-class citizens in Fleet.
- Scalability
To fit the size of your project and optimize costs, you can choose from one of three instance types: Regular (4 CPU cores, 8 GB RAM), Large (8 CPU cores, 16 GB RAM), or Extra Large (16 CPU cores, 32 GB RAM).
What’s planned?
- Support for more IDEs
In addition to IntelliJ IDEA Ultimate and Fleet, we also plan to support PyCharm, GoLand, WebStorm, CLion, and other IntelliJ-based JetBrains IDEs.
- Dev environment sharing for web app developers
Suppose you’re developing a web app and want someone from your team to test your latest changes. Typically, if you develop the app on your local machine, you should commit and push the changes, and prepare a preprod environment in your local network. With dev environments, all you have to do is build and run the app. You can create a shareable link, and then anyone with that link can access the web app without authentication.
- Support for multiple Git repos
Currently, a dev environment is able to work with only one project repository.
- Other features
- Advanced sharing options with support for various invitation flows and a list of collaborators/guests.
- Provisioning of user secrets to dev environments.
- Support for the Devfile format for describing the dev environment workspace.
- Dev environment resource management on organizational and project levels with support for resource quotas.
- On-premises dev environments.
- Security audit and other features.
How to start developing with cloud dev environments
All you need is JetBrains Fleet or JetBrains Gateway installed on your machine and a project hosted in Space. Follow these detailed instructions to:
- Start developing in a dev environment.
- Prepare a dev environment for a project.
- Mirror a Git repository in Space to use dev environments with an existing repository.
Should you have any issues with Space dev environments, please contact our support team by submitting a request via our website.
What do you think about Space dev environments? Leave your thoughts and feedback in the comments down below.