Moving To the Cloud: What, When, and How?