Cloud computing is the latest technological breakthrough in the information technology arena and every enterprise wants to take advantage of it to significantly reduce their cost and expenditures. The basic services provided by the cloud include data storage, network resources, computing resources and platform resources. The scalability factor of cloud computing is one of its major advantages as resources can be scaled up or down on demand. However, along with all these advantages, security remains one of the major concerns which has hindered the widespread acceptance of cloud computing. The recent years have seen a significant development in internet and the technologies used. The costs of data storage and power consumption are increasing on a daily basis which is a cause of major concern. This work provides an introduction to the topic of cloud computing, discusses its architecture, lists the main services provided by the cloud, describes the cloud service model and discusses the data and network security issues of cloud computing and reviews several solutions available to tackle these issues.