4 ms·
> Code at Google3 is one giant monolith I’ve heard this stated before, and something about it feels off. There’s no way all of Google’s code is in one repo. L
by Uehreka 3y ago
> Code at Google3 is one giant monolith
I’ve heard this stated before, and something about it feels off. There’s no way all of Google’s code is in one repo.
Like, does that monorepo contain the full Android operating system with Google Services and the firmware for all the Pixel devices? I feel pretty sure multiple teams at Google must have forks of the Linux kernel for one reason or another, would those be in there too? Is Chromium in there too? What about the whole golang project?
Even if I’m off about some of this, it feels like the statement “Code at Google is one giant monolith” needs some qualifiers.
- rightbyte 3y agoYe, like, is there a google.exe at 3912GB with 10k command line options like '--search-server --port=80' or '--Gsolitaire'?
- why_only_15 3y agono, there are thousands of Blaze build files that each have their own binaries, tests, libraries, etc.
- vlovich123 3y agoTo be fair though, the baseline hello world C++ binary is quite hefty (10s or 100s of MiB - can't recall) & comes with a bunch of command-line options & an HTTP server out of the box. Or at least did when I was there & I doubt it's changed much. All that functionality is to integrate the baseline set of SRE ops tooling that are common to all services that are deployed on Google servers (eg. HTTP server is to support scraping for performance monitoring integration similar to Prometheus/OpenTracing). It's mildly annoying because any command line tools you write pick up all of that useless functionality but it is easy to teach so trade offs.
- morgante 3y agoThere are certainly a few notable exceptions (Chrome and Android), but google3 really is a massive monorepo. It does contain forks of tons of open source code in the third party folder. I don't recall if the Linux kernel is in /third_party but I would not be surprisied if it is. A fair amount of the operations are actually documented publicly, ex. https://opensource.google/documentation/reference/thirdparty/ https://opensource.google/documentation/reference/thirdparty...
- dilyevsky 3y agoAndroid, golang, chromium and a few others were separate but there were 2B+ loc of other stuff in that repository
- summerlight 3y agoNote that google3 is a subset of the entire Google codebase. But it still contain more than half of its code (>2B LoC), mostly those running over their cloud. In contains all the infrastructure code as well, including Linux kernel, compiler, tool chain... literally everything needed. When you build some big binaries, you may see more than 500k~1M build targets analyzed and built (or pulled from cache).