I would like to know how these companies deploy new versions of their sites without downtime. I am aware of the BlueGreenDeployment model, however, I would like to know what these sites do to avoid/minimize downtime.
Google handles it in a few different manners. If you study their data center model, and the fact that they run 'clusters' of machines in each data center, they are able to shut down a data center so that it doesn't take requests, roll out the changes, turn on the data center, and do rolling upgrades. They can also do this with the clusters within a data center. Recently they upgraded the filesystems on their machines from ext3 to ext4 in-place by rolling things out on a per data center basis.
Google also does staged rollouts where clusters of people get different user experiences than other users. Facebook does this as well.
Ebay decommissions a large portion of their data center through load balancer changes, upgrades and migrates over decommissioning the other half. It has been said that they have enough redundancy to run their site on 1/3 of their available hardware. They may have more sophisticated methods now, this was a paper I read about 4 years ago.