Since netflix knows they will always be encoding, why would they pay for cloud provider overhead at all? It would seem to be far cheaper to have a dedicated fleet.
Because buying cheap surplus capacity (spot instances) is likely cheaper than running your own (Amazon has a reason to sell them at any value above the marginal cost of running stuff on them, which is basically power).
They might have a dedicated fleet for some capacity. They might also have a less predictable encoding load (e.g. not be sure how much content they will acquire), or able to make trade-offs (encoding is expensive today? let's do a fast encode and wait until spot instances are cheap with the better one).
They might also be buying for different prices/conditions than what you and I see on the web site.
The fact that not even the largest and most compute-intensive software companies manage their own servers now should really end the cloud computing cost argument at his point.
Netflix has long been open about the fact that their costs for content dwarf their IT costs, and encoding is a bursty CPU demand that perfectly fits cloud economics.
Note I'm not including their networking costs to get to the last mile, where they place a lot of their own boxes in ISP facilities pretty close to users, that would be about the same however they were doing core IT.
IME cloud _can_ easily be more expensive and more work than bare metal, in house or colocated. If course it depends upon the workload and the tools/resources available to manage it. Even with clouds there is still server management to do.
More expensive - maybe, depending on how good you are at managing runaway costs.
More work - definitely not. No matter how hard managing your AWS workflows is, bare metal will always be all that same work plus everything else related to hardware, cooling, power management, ISP and more.
At Netflix scale it’s probably cheaper to leverage cloud solutions than to maintain (build, equip, set up, maintain, upate, upgrade) their own data center.
If your load is fairly constant, maintaining your own servers is cheaper from the moment where you need two physical servers. And even at Netflix scale "maintain their own datacenter" might mean renting a few racks in a data center of your choice.
The arguments for cloud look different: services offered by the cloud providers, higher flexibility, no capex (though at small scale you can rent and at Netflix scale capex is presumably not an issue) or better scaling in highly variable loads.
Netflix encoding servers probably have very variable load since releases vary depending on season (like the flood of films for Christmas).
I'v e found that "your own servers" vs. "rent a cloud" are a bit weird as a company grows. First one is cheaper, then the other, then the first one again, then the other again, it continues like this a few times.
At one point it's quite possible that a combination of the two is the cheaper option.
And yes, you're completely right, load variability plays a huge role in all this.
That is very odd and doesn't mesh with my experience at all. Usually the server cost is linear with growth (more or less) so if the per unit cost is fixed (more or less) then how on earth would such a swap occur.
Depends on the size. When operating your own servers, you need to recreate all that cloud providers do for you:
- maintain the physical machines
- build or rent data centers
- have people to operate, maintain, upgrade the machines
- set up, build, maintain, update, upgrade infrastructure for your projects to work on your machines
All these costs are not insignificant when you need more and more machines. And as it was mentioned above, they don't do well when demand is variable: when you no longer need as many machines, you can't just decommission them. When demand spikes, you can't install new servers instantly.
Hybrid approach brings its own problems: your software and your infra has to work on your own servers and in the cloud, which is a harder feat to pull off than it seems.