I was watching this Google guy about how they roll Ubuntu updates to +10k desks:Ubuntu UDS Q - PM Plenary Tuesday 8th May 2012
He goes into talking about how an update that requires a reboot on the machine costs Google about 1m dollars, how failure handling should be part of the strategy, etc, very interesting.
Anyway. The bit that got me thinking is when he goes on about "tiered" software updates, ie, once you've implemented and tested something you roll out an update to a small % of your real user base. You deploy the update and monitor the hell out of it and after X amount real user usage, they bump up that % until they are happy with it and finally deploy to everyone.
Some updates you could even ask the users on boot up ("hey, we are rolling out a new version soon, do you want a peak?"), some you might have to force them (security updates), etc.
This can be done for a few platforms, although I'm not sure iOS and Android would allow since it requires that the app installed is mostly a version checker downloading the real app at runtime (ie, bypassing Apple's approval).
Anyone has been involved in something similar? Links to share? Ideas?