Site Migration History

Table Of Contents

Summary

The site is hosted on my own VPS now.
Judging from my experience, my rank of my used hosting of static sites:

  1. Firebase Hosting
  2. Github Pages
  3. Gitlab Pages / Netlify
  4. KeyCDN

Firebase is the champion 'cause its speed is on par with GitHub Pages (Both are using Fastly CDN) and it's really customizable when it comes to things like 301 redirection and caching. BTW, Firebase Hosting also supports dynamic content through Cloud Functions and Cloud Run. As for shortcomings, the SSL cert issued by them have multiple domains from various customers. (I asked the support and they told me I can move to the clean cert with only my domains for free if I switch to Blaze plan which is their pay-as-you-go plan. So I am now on the clean cert several days after I made the switch. Their free usage is like overkill for this site so not a bad deal).
Github Pages is second to Gitlab Pages due to the shortage of customizability in things like 301, caching and dynamic contents. However the cert of Github Pages is clean with only my own domain there.
The rest of them are not the fastest. Gitlab Pages supports my own certs. Netlify is feature-rich and the bandwidth limit is 100GB for free. KeyCDN's speed is just poor.

My current choice is excluded from the list, 'cause VPS itself does much more than all of them and not in the same category.

2016-12-08: From KeyCDN To Gitlab

Well the site had been hosted on KeyCDN for about weeks before I couldn't bear the waiting time for even a minor file.
See the result below:

That lagging time is not worth the money, I decided to try on Gitlab cause there's no need to spend much on other CDNs, whose SSL support is SNI and SAN support is rather expensive.

After a while of cloning and pushing and assign SSL, I ran the tests below:

It's really a waste of money when it comes to KeyCDN, while Gitlab is an amazing choice, though the SSL things need manually updating on Gitlab.

Goodbye KeyCDN! Hello Gitlab!

I've just been using Gitlab for a while and begin to love it! All I need to do is write and update and the rest procedures r automatically done by the runner!

To make things better, I just used CloudFlare's CDN for it, the speed has improved dramatically, which is well worth the loss of the old browser users, meaning I am finally back to CloudFlare CDN!

2016-12-30: Moved To Github

Just made some tests between Gitlab Pages and Github Pages about the speed. They were both sped up with Cloudflare. No need in uploading those things, 'cause it's basically about data.

On the same image 33 kb, in Stockholm Github pages performed better with the time of 450 ms while Gitlab spent 995 ms, in Melbourne Github did it again with 497 ms while Gitlab spent 1.54 s. Globally, Github is faster.

Just moved to Github.

2018-01-12: Stick With Github

