Cloud computing is an internet based technology that provisions the resources automatically on the pay per use basis. With the development of cloud computing, the amount of customers and requirement of resources increases exponentially. In order to balance the load, the tasks must be equally distributed among multiple computing servers thereby, fulfilling Quality of Service (QoS) with maximum profit to cloud service providers. In addition, cloud servers consume huge amount of electrical energy leading to increased expenditure and environment degradation. Therefore, certain solutions are needed that results in efficient resource utilization while minimizing the environmental influence. In the paper, we present a survey of load balancing algorithms along with their limitations and propose a framework for an energy efficient resource allocation and load balancing for heterogeneous workload in cloud computing along with the validation of the framework using CloudSim toolkit.