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

Figure out noble upgrade cadence plan #7333

Open
legoktm opened this issue Nov 8, 2024 · 5 comments
Open

Figure out noble upgrade cadence plan #7333

legoktm opened this issue Nov 8, 2024 · 5 comments
Labels
needs/discussion queued up for discussion at future team meeting. Use judiciously. noble Ubuntu Noble related work

Comments

@legoktm
Copy link
Member

legoktm commented Nov 8, 2024

Description

Instead of upgrading every single instance at the exact same time (once we push a deb), I think it would be better to do some sort of staged rollout.

My proposal would be that on package upgrade, each instance generates a random number (1-5) and stores it somewhere. In theory we've now split all the securedrop servers into 5 groups.

Then, in another file we ship with the package (possibly the upgrade script itself) we have a number we control. if we set it to 1, we'll upgrade ~20% of servers. Then we can do another deb package release to bump it to 2 to upgrade ~40% of all servers. And so on.

I also think this mechanism should be split for both app and mon. We should upgrade all mon servers to 100% and then do all the app servers.

@legoktm legoktm added needs/discussion queued up for discussion at future team meeting. Use judiciously. noble Ubuntu Noble related work labels Nov 8, 2024
@legoktm
Copy link
Member Author

legoktm commented Nov 8, 2024

Also, for instances with hands-on administrators, we can give them a heads up and let them manually run the migration script before our auto/forced migration.

@nathandyer
Copy link
Contributor

nathandyer commented Nov 8, 2024

(Early thoughts, not fully formed)

I like the idea of admins being in control of the migration, unless there's a situation where there's not a hands-on admin and we run up against the deadline.

What about an alternate approach that might look like:

  1. We select a hard deadline date for the auto upgrade (for arguments sake, March 1st). Prior to March 1st, Admins can manually kick off the upgrade from an Admin Workstation. The mechanism for which might be:

  2. We publish the package with the noble upgrade script on a new (temporary?) Apt server

  3. We update securedrop-admin on the Admin Workstations with a securedrop-admin noble-upgrade command, which essentially adds the new Apt server to the sources list on both app and mon.

  4. Admins can manually update before the deadline date

  5. When the deadline happens, we promote the packages to the normal apt prod servers and "force" the update

  6. We retire the temporary Apt server

@zenmonkeykstop
Copy link
Contributor

is the the idea behind phasing it to have some level of feedback as to how it's going and to not have a massive volume of support requests if things go wrong? If so, (building on @nathandyer's proposal) we kindof get that already if we give folks the option to migrate ahead of time and get the feedback of the first ones off the ice.

@zenmonkeykstop
Copy link
Contributor

We don't need temporary apt servers or anything tho - we can ship the changes packaged as normal and just have EOL checks.

@legoktm
Copy link
Member Author

legoktm commented Nov 8, 2024

is the the idea behind phasing it to have some level of feedback as to how it's going and to not have a massive volume of support requests if things go wrong

Yes, and (if things go poorly) we shouldn't take down every single SecureDrop all at once.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs/discussion queued up for discussion at future team meeting. Use judiciously. noble Ubuntu Noble related work
Projects
Status: In Progress
Development

No branches or pull requests

3 participants