8 ms·
I'm curious. What would you do, host on-prem? Even if I had the hardware, as a pure software person, I have no clue how I'd even start setting up a physical loc
by n2d4 3y ago
I'm curious. What would you do, host on-prem? Even if I had the hardware, as a pure software person, I have no clue how I'd even start setting up a physical location to serve data on that scale. And even if the people on the NixOS team know, it sounds like their time would be better spent working on NixOS than building & maintaining a data center (even if small). Bare metal storage services seem to be on a similar price level as lower-cost cloud services like Cloudflare or Backblaze, but I'm very interested if you happen to know a cheaper alternative!
Plus, even if you deal with the storage itself, how do you deal with serving the traffic globally? Optimally you'd want a distributed CDN, but that doesn't really sound feasible without the cloud. Would you still use a cloud CDN, or just serve directly from your own server?
- jtolds 3y ago(piping up from another thread, but) > I'm very interested if you happen to know a cheaper alternative! and > Optimally you'd want a distributed CDN https://www.storj.io/ https://www.storj.io/ is this thing!
- n2d4 3y agoUsing the pricing from your other comment and the numbers from the parent, if I estimate correctly, Storj comes in at about $8k/month? That's cheaper than AWS (considering there are no CDN costs), roughly on the same level as Cloudflare and Backblaze, but still more than the entirety of NixOS Foundation's (monthly) incoming funds in 2022.
- jtolds 3y agoAccording to https://discourse.nixos.org/t/nixos-foundations-financial-summary-a-transparent-look-into-2022/28107/16?u=jtolio https://discourse.nixos.org/t/nixos-foundations-financial-su..., they have 450TB and 29.5TB of S3 egress/month. By my math, assuming the Nix Foundation goes in through our front door, talks to no sales people, and pays list price, that's $2k/month.
- n2d4 3y agoYou would replace the Fastly CDN with Storj, correct? Your link mentions 1500TB of Fastly traffic, which would cost $12k with Storj. Not sure if this is related to parent's 3TB/day number, but I went with that when I estimated the $8k. I think the best cloud solution might be something like Storj + Fastly or Cloudflare end-to-end. But I'm really curious how much could be chopped off if you tried to solve this on-prem.
- jtolds 3y agoStorj + Fastly is genuinely a pretty good combo. There are certainly some things Fastly does that we don't do (besides being more specifically a CDN, they also have compute@edge, etc). We have a good relationship with Fastly (e.g. https://docs.fastly.com/en/guides/log-streaming-storj-dcs https://docs.fastly.com/en/guides/log-streaming-storj-dcs) But yeah, I don't know how the Nix Foundation is getting their Fastly traffic paid for, maybe that's in/out of scope. Certainly they should keep Fastly if it makes the overall thing cheaper. Having a distributed origin (us) to dedicated edge cache (Fastly) makes for a strong distribution story.
- lordgilman 3y agoYou colocate, like every other distro has done since the 90s.
- herewulf 3y agoAnd throw in some rsync mirrors for good measure.
- toyg 3y agoActually, for someone building an OS, having to face very practical challenges in the server space would likely be extremely beneficial. Dogfood, people, dogfood.
- 411111111111111 3y ago> Plus, even if you deal with the storage itself, how do you deal with serving the traffic globally? As a simple example 1 of the cheapest hetzner baremetal nodes gives you 500gb nvme or 2tb HDD storage with an unlimited gigabit Connection in Europe. This sums up to i believe 10TB of data per day. Given the provided numbers, a single 50€ instance could handle the load, even if it's located in Europe. CDNs make sense for systems which are sensitive to high latency, or you're pushing multiple TB per hour, which this just isn't.
- usr1106 3y agoI wonder how unlimited such cheap unlimited connections really are. In the simplest case insufficient capacity in the provider network might become a bottleneck. They might notice that you are the noisiest one in the whole neighboorhood and either ask more money or throttle you. Offers that are too good to be true typically don't last very long.
- CodesInChaos 3y agoAt 1 EUR/TB, even the instance types that pay for traffic (e.g. the 10GBit dedicated servers) hardly break the bank. However Hetzner does not have the best peerings, so bandwidth to some locations might be worse than you'd like.
- 411111111111111 3y agoThats true, and I didn't actually want to suggest using the cheapest server available as a singular node either. I just wanted to put the given numbers into the scale of the cheapest baremetal servers available on the market, to illustrate that this is not an amount of data you'd have to consider for scaling. Realistically speaking, you'd want to have more then 2 nodes so you don't have to worry about rebooting/updates etc
- _a9 3y agoI have quite a few servers with hetzner. I don't know what the exact criteria are but once you hit around 250TB/month per server with multiple servers for (likely) multiple months in a row then they will tell you to chill out or they will terminate. I've gotten it and I've seen a few others on lowendtalk mention it too. I've been using hetzner for a couple years and have always used them for my high bandwidth services but I have only gotten that notice once despite being a very heavy user, and around the same time everyone else did around a year ago. Maybe they're gonna start to care? With all the price hikes and all. I ended up just getting more servers to level it all out.
- supriyo-biswas 3y agoIt is astonishing as to how marketers from the three big clouds have successfully convinced people that there is no middle ground between operating your data center and using one of their cloud services. Here's what you do: 1. Buy two servers equipped with a large amount of storage. There are many providers[1][2] that offer this. (You could technically do it with one, but two allows you to have high availability and prevent data loss in case of accidents, imagine `rm -rf *`.) 2. Use Minio to set up erasure-coded storage on one of the servers, and replicate objects[3] to the other server. 4. Use Cloudflare (because of their open source sponsorship program[4]) to serve the objects from the primary server, and when performing maintenance tasks, fall back to the secondary. You could also serve objects directly out of the primary/secondary, but using Cloudflare takes care of low-effort DDoS attacks by hiding the origin, and provides some caching which helps prevent hitting the egress limits of the server provider. [1] https://www.netcup.eu/vserver/vstorage.php https://www.netcup.eu/vserver/vstorage.php [2] https://www.hetzner.com/dedicated-rootserver https://www.hetzner.com/dedicated-rootserver [3] https://blog.min.io/active-active-replication/ https://blog.min.io/active-active-replication/ [4] https://blog.cloudflare.com/cloudflare-new-oss-sponsorships-program/ https://blog.cloudflare.com/cloudflare-new-oss-sponsorships-...
- usr1106 3y agoYes, perfectly doable, but the expertise and time needed to do it (without fatal mistakes) and keep it running 365 days a year is non-negligible. Doing this by unpaid volunteers is more than challenging.
- jacquesm 3y agoNot for the people behind NixOS. If it is challenging then that would cause me to re-calibrate my opinion of the project as a whole.
- simonjgreen 3y agoThis is, in my opinion, a falacy perpetuated by the marketing departments of "big cloud". Don't forget that pre-2006 there was no S3, and we managed just fine. They are not challenging skills to learn, the zeitgeist has just convinced itself they are not worth learning
- AnthonyMouse 3y ago> Even if I had the hardware, as a pure software person, I have no clue how I'd even start setting up a physical location to serve data on that scale. 3TB/day is about a third of what you can serve out of any run of the mill PC with a gigabit ethernet connection. There are 22TB drives and individual servers with 24 drive bays, which exceeds 500TB. So you could do this with one machine connected to a gigabit fiber connection, and the machine would cost approximately what they're paying monthly (almost all of that for the drives). In practice a 24-bay chassis is silly and you might use a separate storage array etc., but that's just details. > Plus, even if you deal with the storage itself, how do you deal with serving the traffic globally? At 3TB/day you're not Netflix. Just serve it directly from your own server.
- ptman 3y agohttps://www.supermicro.com/en/products/system/4U/6048/SSG-6048R-E1CR72L.cfm https://www.supermicro.com/en/products/system/4U/6048/SSG-60... - 4U 72 drives
- AnthonyMouse 3y agoIt's not silly because it doesn't exist. It's silly because it weighs a hundred pounds and makes design trade offs to achieve a level of density you probably don't even care about if you only need one of them. The people who want that thing are the people who are going to fill a rack with them or more instead of several times that many racks with something else. In practice if you need ~24 drives you get a couple of 2U array containers that each hold 12 drives and then buy a 2U server or two to plug them into and don't care at all that you used 8U for 24 drives instead of 4U for 72 because your 42U rack still has 34U to spare.
- Roark66 3y agoWell, having a $9k per month budget you could hire an entire rack in a premium data center location (let's say Telehouse London-Docklands that hosts London internet exchange - You can connect to it in a very cost effective way). This would still leave 80%~90% of the budget (depending on power use) for hardware/software etc. But a full rack is a huge overkill. How about a quarter rack for few hundred $ per month? What about connectivity? Well, as mentioned Telehouse Docklands hosts LINX so you can get an unlimited transfer gigabit right into the Internet backbone for a couple hundred $ (mind I dealt with them few years ago, but I doubt prices changed that much - probably they're lower if anything). Also there is a cluster of data centers in docklands so they compete on price heavily as well as resellers that often have good deals. This is all just location and connectivity. How about hardware? Let's say they wanted proper support with their hardware not diy so they were looking for a "solution provider". Send a request for quote to 10 of them including fujitsu, ibm, hp etc. Then tell them you're looking for a "charitable organisation discount". Unfortunately we're missing the most important metric to price this "solution". IOPS and if its mostly small or large files (random or sequential Access), but they host most of it in "infrequent access" s3 so let's assume it's not a lot, just to find the lower pricing boundary. So let's say a pair of 2u servers with two hba cards each and 4 12 disc jbods with 22tb Sas drives a total of a petabyte in raw storage or half a PB mirrored (not that they would run it mirrored). A system like this from a big name (it's rather low performance, but we're after cheap right, their s3 is likely very similar) might cost $80k. Over 5 years of lease that might be ~$3k per month plus their hosting and connectivity it's about half of their $9k.... Then there is software, but that's a separate thing. Also one could DIY such system for half the price, one could add SSDs etc. This is just an example. To design this properly one would need usage data from their s3 and few days of work to put it nicely together.
- traceroute66 3y ago> mentioned Telehouse Docklands hosts LINX so you can get an unlimited transfer gigabit right into the Internet backbone First, look at the LINX network map. They are not just in Telehouse Docklands. Second, with all due respect, do you know anything about how the internet works ? "internet backbone" huh ? LINX is a peering exchange. A connection to LINX gets you nothing. Sure you can peer with the route servers. But you won't find any Tier 1 routes on the route servers, and the Tier 1s will also refuse to peer with you because you're too small or you don't meet their ultra-restrictive peering policies (for example, good luck getting BT to peer with you !). Most people are better off getting a good connection to either a Tier 1 or a high-quality Tier 2 network and leaving it at that. > Also there is a cluster of data centers in docklands so they compete on price heavily London Docklands is the most expensive place in the UK to colocate, and probably in the Top 5 most expensive globally. Its prime real estate, all of the big-name colo facilities know that and will charge you accordingly, ESPECIALLY Telehouse ! And trust me, you don't want to go anywhere near a "cheap" Docklands facility, they are cheap for a reason. The days of £300 a month for a full rack in Docklands are long gone my friend. There are many other perfectly good places both in the Greater London area and elsewhere in the UK and Europe where you will get more bang for your buck.
- citrin_ru 3y ago> Optimally you'd want a distributed CDN, but that doesn't really sound feasible without the cloud CDN is a good choice when you ether need to sever small volume (i. e. not 500Tb) with low latency, e. g. to reduce web page load time by hosting static assets (js/css/img) close to the customer or when you have really huge traffic (e. g. Netflix, but they decided public cloud is not cost effective for CDN and built their own). For NixOS mirrors latency is not important, traffic is not huge (withing capacity of a single commodity server) and just two mirrors - in US and EU would be close enough to majority of users.
- tecleandor 3y agoI would split it in pieces and create a DIY CDN (like lots of Linux distros have). From the numbers I've seen in the article, the big problem is the storage, not the transfer, although they say that the space can be reduce by garbage collecting the less used caches (although not ideal). Note that they are using Fastly as CDN in the front, but that's not important for them (monetary wise at least). The big part of the bill is just the storage part. With little detail about their data I would chose one of these architectures... Debian (or other distro) mirror style: - Split the cache storage in pieces (by architecture, release or other categories)... - Deploy a bunch (10-30) of cheap servers in affordable hosting around the world. The most popular data is distributed in more servers (for example, the x86_64 build caches for the latest version of the packages) - Get some people to volunteer with small mirrors CDN style: - Get a couple or three medium/big sized (in disk, not CPU) servers for storing all the cache, for example, with Minio, so they don't even have to stop using S3 storage libraries. And then either: - Keep using Fastly or - Distribute tiny servers with Varnish or the like - Get some people to volunteer tiny edge cache servers Some weeks ago this was on the front page: - Serving 90TB/Day of Linux Updates from Thin Clients: https://news.ycombinator.com/item?id=35883053 https://news.ycombinator.com/item?id=35883053 - The scripts they use: https://github.com/PhirePhly/micromirrors https://github.com/PhirePhly/micromirrors
- johnklos 3y agoSurely you know what colocation is, don't you? Suggesting someone has to build a datacenter for it is like saying that programming is time consuming because people have to write their own compilers. If someone asked me to do this, I'd colocate in two locations (likely Europe and west coast USA) two full copies of everything in 1/4 rack. After physically building, testing, installing, then testing some more, which likely would take a month, it'd be a part time job to monitor and babysit for the first few months of use, then it'd be an hour a month maintenance job. CDNs cost money and come with tons of problems. For non-interactive static files, they're not necessary. If it requires constant attention, you're doing it wrong :)