  By sharing resources among different cloud providers, the paradigm of
federated clouds exploits temporal availability of resources and geographical
diversity of operational costs for efficient job service. While
interoperability issues across different cloud platforms in a cloud federation
have been extensively studied, fundamental questions on cloud economics remain:
When and how should a cloud trade resources (e.g., virtual machines) with
others, such that its net profit is maximized over the long run, while a
close-to-optimal social welfare in the entire federation can also be
guaranteed? To answer this question, a number of important, inter-related
decisions, including job scheduling, server provisioning and resource pricing,
should be dynamically and jointly made, while the long-term profit optimality
is pursued. In this work, we design efficient algorithms for inter-cloud
virtual machine (VM) trading and scheduling in a cloud federation. For VM
transactions among clouds, we design a double-auction based mechanism that is
strategyproof, individual rational, ex-post budget balanced, and efficient to
execute over time. Closely combined with the auction mechanism is a dynamic VM
trading and scheduling algorithm, which carefully decides the true valuations
of VMs in the auction, optimally schedules stochastic job arrivals with
different SLAs onto the VMs, and judiciously turns on and off servers based on
the current electricity prices. Through rigorous analysis, we show that each
individual cloud, by carrying out the dynamic algorithm in the online double
auction, can achieve a time-averaged profit arbitrarily close to the offline
optimum. Asymptotic optimality in social welfare is also achieved under
homogeneous cloud settings. We carry out trace-driven simulations to examine
the effectiveness of our algorithms and the achievable social welfare under
heterogeneous cloud settings.
