Give users better ways of managing the lifetime of their workspaces
Problem
The only way to influence how long a workspace exists currently is changing the "Workspace automatically terminates after" setting during creation. Currently we set a default of 1 day, and the user has a maximum of 5 days. This leads to a myriad of problems.
Potential data loss
If you are still active in a workspace and make changes, and then the "workspace termination period" expires, you will lose all the changes you made. Currently we neither warn the user about this, nor give them any controls to change that.
Managing costs is burdensome
The default behavior is that workspaces are active throughout the entire time of their existence. This consumes a lot of extra energy and is thus accumulating costs, even when the user is not actively working in the workspace.
The user can manually pause workspaces. However, this is rarely happening, not only because it's manual work for them, but also due to the fact that while it's a benefit for the company, the users themselves only has negative consequences from this as they have to wait longer for a restart, while they personally do not benefit from this in any kind of way.
Restrictiveness due to lack of control
Due to having a workspace always be active during its entire existence (unless the user manually stops it), we need to have a very low maximum lifetime duration to avoid even further aggravating the costs it creates.
How our competitors solve this
All major competitors have the same model of splitting the management of workspace activity and lifetime management into two aspects:
- A short time period (15-30 minutes) to keep workspace running, and suspending upon inactivity.
- A long time period (14-30 days) to keep workspaces before forever terminating them.
It's important to note that the 14-30 days before terminating are based on the last time the workspace was active, and not based on when it was created, so as long as the user keeps using the workspace in a reasonable timeframe, it will never be deleted.
Both of these aspects are also configurable per user.
What are we currently doing to address these problems?
Right now we are investing time and effort into creating solutions that solve the most urgent problems that our lack of control for this creates. However, certain parts of that work are only valuable as short-term solutions, and we will then have to remove them once we get to solving these problems correctly.
As an example, in #467093 (closed) we are adding a warning that a workspace is nearing its expiration time. If we would instead follow the "best practice" pattern that our competitors have as well, this warning would never be necessary, as active usage automatically extends the lifetime of a workspace.
Potential solutions
Going with the "best practice" of what our competitors are doing seems to be the most simple and straightforward way of solving the problems that currently exist.