My Own Private CDN
petekeen.net
petekeen.net
Having a dozen of POPs around the world is a trivial weekeend project.
Routing the client to the faster one and scaling up to local demands while optimizing given bandwith price is not trivial. Because not everything is Digital Ocean, for example what about Japan? Or Brazil?
* SSL - Free tier would bring Let's Encrypt SSL Certs by default, the end-user shouldn't even think about how it works or anything of the sort, it should just work. * CDN - no need to even think about how it works, ServerlessCDN type of stuff. * Host any kind of app (maybe some sort of serverless approach or docker, though the less you have to mess with even more dev tools the better) * Intuitive admin panel for when SHTF with detailed logging.
I'm surprised we're still stuck in the era of CPANEL and L*MP stacks. Imagine if anyone could install and run Discourse as easily as they do Wordpress, same with Ghost. DigitalOcean comes pretty close in this regard, but maybe something more fool proof for the average joe would be great.
Edit: also for just plain static if you use a non-JS generator.
The manager app is not in the hot path with this design so performance doesn’t matter all that much.
If you need a hand let me know, I’ve built pretty large CDNs before (10M r/s at peak)
Thanks for the offer! I might just take you up on it :)
This statement makes no sense. A CDN edge node is just a cache; its size and your access patterns determine the hit ratio.
At $dayjob we get Nginx cache hit ratios on our edge in excess of 99% for “an origin fetch” setup. That is a very large benefit.
Cloudflare works entirely on origin fetch. They seem to be doing okay.
I've been considering building my own but getting an up and running gossip protocol to have it share data between nodes isn't the easiest thing in the world to code.
I wrote the CDN in Go, with Redis and a smaller go-powered daemon to retrieve assets every 20 seconds, sync them to a local storage drive, and after 5 days retrieve again - or, if there is no requests within 48 hours, clear the unused items.
Then I setup a system that if one edge requests an “unpopular” file, it’ll ping a simple REST API and have all the other edges pull that file, this allowing the edges to stay “one step ahead” of the user load
Not that it matters, but some fun history for you. ATC is built on top of Apache Traffic Server. Before being donated over to ASF, ATS was known as YTS (Yahoo! Traffic Server). Of course the story doesn’t stop there, it was originally known as Inktomi Traffic Server, Inktomi having been acquired by Yahoo! in the early 2000s.
off to a good start...
Your cert is valid only for corastreetpress{.}com
Edit: fixed. T'was a dumb copy and paste error.
I've read as much as I can handle of the website of this ZeroTier thing and I still can't fully grok it.
What's the difference between this and your own private VPN?
ZeroTier is an overlay network. What is does it create a new encrypted network, with it's own address space and everything, on which you can connect through the controller (a default one is provided by ZeroTier). It doesn't matter where the nodes are. If it detects that two nodes are on the same LAN it's going to route the traffic directly. The overlay network is encrypted all the time, even when it goes over your LAN.
In any case, the cost considerations are somewhat secondary. I wanted to learn some stuff and this is a practical way to do it :)
Fair enough.
>I can get 4TB of transfer from Vultr or Digital Ocean for half that price.
You still need multiple POPS, with each droplet in those region the minimum cost is still going to be higher.
Also, TFA is talking this vs. CloudFront which is $$$