Cloud computing has recently emerged as a new paradigm for hosting and delivering services over the Internet. Cloud computing is attractive to business owners as it eliminates the requirement for users to plan ahead for provisioning, and allows enterprises to start from the small and increase resources only when there is a rise in service demand. However, despite the fact that cloud computing offers huge opportunities to the IT industry, the development of cloud computing technology is currently at its infancy, with many issues still to be addressed. In this review paper, we present a survey of cloud computing, highlighting its key concepts and architectural principles. The aim of this review paper is to provide a better understanding of the cloud computing environment and identify important research directions in this increasingly important area.