3 ms·
Ex-Facebooker Ex-Googler here. IMHO? Absolutely not. Infrastructure just isn't in FB's DNA. I've never worked at Amazon but my understanding was that AWS was b
by cletus 4y ago
Ex-Facebooker Ex-Googler here. IMHO? Absolutely not. Infrastructure just isn't in FB's DNA.
I've never worked at Amazon but my understanding was that AWS was born from bezos deciding one day that the whole company would adopt a microservices architecture and the basic technology for that became AWS. This is quintessential eat your own dogfood. They were first to market and committed a lot to it so they became dominant.
Google (IMHO) only ever really entered the cloud space because they were afraid of AWS becoming so large that Google would cease to be a price-maker in the hardware space and would be a price-taker. I think I read at one point Google was purchasing 1 in 10 hard disks produced globally. That gives you a lot of power to set prices and secure supply if you're smart. Google didn't want to lose that position to Amazon so Cloud became a means of creating demand for more hardware.
Internally, Google services run on what can only be described as a data center OS (ie Borg). You set resource constraints like how much memory and how many CPUs your processes need and there's a scheduler that makes sure you only share resources on a server with other processes within total constraints. There's more to this like flex resource scheduling but it'll do for this example. IIRC Linux's cgroups, which form the basis of this, were contributed to Linux by Google.
Even so, my understand was that Google Cloud was relatively inefficient through all the networking and cloud VM/resource layers. This was years ago so may no longer be true and I have no idea how this compares to Amazon. But Google is prepared to get through that for other reasons. Still, Google doesn't use Cloud internally (unlike Amazon).
Facebook does some things very well, particularly produce deployment. You really can push a diff to master and it just gets auto-deployed to prod 1-4 hours later. What's more you have a bunch of UI frameworks such that developing a fully-functional UI that fits the FB style is amazingly quick.
But on the infra side, everything I saw was a disaster. There were still different specs of servers and each server AFAIK only runs one thing. There's none of the resource constraining stuff Google has. So how would you deploy Cloud to such infra? The answer is you wouldn't because you'd have to rebuild it from scratch and/or create completely different infra to what the rest of the company uses.
FB's approach has always beeen to build things quickly and not worry about efficiency. That's not the recipe for success in a low-margin business like cloud.