We need something that works for services, mediawiki, phabricator, etc.
Synthesize features from scap and trebuchet, to create **`One Deployment Tool to Rule Them All`**
1. Fan-out deployment to efficiently distribute the bits to 100s of servers. `scap` deploys via proxy deployment servers which are physically close to the group of target nodes that they serve. We are considering a git-based deployment that would be somewhat analogous to the way scap does it:
** We could set up a few dedicated deployment hosts which periodically git-fetch the relevant git repository so that they are always primed with most of the changes
** the amount of data to fetch with each run should be small.
** when we deploy a tag, target nodes fetch from the nearest deployment host and check out the requisite tag.
** we need to avoid having multiple full copies of the source tree synced this way. By fixing mediawiki release branching we can drastically reduce the amount of data sync'd at each deployment. Once branching is done sanely then git will only need to transfer the deltas instead of the entire tree.