Traditionally, while designing the systems, the main aim is to achieve maximum performance and the issue of energy consumption is usually overlooked. This however has now become a major issue as the demand for cloud computing and IT systems is rapidly growing.In this book, the aim has been to optimize the resource allocation of the Virtual Machines by applying various optimization techniques. The first proposed technique is Bacterial Foraging Optimization. This technique was later hybridized with Genetic Algorithms. After exploring these nature inspired optimization techniques, it became very interesting to explore some others that are not nature inspired. We therefore moved further with designing an optimization algorithm using the Simulated Annealing and the Gradient Descent Techniques. The results obtained after implementing these techniques were significantly good.