-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automatically choose workspace-cluster based on lowest latency. #5596
Comments
Excellent idea - but we really don't have time for this right now. |
FYI, that proposal is to temporarily gather ping times to all possible GCP regions, in order to decide "where should we create a brand new cluster next?" (and then stop collecting ping times, make a decision, and create the cluster) The proposal was not to collect ping times in order to decide "which workspace cluster should be used right now?" -- doesn't GCP's load balancer already do that automatically? How does the US vs EU selection work right now? (I assume it's not some custom code we wrote, but GCP selecting a reasonable cluster automatically -- I would hope this would also work with 3 or more clusters without requiring us to write custom code for this) |
I think the selection algorithm is broken, Im from India the nearby location is EU but whenever I fire a new workspace it gets created in the US region. Also I tried with VPN from Vienna that time it created under EU region 🤔 |
I don't think we want to implement and maintain custom code that measures latency, caches it, and acts upon this data. If possible, it would be much preferable to let Google Cloud pick the best workspace cluster automatically(!) Inspiration: Best practices for Compute Engine regions selection > Use Cloud Load Balancing and Cloud CDN:
|
The reason we need to build/maintain something ourselves is that the |
The minimal steps to make automatic cluster choices would be:
Offline we discussed the option of making the workspace cluster (or region) choice explicit on the dashboard. By default we'd select the cluster with the lowest RTT (as outlined above). However, focusing on the individual cluster instead of a region has several drawbacks:
Instead, we could introduce a |
Not sure why this got labeled "platform". The enhancements would mostly need to happen in components owned by the meta team. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This is still not yet fixed 🤔 From India it always choose us clusters instead of eu |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Nah. Just get the coordinate of the user via IP address and pick the nearest server. Every server should be located in a city. AFAIK Gitpod's running on GCP. |
👋 @geropl reopening, perhaps something we can discuss to see if it can be included in an iteration early next year? |
Context: #5534 (comment)
Problem Statement
We currently have workspace clusters in one region in the EU and one region in the US. To offer service at a good latency (e.g. < 100ms), we will need more clusters, maybe as many as one or two per continent. See https://gcping.com/ for your personal latency to every google cloud region. See the GCP network map for available regions and connections between them.
Prior Art
Proposed Solution
The user's web browser should measure the latency for every available workspace cluster and send the measurements to the gitpod-server, so that the server can make an informed decision about what workspace-cluster is best for the user.
Considerations
Proposed Design Choices:
Example Flow 1:
{'cache-key': 'FJJDSKD', "clusters": {"us07": "https://us07.gitpod.io/ping", "sing01": "https://sing01.gitpod.io/ping" } }
{"us07": 230, "sing01": 60}
Example Flow 2:
Example Flow 3:
The text was updated successfully, but these errors were encountered: