Cloud computing has emerged as a new paradigm for dynamic provisioning of computing resources, which can transform the authors' hardware and software resources. It allows businesses to start from small scale and expanding it as and when need arises. It is also beneficial to end users since they can get their results more quickly using more resources from data center. Being the descendent of many technologies like virtualization, grid computing, utility computing etc. Cloud computing has its own benefits and limitations. Cloud computing system can be divided into five layers: cloud application layer, cloud software environment layer, cloud software infrastructure layer, software kernel and firmware/ hardware layer on the basis of composition.