I have researched this space a lot, and my conclusions are:
- Cloudflare: the best all-in-one solution, as long as you don't go above the Business tier
- Fastly: the most technically advanced CDN, but also one of the most expensive ones (there is a reason why StackExchange and Reddit moved from Cloudflare to Fastly)
- KeyCDN: the best fully-featured value-for-money CDN, if you just want to replace AWS Cloudfront CDN / Google Cloud CDN / Azure CDN
- BunnyCDN: the best value-for-money CDN for distributing large static assets across the globe (can get as low as $0.0025 / GB)
Especially with the crazy SSL pricing. I appreciate there are technical difficulties, but LetsEncrypt has been out what - 2 years? And Fastly still want $100/month for a shared certificate.
Still, definitely the most interesting CDN if you can’t do your own thing. Network still isn’t where Akamai or EdgeCast are. Lots of good people there, though.
But without a cheap/free tier for smaller projects (and all my tech skills have been honed on small projects and then applied to large clients) they are not going to attract that coverage.
- Cloudflare doesn't distribute hls segments they will just route everything to LAX
- Bunny CDN had a few
- KeyCDN had a few but better than Bunny CDN
- StackPath had a few but better than Bunny CDN
- Google CDN had 0 complaints
No youtube, Vimeo etc...
All video streaming / hosting is done in house. Streams about 500GB to 600GB / month.
I pay about 40 USD / month for Google CDN bandwidth. I used CDNPerf pricing calculator, it's spot on.
You might also want to evaluate a video QoE service to see what your users are experiencing in terms of video start-up times, rendition switching, buffering, etc.
I actually completed the video streaming part of my CMS right before Mux offered /video service. By that time it was too late lol I had already solved most of the problems.
Also saw that you guys use elixir on your backend which was coincidentally was also my language of choice.
Can you clarify the problem you had with Cloudflare? It should work for this sort of use case.
We left without looking back, because interrupting our primary product without notice is unacceptable in every situation (except the very, very few aggregious fringe cases).
I'd also like to add that with Cloudflare workers the technology lead of fastly (VCL, edge configuration) has reduced significantly.
Note about bias: I've used both cdn's for years but mostly opt for Cloudflare today.
Your comparison is missing Akamai which is probably the most feature-rich and largest CDN.
> All results are based on RUM (Real User Metrics) data from users all over the world
> We gather and analyze more than 300million tests every day
> "RUM Uptime" shows the uptime of CDN providers as measured by real users. Due to bad Internet connections this number can contain false positives.
Agreed about Akamai, though — it appears to be clearly faster than those listed (they certainly had a HUGE head start). But also by far the most expensive. You get what you pay for in this industry!
I skipped Akamai, because it seems to be from the period of time, where the number of points of presence (PoPs) was used as the best indicator of the quality of a CDN. It might still be true in some of the third-world countries, but it's no longer the case in the developed world.
As for DNS providers: NS1 is like Fastly (the most advanced / premium), Rage4 is like KeyCDN (the best fully-featured value-for-money), and ClouDNS is like BunnyCDN (the best high-volume value-for-money). And Cloudflare is still Cloudflare.
Except NS1 don't actually offer any pricing.
Rage4, are they being used by any big players site? I mean KeyCDN, despite its price are actually pretty decent and have quite a few Enterprise customers.
And no mention of DNSMadeEasy?
That's true, and it might have been a good enough reason to exclude it from the comparison, as I did with Akamai for CDN. Yet, unlike with Akamai, nothing seems to come really close to NS1 in DNS space.
> Rage4, are they being used by any big players site?
That's its major downside. It has no competition in terms of the price / performance ratio, but might be not big enough company for major players to put a trust in.
Still, Rage4 is regarded with respect by others in its own industry: BunnyCDN uses it for distributing the traffic, and Cloudflare's employee recommends it when Cloudflare doesn't fit.
> And no mention of DNSMadeEasy?
I found it to be neither the most technically advanced, nor the best value-for-money. It might be a good option for those who don't have enough justification for NS1, and enough confidence in Rage4.
The Reddit and StackExchange stories are before my time, but I believe they related to reliability issues we were having at the time. It was over three years ago at this point, a lot has changed.
Do they require you to go above the Business tier for high CDN traffic levels?
> The Service is offered primarily as a platform to cache and serve web pages and websites. Unless explicitly included as a part of a Paid Service purchased by you, you agree to use the Service solely for the purpose of serving web pages as viewed through a web browser or other application and the Hypertext Markup Language (HTML) protocol or other equivalent technology. Use of the Service for the storage or caching of video (unless purchased separately as a Paid Service) or a disproportionate percentage of pictures, audio files, or other non-HTML content, is prohibited.
This limitation does not exist on the Enterprise plan, and Cloudflare salespeople are likely to make that point when selling the upgrade.
It used to be SECTION 10: LIMITATION ON NON-HTML CACHING.  Then with the May 25, 2018 update to the terms  they removed that limitation. It has a section 2.7 Acceptable Use but no 2.8. Then they announced their Bandwidth Alliance on September 26, 2018  offering some interesting free bandwidth options, including with places like backblaze which are primarily for storing non-html content. At the time of the announcement it seemed pretty mind blowing, especially because the non-html limitation had been removed previously. However it looks like they later updated their terms again on October 26, 2018  to put back the limitation as section 2.8 Limitation on Non-HTML Caching.
Quite unfortunate. I was actually looking forward to using the bandwidth alliance benefit to access my B2 buckets, however looks like it's against the rules again.
This was the first email: https://www.celsoazevedo.com/files/2019/01.png
I then replied that I couldn't afford an Enterprise plan and that I understood about the costs of serving 80TB. I was offered a $3000 plan: https://www.celsoazevedo.com/files/2019/02.png
I explained that 3k was too expensive for me, but I would be fine with something up to $500 even if that meant less POPs/features. Or I could leave Cloudflare too. The price dropped to $1500: https://www.celsoazevedo.com/files/2019/03.png
I asked for a few days so I could move some heavy files (under the 512MB limit) to a ~$120 OVH server and reduced CF's usage to under 2TB/month.
Again, I'm not complaining. I still use CF's service (last month I used over 150TB with Backblaze B2), but it's true that some users receive emails telling them to upgrade and that sometimes these emails imply that the site will be kicked out if nothing is done.
Now when you say that you still use Cloudflare & also that you used over 150TB with B2 last month, do you mean through Cloudflare thanks to their Bandwidth Alliance? If so, is this with a regular $200 Business plan or something more expensive? I've been wondering how much of this Bandwidth Alliance traffic would truly be free like they're advertising until they want me to start paying by the GB.
What am I hosting?
There's modified Google Camera app that unlocks Google's HDR+ on non-Google phones. It's an amateur thing for people that like to thinker with their Android phone. People were having issues downloading the files so I started hosting them (https://www.celsoazevedo.com/files/android/google-camera/). I also host other stuff which is used by people that install custom ROMs. Eventually all this got popular and now my personal domain uses this massive amount of bandwidth. Here's the weird thing: this domain is on a "pro" plan ($20) and they haven't said a thing (yet?).
This is not a business or a service. I have Adsense, but sometimes it's not enough to pay all expenses, so if an upgrade to an enterprise plan was required, I would be forced to close down the site or (with community support) move all this to one or two dedicated servers (you can get at least two 1Gbps servers on Hetzner or OVH for less than what the Business plan costs).
I really mean it when I say that I'm happy with Cloudflare. Without them this little hobby wouldn't exist. I only showed the email because jgrahamc asked for it and because it's not the first time I see someone mentioning "forced" upgrades.
Now, while "unlimited" is nice for what I do and for when you get popular overnight, not having a limit creates some insecurity. 80TB wasn't okay before, but 150TB is okay now? Was the email sent because CF was proxying/caching .jpg and .mp4 files? If so, do .zip and .apk files have different limits? We don't know if we have crossed the line if we don't know where the line is.
If Cloudflare does what you need, go for it. If you want a plan b, look into dedicated servers, after all not all content needs a CDN.
I tried to edit my original comment, but the "edit" button is gone: the email was sent almost 2 years ago. At the time they also claimed to have unlimited traffic, but I received that email anyway. Maybe something changed between then and now?
Yeah my original plan was to use B2 as storage and build my own caching system on Hetzner dedicated machines, as you suggested. Excess traffic was very reasonably priced at Hetzner at 1€ per TB. Since October 4, 2018 they've made traffic completely free.  However it's the B2 traffic pricing that was bugging me, as they charge $10 per TB.
When the Bandwidth Alliance got announced between Cloudflare & B2 to make B2 traffic free, it was like a dream come true. Especially because at the time this was announced the Cloudflare terms allowed for caching all legal files.
Unfortunately on October 26, 2018 Cloudflare changed their terms again to prohibit non-html caching. 
Thanks to your comments here and also jgrahamc saying that forcing to upgrade shouldn't happen anymore, I'm now a bit more optimistic again about using Cloudflare. I need to research & think some more to decide the exact plan, but even something like using Cloudflare to tunnel data from B2 to Hetzner for free sounds pretty nice.
 Use of the Service for the storage or caching of video (unless purchased separately as a Paid Service) or a disproportionate percentage of pictures, audio files, or other non-HTML content, is prohibited. https://www.cloudflare.com/terms/
