Create and maintain cloud based development images (for aws, gcloud, etc)
Overview
Running GDK on your own laptop has the following drawbacks:
- It requires a powerful mac or linux based system to be able to run,
- On MacOS, docker uses too much CPU which is taxing on the system and battery life,
- Other processes like node also use too much CPU and tax the system,
- Dependencies are hard to manage and, when it breaks, it's hard to troubleshoot and reinstall the components. This is required from time to time when upgrading one's system,
- Non-Engineers can have a harder time installing dependencies and troubleshooting errors.
This not only causes problems for GitLab employees but also for the wider community of contributors as it imposes a barrier to start coding.
Proposal
Create and maintain a development image which can easily be instantiated on the cloud (AWS ec2, gcloud, etc) so that the developer can start coding/testing right away with minimal effort.
This image should:
- Contain all the stack needed for GDK and GitLab (ruby, postgresql, redis, docker, etc)
- GDK preinstalled and up to date
- VS Code Server to edit the code directly on the browser
- Contain sensible defaults for shell configuration
- Be automated, ie, built using tools and scripts like
chef
,packer
, etc.
Benefits
- Quicker onboarding: New developers can jump into coding right away after instantiating the image
- Easy to backup and restore instances
- No wasted time with dependencies and troubleshooting, as the images can be tested before hand
Challenges
- Editing code on the cloud might not be ideal compared running it locally, but
code-server
seems to do a good job.
Edited by Giorgenes Gelatti