To migrate from a server to another, I have to restore my backup. Then today I tried Gitlab to backup and restore. Everything worked like a charm fastly and conveniently with a free gitlab private (which I hadn't really care about when switching from Gitlab Pages to Github pages) repository in which there exists several branches. Then I realized how long I hadn't used Github since the last time. Also, with Netlify, the cert will look much more decent and be auto-renewed. So I just migrated the blog to Gitlab. After speedtest, I finally couldn't stand the speed loss again. 184.8kB in 2s or so almost everywhere. Is a Netlify page really using CDN? For the speed, I moved the blog back to Github PAGES + Cloudflare again.

2018-01-14: Moved To Firebase

Moved to Google Firebase. It's not as fast as Github pages + Cloudflare, but the SSL time beats the CF. I can have enough privacy with my files.

2018-01-15 ~ 2019-05-06: My Time With Github Pages

2018-01-15: No way. It's a shared cert on Firebase. After the comparation below, I decided to move back to Gitlab+Cloudflare, 'cause I know I value more about privacy now. Gitlab+CloudFlare has an okay speed for larger files.

Repeated Views Load Time Of a 220.7 kB image (With CloudFlare CDN):

AreaGitlabFirebase
San Jose300ms49ms
New York374ms173ms
Melbourne64ms52ms
Stockholm115ms34ms

More about Gitlab+CF:

AreaDNSSSLConnectSendWaitReceiveTotal
San Jose2ms22ms23ms1ms268ms6ms322ms
New York0ms79ms114ms1ms105ms150ms451ms
Melbourne0ms18ms19ms0ms25ms19ms81ms
Stockholm0ms18ms19ms0ms88ms7ms132ms

More about Firebase+CF:

AreaDNSSSLConnectSendWaitReceiveTotal
San Jose2ms34ms34ms0ms6ms6ms49ms
New York0ms58ms77ms1ms22ms72ms230ms
Melbourne0ms20ms21ms0ms9ms19ms69ms
Stockholm0ms17ms18ms0ms9ms6ms50ms

About first-time view? The difference is larger. For instance, in Australia, Gitlab is 1.2s and Firebase is 58ms.

Also, just made a comparation between Gitlab, Github and Firebase on larger files:

The First of Repeated Views Load Time Of a 4.8MB image (With Cloudflare CDN):

AreaGithubFirebaseGitlab
San Jose342ms1.27s839ms
New York659ms1.17s677ms
Melbourne2.36s3.85s2.87s
Stockholm3.80s1.25s1.46s

Github+CF:

AreaDNSSSLConnectSendWaitReceiveTotal
San Jose2ms24ms25ms0ms247ms68ms366ms
New York2ms47ms49ms1ms146ms459ms705ms
Melbourne2ms19ms19ms0ms1.90s440ms2.38s
Stockholm2ms19ms20ms0ms3.71s68ms3.81s

Firebase+CF:

AreaDNSSSLConnectSendWaitReceiveTotal
San Jose2ms30ms30ms0ms866ms373ms1.30s
New York3ms61ms63ms1ms634ms468ms1.23s
Melbourne2ms18ms19ms0ms3.37s455ms3.87s
Stockholm2ms17ms18ms0ms1.15s74ms1.26s

Gitlab+CF:

AreaDNSSSLConnectSendWaitReceiveTotal
San Jose0ms30ms31ms0ms321ms486ms868ms
New York0ms39ms41ms0ms112ms523ms715ms
Melbourne0ms23ms24ms0ms1.04s1.80s2.89s
Stockholm0ms21ms21ms0ms577ms862ms1.48s

2018-01-20: All the static assets on the site will be using the original CDN on the github.io domain.

2018-01-21: After testing and pondering, the assets of my blog, hosted on Github are now sped up by Cloudflare.

2018-05-01: The News: Custom domains on GitHub Pages gain support for HTTPS, now the blog's cert is automatically generated by Github. Even better!

2019-05-06 ~ 2019-06-06: Back To Firebase

2019-05-06: I switched back to Firebase. There I could have control over caching, redirects, etc. No longer rely on soft link. I'm now directly using Firebase.

Just made a speed test on GTMetrix about the isso loading speed on the article:

AreaWith CloudFlareBare speed
Canada1641.6ms1322ms
USA1351.1ms1074.3ms
UK430.5ms260.6ms
Brazil2.72s1.75s
Australia2.92s1.998s
China3.12s1.83s
India1.49s1.25s

Not faster at all. So I'll just stop CF it and make it run barely.

2019-05-07: I ran a test between Firebase and bare nginx about the static file loading speed on the article:

AreaWith FirebaseBare speedWith Github
Canada293ms1.4s0.6s
USA0.8s1.0s308ms
UK0.6s1.0s356ms
Brazil1.2s1.7s0.8s
Australia419ms2.2s0.5s
China0.9s1.9s0.8s
India0.6s1.3s1.2s

This time Firebase outspeed the bare speed everywhere. Right choice on Firebase about static site. I put Github on the right on purpose. Seems like nowadays GIthub pages and Firebase are almost on par when it comes to speed. To me, it's a right choice to switch to Firebase.

Just did a lookup about github pages' and Firebase's IP, they are both using Fastly. No wonder the performances are similar. The tests past were totally wrong 'cause I didn't take a look and check which time belonged to the CDN and they are generally affected by CF layer.

2019-05-27: Reused CloudFlare on isso for security purpose.

2019-06-06 ~ 2019-06-10: Back To VPS + CloudFlare

Firebase ssl needs checking in every month, which is awful. Also, learning FLask recently, I want to tango with Nginx and CloudFlare. The contents will load fast if cached on CF's server. Otherwise meh...... But Cf is a security company. I use it for security purpose.

2019-06-10 ~ Now: My VPS

This site is now served by two servers without Cloudflare as a frontend. (As I found out that Cloudflare CDN generally slows down the site speed). Here's the relevant results.