  Today's cloud infrastructure landscape offers a broad range of services to
build and operate software applications. The myriad of options, however, has
also brought along a new layer of complexity. When it comes to procuring cloud
computing resources, consumers can purchase their virtual machines from
different providers on different marketspaces to form so called cloud
portfolios: a bundle of virtual machines whereby the virtual machines have
different technical characteristics and pricing mechanisms. Thus, selecting the
right server instances for a given set of applications such that the
allocations are cost efficient is a non-trivial task. In this paper we propose
a formal specification of the cloud portfolio management problem that takes an
application-driven approach and incorporates the nuances of the commonly
encountered reserved, on-demand and spot market types. We present two distinct
cost optimization heuristics for this stochastic temporal bin packing problem,
one taking a naive first fit strategy, while the other is built on the concepts
of genetic algorithms. The results of the evaluation show that the former
optimization approach significantly outperforms the latter, both in terms of
execution speeds and solution quality.
