Switch deployment is generally favored for production environments, where it is important that all updates take place immediately and without error. Online deployment is liable to put a live Web site temporarily in an inconsistent state containing both new and stale data; and it can also disrupt performance. Moreover, failure of an online deployment can put the site in an unknown state and render it unavailable for an extended period of time while the problem is diagnosed. The solution—often a full deployment—can itself be time-consuming.
Switch deployment avoids the problems associated with online deployment:
All new data is available to the live site at the same time, no matter how much data is moved.
Switch deployment failures only affect the offline server, so deployment failures have no effect on the live production site.
Online deployment is generally advisable for development and testing purposes, where easier setup and faster deployment is desirable, and the potential risks are not a major concern.