-
Notifications
You must be signed in to change notification settings - Fork 9
Transition jQuery CDN from StackPath to Fastly #30
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
Comments
Confirmed with Fastly Support. These are fine. |
@supertassu and I read through these pages:
We settled on |
After experimenting with ignoring query strings via VCL-like header configuration (https://docs.fastly.com/en/guides/making-query-strings-agnostic), cache objects seem to get mixed up between compressed and uncompressed responses.
|
Only calls that are hidden, i.e. not in docs or examples. Ref jquery/infrastructure-puppet#30.
Fastly Support helped us realize that this was actually an issue on our end due to the origin server for releases.jquery.com not sending @supertassu traced this down to a mistake on the new WordPress servers. We forgot to set
But leaves The old WordPress servers did the same in the private repo at https://github.com/jquery/infrastructure, but we missed it during the conversion. We caught this before switching DNS, and codeorigin was not affected either way as it already sets the |
This can be done via custom VCL per https://developer.fastly.com/reference/vcl/variables/client-request/req-url-path/. But, an easier way is in the GUI under "Headers". This is slightly confusing as it's not actually a header, but you can use it to configure VCL expressions with the rest done automatically. Documented at https://docs.fastly.com/en/guides/making-query-strings-agnostic. Worked great.
Similarly, done through another "Header" using the Ignore query strings (Request / Set)
Case-insensitive URLs (Request / Set)
|
In the first rounds of testing we bumped against a connectivity problem that looks like it may have to do with how the TLS configuration at Fastly. Here is what we knew: Our base expectation is for HTTPS support to starts at IE9-11 on Windows 7. Ref #21. We don't expect IE8 or Windows XP to work, since we already moved to TLS 1.2 at some point during the StackPath era. Via BrowserStack, in Windows 8 and IE 11, I can load these URLs without issue:
They also work fine in IE 11, IE 10, and IE 9 on Windows 7. Using the same Win8/IE11 browser, https://codeorigin.jquery.com/mobile/1.4.0/images/icons-png/eye-black.png consistently fails with a connection error. It also fails in IE 11, IE 10, and IE 9 on Win 7. Note "codeorigin" vs "code", where codeorigin uses our new Fastly deployment. Fastly Support responded:
Switching our experimental deployment from t.sni to k.sni ( |
Traffic levels at Fastly over the past week, prior to the big switch. This represents the "codeorigin.jquery.com" canary experiment at about 4 requests per second every second (or 11-22K requests per hour), with an increase on 9 September when we updated our first-party documentation sites (jquery.com, api.jquery.com) to load ![]() We built most of our confidence with the canary traffic over the two weeks, using https://releases.jquery.com and codeorigin.jquery.com. Prior to the big switch we also made sure the The big switch took place on Friday 15 Sept around 17:55 UTC. Over the two weeks prior we were doing around 4 req/s (180/min, or 0.1% of jQuery CDN traffic). Within the first five minutes this went up to 16,000 requests per second (1M per minute, or about half our of our traffic): ![]() Over the course of the next hour we recieved around 90% of our normal traffic, and within a day 99% of the 22K-30K requests per second we normally do. ![]() From the other sideFrom the StackPath side, we started around 27,000 requests per second (HTTPS+HTTP) on Friday 15 Sep 2023 at 14:30 UTC, a few hours before the switch. ![]() Draining down to about 300 req/s by 21:00 UTC: ![]() Today, we are still serving about 100 requests per second every second through the StackPath service. It's been two full days since the switch, and it's 24 hours after the old DNS entry should have expired from DNS resolves by Internet service providers, device operating systems, and web browsers. While this is proportionally small (<1%), it's still more than 20X the "experimental" amount of traffic we received on Fastly during the two weeks prior to the switch. Hopefully this will drain within another week or so. ![]() |
This reverts commit a6d9ea8. Ref jquery/infrastructure-puppet#30.
Fastly logo added to https://releases.jquery.com as of jquery/jquery-wp-content@28542b5. |
add link to jQuery CDN landing page instead, where current sponsor logo is shown. Ref jquery/infrastructure-puppet#30.
General
*.jquery.com
certificate./jQuery-foo.js
is able to match/jquery-foo.js
.Testing
-4
,-6
,--http1.1
,--http2
,--tls-max 1.2
,--tls-max 1.3
, http+https URLs (except http2 over HTTP) and confirm HTTP 200 OK (esp no redirect). Use--connect-to ::SOMETHING.global.fastly.net
to test prior to deploying any DNS changes.Deployment
Three services overall: code, content, releases.
codeorigin.jquery.com
for functional testing.code.jquery.com
.Examples of past issues:
OpenSSL SSL_read: Connection reset by peer
. No IPV6 for some CDN routes codeorigin.jquery.com#82Post-deployment
The text was updated successfully, but these errors were encountered: