Physical machine, in a server room at Sony's Lund office. Custom order of several machines from Compliq, a small local shop.
It's a Threadripper-something, 128GB RAM, and nvme disks totaling 9-10 TB (plus a sata SSD for the OS, and maybe a big HDD for the mirror). I use btrfs' raid to join the repo disks, while others use other solutions (e.g. ext4 on top of mdraid). I also run btrfs compression, which saves a lot of space for very little cost (iirc, something like 1% extra time for a full Android build, but ymmv).
Most of us share the build machine with 1-3 other engineers, which is fine because we rarely need to make (big) builds at the same time. Android is not small, and having multiple copies of the complete history for multiple people would be impractical, so we have a custom git/repo mirroring solution that keeps our various checkouts from growing out of hand.
People use whatever tool they like to connect to the machine. I've seen remote desktop of some sort, xpra, mosh... Personally, I'm using ssh and screen, with some ssh_config aliases for quick access to specific product branches.
When it's time to flash a build to a device, rsync is great. I believe AOSP aims for hermetic/reproducible builds, which enables big speedups from rsync.
It's just a guess but this sounds like a physical machine with threadripper 3970x (128gb memory is the max it can handle without memory bandwidth contention) though I'm also curious about the details.
It's a Threadripper-something, 128GB RAM, and nvme disks totaling 9-10 TB (plus a sata SSD for the OS, and maybe a big HDD for the mirror). I use btrfs' raid to join the repo disks, while others use other solutions (e.g. ext4 on top of mdraid). I also run btrfs compression, which saves a lot of space for very little cost (iirc, something like 1% extra time for a full Android build, but ymmv).
Most of us share the build machine with 1-3 other engineers, which is fine because we rarely need to make (big) builds at the same time. Android is not small, and having multiple copies of the complete history for multiple people would be impractical, so we have a custom git/repo mirroring solution that keeps our various checkouts from growing out of hand.
People use whatever tool they like to connect to the machine. I've seen remote desktop of some sort, xpra, mosh... Personally, I'm using ssh and screen, with some ssh_config aliases for quick access to specific product branches.
When it's time to flash a build to a device, rsync is great. I believe AOSP aims for hermetic/reproducible builds, which enables big speedups from rsync.