-
Notifications
You must be signed in to change notification settings - Fork 166
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
nodejs.org resilience #676
Comments
What multi-provider options for CDN and hosting do we currently have (or can we have)? |
As of now; here's a list of (viable; excluding sponsors that probably won't cut it) providers that either sponsor us or might do so in the near future (google?): CDN:
Hosting:
|
Google may be able to help with both CDN and hosting. We any even be able
to find resources to help with implementation. If we want to move forward
with that lmk and I'll ping some people internally to see what I can get
…On Apr 5, 2017 3:33 AM, "Johan Bergström" ***@***.***> wrote:
As of now; here's a list of (viable; excluding sponsors that probably
won't cut it)
CDN:
- Cloudflare
- Google? (cc: @MylesBorins <https://github.com/MylesBorins>)
Hosting:
- Digital Ocean (current)
- Joyent (suggested failover)
- Softlayer (IBM)
- Rackspace
- Azure/Microsoft ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#676 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAecV2EZvCeaKRi6Se9bs47byMyZ6s9Eks5rsu9igaJpZM4Mzous>
.
|
CloudFlare log component is @ #679, gets us closer to removing those cache bypass rules in CloudFlare. For the record @nodejs/build, I discovered that we didn't have bypass rules for *.7z and *.zip files so metrics until today won't be accurate for them. |
FWIW I did try and configure CF to do this, the "always on" option is turned off but that seems to conflict with "bypass" so it never worked. I've also never been game to trouble-shoot to figure out how to make it work because that would involve taking the server offline .. or playing in a fresh zone that I'd have to set up. Thankfully we don't have to figure that out after this is all sorted out. Also @jbergstroem has pretty much got the mirror for the site set up so we're closer to enabling load balancing. We just need to confirm that logs are in order first and then we should be good to go. |
You have access to resources on Packet, and make sure you consider those for hosting too. |
Do you need any help with configuring Cloudflare, I have extensive experience with them (and some insider connections). |
So @jbergstroem set this up and configured a 15 minute sync to pull from the DigitalOcean primary server to our Joyent backup server for /home/dist (downloads) and /home/www (everything else). We did a little bit of testing with a temporary hostname, it's tricky to get full confidence without sticking this into production unfortunately but we were comfortable enough to turn it on and give it a go during a low traffic time. So what we have now is basically the same as before, but if the DO server flakes out for whatever reason (health check is just Next step is to turn off the bypass for download files, we're still forcing the Cloudflare edges to fetch from the origin server to get all of the download files (tarballs, installers, etc.) so we can collect metrics. You can see in the PR I submitted that we're now fetching logs from CF for /dist/ and /download/ every hour. I still haven't properly verified that they contain exactly what we need, I'm in the process of doing a comparison with the raw logs to gain confidence in the process. After that we need to do a switch-over for the metrics data so that at some specific point it switches from using the raw nginx logs to using these CF logs for the files @ nodejs.org/metrics/. I have a simple converter from JSON to the nginx log format we're using as an interim step, whether we end up without that intermediate transform or using the raw JSON can be decided later, for now I just want to make it work. A couple of interesting asides - I experienced I/O problems with the DO block device we're using for /home/ while working on there just now, makes me concerned about filesystem stability but at least we have this failover in place. Also @jbergstroem introduced me to systemd timers to replace crontab, they're ugly and verbose as per systemd but since they can apparently detect whether a previous job is still running or not they'll solve some of the problems we've had with overlapping jobs on the DO server, so we'd better convert all of that stuff I suppose. @jbergstroem we need a playbook for the new backup server work, is that going to be hard? |
Closing as stale, but if anyone wants to take this up feel free to reopen. |
I'd argue we learnt our lesson but here we are. Before we begin I just want to make a note to the readers that most of the node.js build team are doing this on their (our) spare time. We're always looking for new members!
Anyway, lets get to work.
unencrypted.nodejs.org
to hostnodejs.org
as well. It's already syncing most of the content; might as well do it all.Anything else? cc: @nodejs/build
The text was updated successfully, but these errors were encountered: