The last generations of high-end servers are amazing: they can have terabyte (or more) of RAM, dozens of CPU cores, and four (or more) 10GE uplinks. It’s easy to pack 100+ well-behaved VMs on a single server, reducing the whole data center into a private cloud that fits into a single rack.
I was involved in quite a few data center designs recently, and in many cases the customer didn’t have more than a few thousand VMs, which could easily fit into dozens of servers. The servers and some storage (unless they used Nutanix or VSAN, in which case even the external storage arrays disappeared) didn’t need more connectivity than two ToR switches (larger deployments needed 2RU switches with 128 10GE ports for a total of 256 10GE ports).
You’ll find a sample design using Nutanix NX-3050 servers and supporting 2500 VMs and a cluster of virtual appliances in the ExpertExpress Case Studies; it’s also included in the Data Center Design Case Studies book.