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

Infrastructure update for Channel Cloning/CDN sync #1022

Closed
morremeyer opened this issue Sep 3, 2024 · 9 comments
Closed

Infrastructure update for Channel Cloning/CDN sync #1022

morremeyer opened this issue Sep 3, 2024 · 9 comments

Comments

@morremeyer
Copy link

morremeyer commented Sep 3, 2024

Hey everyone,

we (Anaconda) have been working on upgrades for the channel cloning/CDN sync infrastructure of anaconda.org, which is is used for two channels for conda, too:

  • conda-canary
  • conda-test

What's changing?

  • The codebase has been updated to make the cloning more fault-tolerant and reliable
  • The new infrastructure is more tightly integrated into our observability stack, enabling us to detect problems earlier and more granularly (e.g. a specific package that fails to clone instead of just a general cloning error)
  • We're adding a last-updated.json file at the channel root, which contains the last update time both as UNIX and ISO8601 timestamps. We are using this directly to monitor the updates end-to-end. Check it out for the anaconda channel if you're interested!

We have already made this change for multiple channels: anaconda, r, bioconda, and conda-forge have already been migrated successfully, proving that both the maintenance process and the new infrastructure work as desired.

There will not be any downtime during the migration.

Next steps

I have prepared this change on the new infrastructure already, it is now running in a dry-run mode to keep its caches up to date.

The actual migration can be performed any time now, preferably (since the people running it are in the CEST time zone) between 08:00 and 14:00 UTC.

Here's three proposals for a time frame that would work well for us:

  • Thursday, 2024-09-05, 09:00 UTC Edit: I would prefer one of the other two time frames.
  • Monday, 2024-09-09, 12:00 UTC
  • Tuesday, 2024-09-10, 09:00 UTC

The switch to the new infrastructure will take about 30 minutes, with some follow up work afterwards.
We will keep you up to date about progress here.

Looking forward to any questions you might have and when you think we should make the change!

@jezdez
Copy link
Member

jezdez commented Sep 3, 2024

@conda/conda-maintainers FYI!

@morremeyer
Copy link
Author

Hey everyone,

I'd very much like your input on this, since we don't want to run this migration at a random point in time.

The current time window we have closes next Wednesday and then reopens after October 21st. Ideally we can run the migration before next Wednesday.

@jezdez
Copy link
Member

jezdez commented Sep 11, 2024

I think this is probably okay, the conda-canary channel is used among other things, for releases based on merges into the main branch of a number of repos under the conda organization, and every PR can also build "review" packages of conda on request (by maintainers). That way we can iterate quickly and test the work on branches and the mainline easily end-to-end.

My main question is whether this change would lead to a slower than currently process to have the packages available for installation once they are uploaded?

@kenodegard Do you have any concerns related to the review or canary builds?

@kenodegard
Copy link
Contributor

kenodegard commented Sep 11, 2024

I don't have any concerns at this time (after all several other much larger channels have already been successfully migrated). It would be great if we could do the migration before the end of the week as next week through the end of the month gets into our release window.

@morremeyer
Copy link
Author

@jezdez The process won’t change - if at all it’s easier to increase the frequency after the migration.

I can easily run both migrations tomorrow if that’s fine with you, and update about the progress here.

@jezdez
Copy link
Member

jezdez commented Sep 11, 2024

Sounds good to me then.

@morremeyer
Copy link
Author

Both channels have been sucessfully migrated.

For conda-test, all work is now done.

For conda-canary, we were so far unable to enable the clean-up feature of the clone, which deletes unneeded files from the underlying S3 bucket, due to some packages being recognized as unneeded.

I will analyze these and post a list here to discuss with all of you before we continue, to ensure that these changes/deletions are correct.

@beeankha
Copy link
Contributor

Thank you, @morremeyer !

@morremeyer
Copy link
Author

I checked on the affected package archives and added a list to this comment.

We are currently investigating an issue with the anaconda.org backend in relation to this, so I'm not going to investigate this further at this point and circle back to it when that issue is resolved.

