In recent days Cloud computing has made the trademark in hosting and delivering services to the personal or any organization. Everywhere and everybody is opting for cloud computing because it's beneficial uses i.e. worth to adopt the infrastructure, platform and services on the model of pay for only those services which are going to be used. Cloud computing gives the best infrastructure, new softwares and extended applications without investing for infrastructure maintenance, downloading, and installation of the softwares and without paying for the license cost for the individual computers and no requirement of personnel training for extended applications. Cloud computing provides the way to increase the services and capability of any organization at run time. Still cloud computing is at its initial state and many more researches are going on in this field and there are many obstacles that prevents the success of cloud computing. In this paper, a survey of cloud computing basic concepts, characteristics of cloud computing, deployment models, Environment for Load Balancing algorithms as well as research challenges are included. The aim of this paper is to find out the research direction in this vast technology. We discussed performance parameters which must be satisfied to design the efficient and effective algorithm. The algorithm which makes the better trade-off with these parameters will be considered good.