It continues to surprise me how (why?) Netflix builds their infrastructure on their #1 competitors platform. They're basically funding Amazon Prime. They're undoubtedly smart, so they must have a lot of incentive in doing so.
I would assume AWS allows Netflix to be lower cost, more agile, etc., allowing Netflix to deliver a better product for their customers and allowing them to focus on their core value (not servers). In addition, I doubt that Amazon Prime Video services go unfunded if Netflix wasn't an AWS customer. I don't think it's such a simple, two element zero sum concern.
The better product part is debatable. These days we typically spend half an hour or more browsing to find something good to watch. The quality of titles available is terrible.
Am I the only one that thinks its a good thing that we have a system in which this kind of a situation is possible? That they can host their entire infrastructure on their competitors product shows a level of trust on both sides that I find remarkable, and something we should definitely have more of.
I'm surprised nobody else has suggested it as a theory so I will.
One reason to host your service on a competitor's platform is if you intend to be purchased by that competitor. It brings your technology portfolio in alignment with theirs and makes the integration of the two platforms after acquisition easier.
If you think about it, it's also the absolute best advertisement for AWS you could have.
"What should I go with? AWS or Azure/Google/Whomever? Wait, Netflix runs entirely on AWS... I use Netflix, my daughter uses Netflix, I've never experienced Netflix downtime..."
...sure, maybe your entire reasoning for picking AWS wouldn't be because of Netflix. But it's like a poster child. If Netflix trusts AWS, why shouldn't you?
it makes me wonder if Netflix gets any "special deals" that any other corporation/consumer couldn't get, or if anything has been done at the hardware level specifically for Netflix.
I.e., I wonder if they ended up building a data center that they would have needed anyway, but made it the "Netflix datacenter," even if no one else would ever know it.
I wonder if you'd consider dedicated hardware for sources where the AWS bill gets to high?
For example, here in the netherlands, you have one major IX, the AMS-IX; if they were to rent a suite there, put some metal and hire a few engineers, they could supply most of western europe from there; I can imagine for some of these locations, it would make sense cost wise; on the other hand, if they are profitable like this, why take on the extra distractions of HR, failing hardware, etc. (which is probably why Netflix doesn't do the above...)
Is it really a direct competitor though? I mean it is in the "streaming video" sense. But Amazon Prime is not really in the business of producing original content whereas Netflix is.
A relatively large proportion of what I watch on Prime is Amazon Studios content. Largely because there are more interesting series than I have time to watch, and so it's easy to pick the content that's already included in the Prime subscription I'd still have just for the delivery first, and relegate content I have to pay extra for for later (that said, I do end up paying for quite a few movies).
Think about it from Amazon's perspective. $===$===$ every day of the week. Their AWS devision would be smart not to consider that they are providing their competitor with a good product/platform. And for Netflix, if they are getting a great platform (cheap, powerful, good support, etc) then why not? They should be beating their competitor on creative grounds.
AWS appears to be the best product for the job in terms of cost-effective scalability for their needs. That it happens to be a profit center for a competitor is a side concern.
Furthermore, it's actually a benefit to the marketplace! It forces Netflix to differentiate it's product to retain customers/marketshare.
Competition is not a zero sum game and video on demand is not a winner takes it all scenario. Netflix is already the market leader and for Amazon it is a great way to hedge, even if their video service fails Netflix would ensure they still get some profit from the market.
It's a bad decision. It's similar to companies deciding to outsource their communication to other parties (e.g. Slack) that can be hacked [1] and you can be banned at any moment.
Don't outsource your infrastructure to 3rd parties (especially competitors) just to save few dollars in the short term. Have control of your assets.
I don't think it is a big concern so long as the risks are acknowledged and contracts are in place. Apple outsources production of its Apple Ax SoCs to Samsung too.
> to other parties that can be hacked and you can be banned at any moment
That applies to you and me. Amazon will not ban Netflix randomly. If anything unexpected happens, I'm sure Netflix guys have direct contact to either people dedicated to servicing them, or appropriate level of Amazon management. They're also unlikely to have the same contract/access as you and me.
Netflix is well-known for running much of their infrastructure in AWS. What infrastructure do they not run in AWS? I'm aware of their CDN, which is the core of their business, and which they manage in-house. Are there other parts of the Netflix service that they self-host?
Not anymore, no. The billing was the last big thing to move.
Everything except the CDN is on AWS (unless they moved something back to the datacenter since I left 1.5 years ago, but that's unlikely and I probably would have heard about it).
It's pretty amazing Open Connect[1] doesn't get as much "fan fare" as Netflix use of AWS. This is arguably the core of what they do ( push tons of bits to the end user ), and something the cloud could not do for them.
I am curious if the other streaming video providers are doing something on the same principle to the Netflix Open Connect.
Just by assuming that 5-10% of their actual Netflix video traffic gets served from AWS and the rest gets served from the Open Connect servers, it's probable that any other competitor (except Amazon Video) would see huge savings with a similar implementation.
Does Netflix have an integration with the ERP? Is the ERP self-hosted, on cloud, or SaaS (like NetSuite)? Very curious to read if G/L is integrated or if transactions are posted manually on an end-of-month basis.
Edit: it seems like the earlier blog post mentions there is a data feed to the GL, but leaves this rather vague. Very interested to read their ERP and data feed setup. What ERP does Netflix use too?
Remember reading years ago somewhere that it was Oracle ERP, but can't find a reference. That might have changed as they got closer to completing their cloud migration.
> Some source tables had columns where Number meant an integer, in other cases it was used for decimal values, while some had really long values up to 38 digits.
I'd be interested if anyone had any guesses as to what data type may require a 38 digit number.
last time I asked why not PostgreSQL, now I have my answer. I love netflix's posts. Way more than most other tech blogs and their responses on the how and why is mostly more accurate than others (looking at uber) especially their expertise in evaluating stuff is extremly good.
What I especially wondered was why DRBD (i didn't had good experiences with it, neither with psql nor with mysql) guess with a lot of engineers + the hope to migrate to aurora at some day makes this a reasonable choice (i guess).
Still funny that their whole billing infrastructure runs on like two nodes for a while (the masters) while I guess a lot of things there has a need for writes especially when the monthly billing takes place.
I wonder how all that works out for Netflix. They must get a massive discount but do they buy reserved instances? or are all of their instances reserved instances?
According to @jedberg... they don't get any discounts other than hitting those top level tiers which are discounted. They pay the same rates as us peasants for the lower levels.
And yes, I'd imagine they heavily use reserved instances as their traffic patterns would be pretty predictable by now.
I guess he could be technically right in that they might overall be so far into the "Contact Us" tier that they've just been given a steep enough discount for that part of their usage to nullify the premium on the lower tiers. Having Netflix people say they're paying the regular rates certainly is good for Amazon PR.
They've given talks about how they do their own internal billing scheme to manage their blend of on-demand vs RIs vs spot. It comes down to watching your usage patterns, doing some smart modeling on growth, and buying RIs for the amount you'll utilize to the point that it makes sense over on-demand.
RIs make such a big difference on your bill if you utilize them well, and it's a no-brainer for Netflix scale.
I'd love to see an estimation of NetFlix for running the same infrastructure on GCE.
All the instances are cheaper and faster.
The networking is substantially faster, especially on smaller instances (I can imagine they have a lot of network IO given their business).
No more reserved instances to manage. The discount is automatic on GCE when instances ran 24/24 for the month. (Reserved instances are a management nightmare when you have many servers, you can actually loose money).
Replace all spot instances with the equivalent on GCE, which has fix pricing (about 70% discount) and is more dependable. (I imagine the core video business is extremely spot friendly).
With all the praise and hype postgresql gets, you wonder why all this awesome services are mysql first, RDS? mysql first, aurora? mysql compatible, google cloud sql? mysql, netflix? mysql, github? mysql.
I think mysql users are just there quietly making money while postgres users are bashing mysql ;)
I also think services like aurora are strong selling point for starting new tech businesses with mysql.
I'd be interested to see how many large companies have the courage to switch their databases after they've reached a "mature" stage as a company. My guess is a very small number have the technical expertise in order to make it worth doing in the first place, meaning in many cases the database the CEO picked when it was him in a basement learning to code for the first time is the one used in production many years later.
Sure it depends on use. If someone is all ORM all the time they may change fairly easily. If someone is all stored procedure all the time, I doubt they ever migrate.
Better technical implementation != greater adoption. If it did, PHP wouldn't be where it is today (everywhere).
Timing has more to do with adoption then the technical implementation. Being the first thing that is "good enough" for wide spread use is key. The last 20 years are riddled with examples such as Docker.
Except for replication, which matters to big companies, PG cannot really claim better implementation.
And when few use your product at scale it does not get tested in really stressful situation, and when it does we have Uber situation.
I helped several small business run web apps that use mysql without any issue. Only one of my customer asked for a Discourse installation that had postgres. Managing that database was a nightmare. The server would often crash for no reason, took seriously large diskspace etc. Unlike mysql I was not able to quickly understand the problems and handle them. I am pretty sure when configured properly etc. Postgres runs better than mysql but that extra trouble is not worth for most people.
You could apply the same sentence to NodeJS, Rails, MongoDB, etc - hype is not necessarily a good thing, if you read the definition:
- Excessive publicity and the ensuing commotion;
- Exaggerated or extravagant claims made especially in advertising or promotional material;
- An advertising or promotional ploy;
This is technology, there are always going to be "my stack is better than yours" arguments and fanboys claiming their newest tech choice is simply amazing because it does $x, $y and $z.
I heard it's because it is easier to extend / hack MySQL with custom storage engines. Even if you don't love MySQL you could still build a cool product on it.