Summary/Pitch
DevPlatform is a management and provisioning system for development environments run in the cloud.
It can handle provisioning, customisation, and deprovisioning of environments in multiple GCP regions, including providing build commands and custom content to preload.
Environments are accessible through a web URL and secured with Cloudflare Access, enabling login via identity providers such as Microsoft (Azure AD) and Google.
Development/design process
Phase 1: Product design, audience, and needs assessment
DevPlatform was created as an internal tool for myself. While I develop many projects locally, some require advanced computing, storage, or networking capacity in the development stage that would be infeasible to provide locally.
I needed a platform that could:
- Emulate my local development platform, and operate at the same or higher speed.
- Be more powerful than a local development platform, in terms of either network speed, CPU speed, storage or memory.
- Storage and network speed were identified as bottlenecks during local development and therefore prioritised for remote development.
- Integrate with commonly used tools such as Git.
- Be adjustable and configurable for various workloads.
- Be cost-effective and scalable.
- Ideally, multiple cloud environments should be able to stay running or preserved in order to reduce developer friction.
Phase 2: Product research
This year especially has seen the improvement and popularisation of remote development platforms as a mainstream DevOps solution. Some products that already existed that fulfilled part of the requirements were:
- Github Codespaces - released August 2021.
- Was adequate in speed, storage and networking requirements.
- Had native integration with Git.
- Was configurable (per-repository as well as per-user configuration for many aspects).
- Was not cost-effective when scaled.
- Codespaces was marketed and designed as a product that would fulfill the product requirements but it would have been unsustainable, due to the fact that pricing was prohibitive.
Product showcase and usage flow
Creating a new environment