Cloud computing has recently emerged as a new paradigm for hosting and delivering services over the Internet. A computing Cloud is a set of network enabled service architecture, providing scalability, guaranteed Quality of Service (QoS), reduced information technology overhead for the end-user and great flexibility thereby providing cost effective ownership in a simple and pervasive way. Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. The resource sharing results in various cloud level offerings such as infrastructure cloud (e.g. hardware, IT infrastructure management), software cloud (e.g. SaaS focusing on middleware as a service, or traditional CRM as a service), application cloud (e.g. Application as a Service, UML modeling tools as a service, social network as a service), and business cloud (e.g. business process as a service). In this paper, we present a peer-review of cloud computing, highlighting its key concepts, architectural principles, state-of-the-art implementation as well as research design challenges.