The reason for the email was the bandwidth I was using. Since I could only spend up to $500/month, I asked if they had any plan inside my budget. I was open to have less features, less POPs or POPs only in cheaper places (eg: US or EU). If not, and since I couldn't afford the $3000 plan, I would have to leave the service and move everything to a new server (I was using a VPS, was in a place with bad internet, and asked for a few days to migrate everything).
The 3rd screenshot shows their reply to this:
> At the moment we offer the plans that are listed on our website and the Business Plus plan, which I cannot offer for less than $1500. If this is not an option for you please let me know when you have moved your traffic to a new server.
English is not my native language, so I might be missing something here. I understood it as "it's either the $1500 plan or leave the service".
As I said, traffic costs money and I don't really expect unlimited bandwidth. I'm also aware that it using something like Cloudfront would cost more than $1500.
I only replied to jgrahamc because he asked for the example and because it's not first time that I see CF people saying bandwidth is not a reason to force an upgrade. Since Matthew (CEO) and and jgrahamc (CTO) keep saying that bandwidth is not an issue, I assume that they don't know about these emails.
As of October 2018, Hetzner is the best choice in such scenario:
"Hetzner Online has permanently removed the traffic limitation for all Dedicated Root and Managed Servers with 1G Uplink. This means that outgoing traffic is now unlimited and free of charge. Therefore, we will no longer throttle the connection if you have higher levels of traffic.
In the past, if you permanently wanted to exceed the traffic limit on your server, you could pay an extra fee for each additional terabyte of traffic you used. But now this is not necessary. We will no longer invoice you for using more traffic."
You told them "If you have nothing cheaper, I'm going to have to leave" and they replied with "We have nothing cheaper. Let us know when you leave". That's not a threat, that's calling you out on >your< threat.
When I noticed that they had plans not available on their website, I asked if they had anything up to $500 and if not, if they could give me a few days to migrate everything to a server that could handle the traffic.
I was simply explaining my position, but I guess their sales representative could have perceived it a "threat". That wasn't my intention though. Also, I should have asked "what happens if I don't upgrade?".
Anyway, all this saved me some money and allowed me to learn a lot.
Our Edge Containers product launch was also on HN last month: https://news.ycombinator.com/item?id=19089614
I am a user of MaxCDN (which was bought by Stackpath) and on every page you write "Everything customers loved about MaxCDN has been integrated into the StackPath CDN Edge Service" which isn't true and just marketing speech.
MaxCDN had an API called the "raw logs api" that let my service query yours to get an understanding of what requests you have served for us, but that feature is missing with Stackpath, the feature is described here: https://reseller-docs.maxcdn.com/#raw-logs-api
This is super helpful, really appreciate it. I will say that this feature along with reporting delivery by file is among the top feature requests on the new SP// platform.
We do have the ability to provide you with access logs, but it's not as convenient as the API above.
We also have several users creating real-time CDN logs with our Serverless EdgeEngine so that's an option as well.
Anyways, I've noted your request around the raw logs API going to the new platform and will be sure to stay on top of it.
Feel free to email me anytime, always happy to help - ben.gabler (at) stackpath (dot) com
Your $200/month plan gives us 10TB. I've served over 50TB on Cloudflare's $20/month plan, which probably makes me a "bad customer", but it's nice not having to worry about this when someone decides to use a direct link to a video or image I host.
I guess they only ask you to upgrade if you serve a huge amount of bandwidth.
I understand it isn't implemented on one of them (MaxCDN IIRC) and StackPath does not provide pricing suited for smaller projects (where the traffic is GBs/month, but the speed gain from caching dynamic content is the reason for using a CDN).
Pretty good competition.
Not when it comes to pricing.
Cloudflare is the Heroku of the CDN space. They are easy to setup, they give away free or cheap accounts to get people on their service. Once a company gets big and starts having real traffic they move off of Cloudflare to a better provider.
Akamai isn't competing with Cloudflare on price, much like The French Laundry isn't competing with McDonalds on price.
CloudFlare’s $200/month plan is the best CDN per $ money can buy.
Once you get into “Enterprise”, then you should move somewhere else as they stop being competitive.
Walmart is still Amazon's competitor, despite being much cheaper in many cases.
Not saying they are better than Cloudflare. I use Cloudflare myself. But they are good alternatives.
https://www.namecheap.com/domains/freedns/ (free option)
So, that's my review of Namecheap freeDNS. I suppose they make it bad on purpose so people upgrade to their premium DNS?
For my own stuff, I use digitalocean for hosting so use their nameservers for DNS.
3. Bot Mitigation (credential stuffing)
We need mTLS and Websocket support. Other providers in the space may support one but not the other which is a problem.
Websockets was a requirement in the application at that time and of course we knew we we needed to remove it as a dependency and we have for the most part.
Cloudflare is undergoing a lot of big projects to break away from the image that they are "just a CDN". Raising a round now instead of going public allows them to invest more on those projects instead of focusing on quarter to quarter results. Also, avoiding brain-drains post-IPO while they need those talents the most.
Raising another round also allows them to have a higher per-share value which helps hiring. It's been a long time since the last round and the real value of Cloudflare's stock offers was higher than what the last funding round would suggest. Now it's easier to point to this round rather than just give vague promises.
I do wonder how people feel about this internally though. There's a lot of expectation that the company would go public this year (and some even expected it would go public last year). Hopefully no one needs the money they put in to early exercise any time soon!
> Sep 22, 2015 - Series D - $110M
> Dec 17, 2013 - Series C - $50M
> Jul 12, 2011 - Series B - $20M
> Nov 25, 2009 - Series A - $2.1M
> Jun 1, 2009 - Non Equity Assistance - ?
Seems like their rounds of fundings are slowing down.
There were also rumors of a $3.5B IPO.
I wonder if the founders still have a majority stake in the company.
To go into more detail: no. We make our money by selling our service to our customers.
I'm a fan of your registrar service. I started experimenting with it not long ago and have begun moving most of my domains over. I understand it's still early days there. Any chance you could build up & clean up the billing reporting and controls for domains (separating it out better, making it easier to view just domain billing information & renewal info)? It's a bit haphazard currently. It would also be very nice to be able to register domains further out than a year (right now it's just a basic one year autorenewal on/off) - even if that offering cost extra per year to push the duration out. I'd guess the issue on wholesaling and allowing longer renewals, is that if the price goes up on you in the meantime, you can't pass that along (no buffer / profit margin built-in); so throw a reasonable fee on top for pushing the renewal out. As it is, I've been adding years on my existing registrar, before I move domains over to Cloudflare. Why do I want the longer duration? Peace of mind, instead of renewing every year. Not having to worry about domains expiring is a mental positive.
Telecoms also generate their revenue by just keeping the power turned on with their existing infrastructure (yes it does require maintenance and monitoring), but that didn't stop them from trying to find additional revenue streams by further exploiting their already paying costumers.
I do use Cloudflare on their free tier, and I don't think they are spying on everyone and selling ads against some profile they have built up. We'll just have to be vigilant because the status quo right now is to be big brother and sell targeted advertising.
I would strongly suggest that you reconsider your choice of metallic headgear.
Cell carriers have been selling location data, despite making plenty of profit off selling a service. It's quite clear "we could be making more money" is a (potentially) compelling argument for large organizations sitting on lots of consumer data.
But a place that is making a healthy profit on customers, and have no way to monetize a secondary stream at anywhere near the same amount of profit, have several incentives to not to deal with it. One is something that a lot of people have trouble wrapping their mind around, but as a business grows, it gets to a point where it isn't necessarily worth grabbing every penny, because while the business is exerting the effort to grab that penny it's missing a dollar. (This is one of the reasons why there's no chance that Google will simply one day be the entire software industry, or why Amazon still has parters in AWS providing services that you'd think Amazon could just provide.) Another is the risk of exposure or pissing off your profitable customers when they find out about your secondary monetization; if 98% of your possible profit is the business profit and 2% the secondary monetization, then it doesn't take much perceived risk before that's a bad plan.
(One of the reasons not to get too upset when some companies make a decent profit; it helps keep them from scrabbling about for ways to extract every last penny from you, which is when they start getting really destructive. You're often better off when companies are not motivated to do that, rather than trying to starve them too hard. I really wish Google and Facebook had found more productive ways to make a profit; we'd all be better off for it.)
Some stuff I'm just not sure why it's not on a free plan, or even just on an Enterprise plan. I'd love to be able to send a custom 502 for instance, but instead I just remap it to 500 in nginx now... because my choice is between customization or sending the semantically correct status code. (Hey I know you browse HN CF staff, I'd drop $20 in a heartbeat to get stuff like this that's low cost to you across my account)
Argo is really cool, but enabling it on my Mastodon instance would add about $200 for traffic to my bill...
Edit: (at least) part of the answer is listed by jasoncartwright above.
If I were them I’d raise the price tier.
I would suggest to those that have the skills to make use of cloudflare workers that there are more straightforward ways to change that problem than building proof of concepts against them.
Also, if the currency is of lower value, they get paid more. Example being the English pound is of a higher denomination than a dollar, but whether it's "worth more" is dictated by purchasing power, relative movement over time, etc.
But for "let's play with this serverless stuff and maybe use it for something real in the future", $0 AWS lambda wins over $60/y Cloudflare workers. Or for hobby projects, doing it traditionally and running it on the $60/y VPS I already have instead of spending the money. And if asked later, CF is going to be the one I can't give a direct assessment of.
If you have to pay $5 for Cloudflare Workers, $5 for some more page rules, $13 for your (light usage) Postgres instance, $7.50 for your t3.micro, you're already at $30/mo baseline and you're not close to high availability.
It wouldn't be a big deal if I wanted to evaluate it for my company, we'd just pay the negligible fee and be done with it, but when my weekend sideproject's marginal cost goes from $0/mo to $5/mo, that's a barrier to entry I will never overcome.
It's not about the $5, it's that there's very little incentive to pay it when the app is making no money.
Sure, it's a limited version without binding to a specific domain and, correspondingly, without APIs to control Cloudflare-specific features, but it's often sufficient for POC transformations.