Zero-Downtime deployments
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust
- Domain
- infrastructure
Research direction
Start by tracing how flakelet starts and stops services and how it communicates with the HTTP proxy; the issue does not name specific files or tests. The proposed work involves running old and new instances side by side, checking the new instance's health, and routing traffic only after it succeeds. Done means a deployment can switch versions without downtime and stop the old instance only after traffic has moved.
Written by the indexing model from the issue text.
Description
Do you think it would be possible to add zero-downtime deployments to this?
What I mean by this that it allows the new version to start alongside the old version, then if the healthcheck succeds traffic is routed to the new version and the old version is only then stopped.
The tricky parts in this are:
- allow two instances of the services to listen on the same port (probably solved by each one running it's own namespace)
- from the outside, each version is accessible through a different port or IP which the flakelet service would need to keep track of and somehow communicate it to the http proxy (this would probably be possible by some http contract magic)
I have services that i update multiple times a day and i don't want to have a downtime each time.
Currently, we do this with kubernetes, but i'm looking for a simpler solution.
- Dominant language
- Rust
- Stars
- 50
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Mic92/flakelet
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
enhancement feature review: low Sonnet ui
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
MMFoundation/WallpaperMachine#190 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
servo/rust-smallvec#877 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
cloudflare/workers-rs#1140 ·
Maintainers usually reply within 7 days
-
A-documentation S-needs-triage
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Quantinuum/hugr#3344 ·
Maintainers usually reply within 1 day