Skip to content
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

Add gradual deployments and service bindings #240

Open
quisido opened this issue Oct 26, 2024 · 0 comments
Open

Add gradual deployments and service bindings #240

quisido opened this issue Oct 26, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@quisido
Copy link
Owner

quisido commented Oct 26, 2024

Deployments can be 90%/10% to deploy to a partial production region before all of prod.

To keep connections to the same host (i.e. in the 10% treatment group), a Cloudflare-Workers-Version-Key header must be attached to the request with a constant ID for the user. This can be, e.g., a session ID or IP address.

In order to obfuscate any treatments (not allow or require users to choose), abstract the dependence on Cloudflare for this feature, and to consolidate any other server-side security, routing, or authorization logic, we can use a service binding as an entry point/reverse proxy.

user -> /path/to/authn/service-binding -> 90% -> AuthnWorker 1.0
                                       -> 10% -> AuthnWorker 1.1

The service binding doesn't use gradual deployments itself.

This allows testing in prod before a full roll-out, and a rollback if alarm thresholds cross.

Metric metadata: app version (git SHA?)
Alarm rollback monitor: only monitors metrics that match app version

@quisido quisido added the enhancement New feature or request label Oct 26, 2024
@quisido quisido self-assigned this Oct 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant