Proposals & SNS Application Upgrades

Does anyone have any guidance or tips on upgrading application SNS Canisters, specifically in the following areas:

  • the proposal upgrade mechanism is cumbersome, what happens when an upgrade fails - how can you quickly redeploy?
  • how to manage snapshots & rollbacks in the context of upgrades through proposals
  • how to retain integrity - e.g. if 1 deploy through a proposal fails but all other canisters are successful you could end up with an application that no longer works