InfoQ Homepage News Adopting Remote Development Environments at Slack
Adopting Remote Development Environments at Slack
Lire ce contenu en français
Aug 30, 2022 2 min read
Write for InfoQ
Feed your curiosity. Help 550k+ globalsenior developers
each month stay ahead.Get in touch
The Slack internal tools team recently talked about utilizing remote development environments in their application development workflow. By January 2022, over 90% of engineers had started using the remote development workflow at Slack, which lead to an increase in developer productivity.
Sylvestor George, staff software engineer at Slack, discussed the team's journey in a recent blog post. Slack uses Hack as the programming language for its backend. The earlier development workflow consisted of running HHVM directly on macOS. HHVM upgrades, Homebrew related issues caused an overhead and impacted engineer productivity. As their first iteration, the internal tools team used local docker images to run the application with HHVM, keeping copies of the application on remote servers.
Through the Remote Development Environments Project, the team gathered data that created the goal of enabling engineers to write code without the local setup overhead and its associated maintenance. Enhancing Slack’s internal CLI tools, engineers can now use one command to reserve a development environment, attach their branch to that environment, install any new dependencies and open a local VSCode instance with desired settings and extensions.
Source: Remote Development at Slack
Several development environments are available for engineers using AWS Auto Scaling Group. When engineers reserve a remote environment using the command - slack remote-dev -b <branch-name> - the environment is set up to use VSCode’s remote SSH extension and develop remotely. These environments have full IntelliSense, code navigation, and debugging. Also, these environments allow for custom extensions, scripts, bash profiles, git config, aliases, and VSCode Settings as per the engineer’s preference.
Source: Remote Development at Slack
Once the engineer detaches from a development environment, the underlying instance is automatically terminated. If the branch associated with the working environment is merged, the environment is automatically detached and terminated.
Lately, we have seen the reproducible development environments getting new hires started in an hour instead of days, making "devcontainers" a regular part of one’s development workflow. At Slack, a new hire's setup time was reduced from an hour to a few minutes.
There is an increase in traction with cloud-based development environments like Gitpod, Amazon Cloud 9, JetBrains Space, and GitHub Codespaces.
The remote development environments at Slack initially used C5.2xlarge (8 core, 16 GB RAM) instances. When the team realized the environments were insufficient for the workload, the instances were upgraded to C5.4xlarge (16 core, 32 GB RAM) with a single configuration change. Such flexibility to upscale the instance specification as per the need without needing to replace the laptop added to the overall benefits of remote development environments.
The remote development flow was generally available in October 2021, with 30% of engineers already switching to it in the beta release. The team conducted internal surveys to get feedback and found positive responses, enabling further spreading of word of mouth.
About the Author
Aditya Kulkarni
This content is in the DevOps topic
Related Topics:
-
Related Editorial
-
Related Sponsors
-
Popular across InfoQ
-
ArrowJS Reaches 1.0, Recast as the First UI Framework for the Agentic Era
-
Anthropic Releases and Temporarily Suspends Claude Fable 5
-
Slack Eliminates SSH in EMR Pipelines, Migrates 700+ Jobs to Rest-Based Architecture
-
Anthropic Explains How Claude Builds Its Own Execution Harnesses
-
Spring Boot 4.1 Adds gRPC Auto-Configuration, SSRF Mitigation, and Kotlin 2.3 Support
-
Increasing Users' Data Agency: From BlueSky's AT Protocol to the Local-First Software Movement
-
The InfoQ Newsletter
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example
