As a direct consequence of the increasing popularity of cloud computing solutions, data centers are growing amazingly and hence have to urgently face with the energy consumption issue. Available solutions are focused basically on the system layer, by leveraging virtualization technologies to improve energy efficiency. Another body of works relies on cloud computing models and virtualization techniques to scale up/down applications based on their performance metrics. Although those proposals can reduce the energy footprint of applications and by transitivity of cloud infrastructures, they do not consider the internal characteristics of applications to finely define a trade-off between applications Quality of Service and energy footprint. In this paper, the authors propose a self-adaptation approach that considers both application internals and system to reduce the energy footprint in cloud infrastructure. Each application and the infrastructure are equipped with control loops, which allow them to autonomously optimize their executions. The authors implemented the control loops and simulated them in order to show their feasibility. In addition, the chapter shows how the solution fits in federated clouds through a motivating scenario. Finally, it provides some discussion about open issues on models and implementation of the proposal.