Mia Heidenstedt

Blog Infrastructure Update 2

Sadly i did’t saved measurements form before the migration to the new Infrastructure. I will do better next time ;)

My blog has experienced a major infrastructure update.
Previously this blog was served by a tiny but highly optimized server at a Hetzner datacenter.
Since this blog is static it was for example possible to pre-compress the files, which shaved a massive 1-0.5ms from a cold TTBF.

Sadly this approach was a bit flawed because outside of germany the cold TTBF times weren’t exactly good.
Surprisingly CloudFlare did nothing to these times, since the cache of CloudFlare is short lived and not prefetched.

My solution to this problem, to make a global low cold TTBF possible, was BunnyCDN which provides a Service that can store and server static file, these files are replicated Globally to user-selectable locations.
At my case (i use all locations), the price per GB per month is 0.28$ which is very good if you consider that all content is replicated and served from SSDs in 14 locations.

A graph showing 14 locations of the SSDs

Here you can see where these locations are, green is the “main storage zone”, which is not configurable.

The switch to BunnyCDN gave me a immense performance boost around the world, and surprisingly also in germany.
BunnyCDN dose not allow for rsync or something usable to transfer the Files to them.

I use lftp to transfer the files via FTP, which takes about 9 min each time. This is tbh shitty, and i don’t like it a bit.

# DNS and Peering

Sadly BunnyCDN dose not allow to use them as a nameServer, also i have to use a c-name to hook up to their CDN.
Cloudflare on the other side acts as a nameservers and returns direct IPv4s and IPv6s on the DNS-query, this will save 1 DNS-Request and is therefore faster, especially since most users using the DNS-Server from their ISP which are often very slow.

So i tried to put CloudFlare in front of BunnyCDN, which had a negative impact on the TTFB, although not a great one.
In same cases it is faster to get a uncached page on BunnyCDN through CloudFlare because CloudFlare has a lot and very good peering to ISPs and exchanges.

Sadly CloudFlare TTBF behaves a unpredictable.
It can be that you get in one request 20ms TTFB and the next one takes 300ms.

I think i will run CloudFlare anyway in front of BunnyCDN in hope to better mitigate Attacks and big page visit numbers.
I hope that CloudFlare will cache such surges for me… they can become expensive.

# Costs

This entire setup cost me less then 1$ per Month (without the Domain), which is very very cheap for something this fast.
I think it is amazing how cheap and easy you can distribute your ideas and thoughts today, without relining on a platform that appropriates your content.

# Conclusion

Costs less then 1$ per Month.
Scales amazingly.
Very fast global latency.
I don’t have to keep a server updated.