Deploying applications in a multi-cloud environment can be challenging. The cloud providers face the challenge of optimally utilizing the cloud resources to achieve a certain goal such as reducing the power consumption of the cloud. The cloud users, who deploy applications in the cloud, face the challenge of satisfying the application requirements, such as the processing and memory requirements, and application user requirements, such as the throughput and response time constraint. There is a relationship between the challenges faced by the cloud providers and cloud users, which allows these challenges to be studied together. This work covers such a problem, which aims to find a deployment, i.e. allocate resources for an application in a multi-cloud environment, while satisfying the above requirements of the application, application user and cloud provider. The proposed algorithm uses a combination of queueing theory, clustering, graph partitioning and bin packing strategies to solve the multi-cloud application deployment problem. It produces a solution within 20 seconds in 90% of the test scenarios, which is a reasonable amount of time to be useful in practice. In 77% of the test scenarios, the solution's power consumption is within 10% of an unachievable theoretical lower bound, showing that the heuristic algorithm is extremely effective. I would like to express my profound gratitude to my supervisors, Professor C. Murray Woodside and Professor John W. Chinneck, for constantly guiding, inspiring and encouraging me during my thesis. This research would not be possible without their support and feedback. Also, it was a lot of fun to brainstorm with them. My most memorable moment was the discussion to name the algorithm using my initials, BS, or after McDonalds, McD ("billions served"). Unfortunately, I failed to provide strong arguments for such naming. So, we ended up naming the algorithm, MCAD. Furthermore, I would like to thank my living family members, Rupdiner Kaur (mother) and Amarpreet Singh (brother), for their cooperation, and moral and emotional support. Finally, I would like to thank my father, Karamjit Singh, and my grandfather, Rajinder Singh, for providing strength in spirit through the lingering memories.