Choosing a Cloud Solution: Opportunities & Challenges