In the meantime, we will leave the clone running with the cleanup feature disabled so that these archives do not get deleted.
I'm closing this issue for now, since the migration is done, and will open a new one if it is still required at a later point.

Affected files
win-64/conda-4.2.15-py34_0.tar.bz2
win-64/conda-4.2.16-py34_0.tar.bz2
win-64/conda-4.2.16-py36_0.tar.bz2
win-64/conda-4.3.0-py27_0.tar.bz2
win-64/conda-4.3.1-py27_0.tar.bz2
win-64/conda-4.3.1-py35_0.tar.bz2
win-64/conda-4.3.4-py27_0.tar.bz2
win-64/conda-4.3.5-py35_0.tar.bz2
win-64/conda-4.3.7-py27_0.tar.bz2
win-64/conda-4.3.8-py34_0.tar.bz2
win-64/conda-4.3.8-py35_0.tar.bz2
win-64/conda-4.3.8-py36_0.tar.bz2
win-64/conda-4.3.10-py35_0.tar.bz2
win-64/conda-4.3.12-py34_0.tar.bz2
win-64/conda-4.3.14-py35_1.tar.bz2
win-64/conda-4.3.14-py36_1.tar.bz2
win-64/conda-4.3.15-py34_1.tar.bz2
win-64/conda-4.3.15-py36_1.tar.bz2
win-64/conda-4.3.17-py35_0.tar.bz2
win-64/conda-4.3.18-py27_0.tar.bz2
win-64/conda-4.3.18-py36_0.tar.bz2
win-64/conda-4.3.19-py34_0.tar.bz2
win-64/conda-4.3.21-py27_0.tar.bz2
win-64/conda-4.3.21-py34_0.tar.bz2
win-64/conda-4.3.21-py36_0.tar.bz2
win-64/conda-4.3.22-py34_0.tar.bz2
win-64/conda-4.3.22-py36_0.tar.bz2
win-64/conda-4.3.23-py35_0.tar.bz2
win-64/conda-4.3.23-py36_0.tar.bz2
win-64/conda-4.3.24-py27_0.tar.bz2
win-64/conda-4.3.24-py34_0.tar.bz2
win-64/conda-4.3.24-py35_0.tar.bz2
win-64/conda-4.3.28-py27h94f705a_0.tar.bz2
win-64/conda-4.3.30-py36h7e176b0_0.tar.bz2
win-64/conda-4.3.32-py35_0.tar.bz2
win-64/conda-4.3.33-py27_0.tar.bz2
win-64/conda-4.3.33-py36_0.tar.bz2
win-64/conda-4.4.0rc2-py35h3d13854_0.tar.bz2
win-64/conda-4.4.0rc2-py36h5d836c4_0.tar.bz2
win-64/conda-4.4.0rc3-py35_0.tar.bz2
win-64/conda-4.4.1-py27_0.tar.bz2
win-64/conda-4.4.2-py27_0.tar.bz2
win-64/conda-4.4.2-py36_0.tar.bz2
win-64/conda-4.4.3-py27_0.tar.bz2
win-64/conda-4.4.4-py27_0.tar.bz2
win-64/conda-4.4.6-py35_0.tar.bz2
win-64/conda-4.4.6-py36_0.tar.bz2
win-64/conda-4.4.7-py27_0.tar.bz2
win-64/conda-4.4.10-py36_0.tar.bz2
win-64/conda-4.4.11-py36_0.tar.bz2
win-64/conda-4.5.0rc0-py36_0.tar.bz2
win-64/conda-4.5.1-py35_0.tar.bz2
win-64/conda-4.5.1-py36_0.tar.bz2
win-64/conda-4.5.2-py27_0.tar.bz2
win-64/conda-4.5.2-py36_0.tar.bz2
win-64/conda-4.5.3-py36_0.tar.bz2
win-64/conda-4.5.4-py27_0.tar.bz2
win-64/conda-4.5.4-py36_0.tar.bz2
win-64/conda-4.5.5-py27_0.tar.bz2
win-64/conda-4.5.5-py35_0.tar.bz2
win-64/conda-4.5.6-py27_0.tar.bz2
win-64/conda-4.5.6-py35_0.tar.bz2
win-64/conda-4.5.9-py27_0.tar.bz2
win-64/conda-4.5.9-py35_0.tar.bz2
win-64/conda-4.5.10-py27_0.tar.bz2
win-64/conda-4.5.12-py27_0.tar.bz2
win-64/conda-4.6.0-py27_0.tar.bz2
win-64/conda-4.6.0-py37_0.tar.bz2
win-64/conda-4.6.0b0-py35_0.tar.bz2
win-64/conda-4.6.0b0-py37_0.tar.bz2
win-64/conda-4.6.0rc1-py36_0.tar.bz2
win-64/conda-4.6.0rc1-py37_0.tar.bz2
win-64/conda-4.6.1-py36_0.tar.bz2
win-64/conda-4.6.3-py27_0.tar.bz2
win-64/conda-4.6.3-py36_0.tar.bz2
win-64/conda-4.6.4-py27_0.tar.bz2
win-64/conda-4.6.6-py27_0.tar.bz2
win-64/conda-4.6.6-py37_0.tar.bz2
win-64/conda-4.6.7-py27_0.tar.bz2
win-64/conda-4.6.7-py36_0.tar.bz2
win-64/conda-4.6.9-py27_0.tar.bz2
win-64/conda-4.6.10-py36_0.tar.bz2
win-64/conda-4.6.10-py37_0.tar.bz2
win-64/conda-4.6.12-py27_0.tar.bz2
win-64/conda-4.6.12-py27_1.tar.bz2
win-64/conda-4.6.12-py37_1.tar.bz2
win-64/conda-4.6.13-py27_0.tar.bz2
win-64/conda-4.6.13-py36_0.tar.bz2
win-64/conda-4.6.14-py27_0.tar.bz2
win-64/conda-4.6.14-py37_0.tar.bz2
win-64/conda-4.7.4-py27_0.tar.bz2
win-64/conda-4.7.7-py36_0.tar.bz2
win-64/conda-4.7.8-py37_0.tar.bz2
win-64/conda-4.7.9-py36_0.tar.bz2
win-64/conda-4.7.9-py37_0.tar.bz2
win-64/conda-4.7.11-py37_0.tar.bz2
win-64/conda-4.7.12-py36_0.tar.bz2
win-64/conda-4.8.0rc0-py36_0.tar.bz2
win-64/conda-4.8.2-py37_0.tar.bz2
win-64/conda-4.8.3-py36_0.tar.bz2
win-64/conda-4.8.3-py37_0.tar.bz2
win-64/conda-4.8.5-py36_0.tar.bz2
win-64/conda-4.8.5-py38_0.tar.bz2
win-64/conda-4.9.0-py37h9490d1a_1.tar.bz2
win-64/conda-4.9.0-py37haa95532_1.tar.bz2
win-64/conda-4.10.0-py38haa95532_0.tar.bz2
win-64/conda-4.10.1-py37haa95532_0.tar.bz2
win-64/conda-4.10.1-py37haa95532_1.tar.bz2
win-64/conda-4.10.1-py38haa95532_0.tar.bz2
win-64/conda-4.10.1-py38haa95532_1.tar.bz2
win-64/conda-4.10.1-py39haa95532_1.tar.bz2
win-64/conda-4.10.2-py39haa95532_0.tar.bz2
win-64/conda-4.10.3-py38haa95532_0.tar.bz2
win-64/conda-4.10.3-py39haa95532_0.tar.bz2
win-64/conda-build-3.21.5-py36haa95532_0.tar.bz2
win-64/conda-package-handling-1.5.0-py27h3cc03e0_0.tar.bz2
win-64/conda-package-handling-1.6.0-py27h3cc03e0_0.tar.bz2
win-64/conda-package-handling-1.7.2-py38h62dcd97_0.tar.bz2
win-64/conda-standalone-4.9.1-h2d6ed4d_0.tar.bz2
win-64/python-libarchive-c-2.9-py36haa95532_0.tar.bz2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🏁 Done
Development

No branches or pull requests

4 participants