Cloud computing is an internet dependent approach for providing shared resources on demand with the management of storage, networks, servers, services and applications that needs management optimum effort. Virtual machine migration is playing a significant role for improving resources utilization; processing nodes load balancing, application isolation, fault tolerance in virtual machines, to enhance the nodes portability and to maximize the physical server efficiency. To balance the cloud with its resources for better performance with the services to the endusers of the cloud and at the identical time, numbers of users are served by application deployments in the environment of cloud is the main task. The users of cloud may request or rent the resources when they become essential. This paper has provided an overview of the essential components of computing with the discussion of virtual machine migration, resource allocation in cloud computing with its challenges and risks.