Conquering the Challenges of Cloud Migration