These big companies are using unconventional solutions, such as the BitTorrent deployment system and geographically distributed content delivery networks (CDNs). When Facebook updates its code or generates a new build, the binary files needs be pushed to all of the company's servers (~1.5GB), so they created its own custom BitTorrent tracker designed to obtain data slices from other servers that are on the same node/rack which reduces total latency.
Source: Exclusive: a behind-the-scenes look at Facebook release engineering
Facebook deployment takes the following steps:
- Update goes to an "a2" tier which rolls update out to a small, random collection of users.
- Check-in procedure on company IRC where all developers who submitted code for the update have confirm that they are ready to
respond if there is a problem when the update goes out.
- Head of release engineering issues command in terminal to begin deployment
- Watch web-based monitoring dashboards as the update rolls out.
Frequency of deployments is one minor update on most business days, one major update on a weekly basis.
Source: How Facebook Does Deployment
You need to automate the way you build, test and deliver software. So, what is stopping other companies to do the same? They don't have that level of automation. – Gepser Hoil Feb 28 '17 at 17:59