Virtual machine (VM) provisioning is a common and critical problem in cloud computing. In industrial cloud platforms, there are a huge number of VMs provisioned per day. Due to the complexity and resource constraints, it needs to be carefully optimized to make cloud platforms effectively utilize the resources. Moreover, in practice, provisioning a VM from scratch requires fairly long time, which would degrade the customer experience. Hence, it is advisable to provision VMs ahead for upcoming demands. In this work, we formulate the practical scenario as the predictive VM provisioning (PreVMP) problem, where upcoming demands are predicted in advance, and then the VM provisioning plan is optimized based on predicted demands. Further, we propose Uncertainty-Aware Heuristic Search (UAHS) for PreVMP. UAHS first models the prediction uncertainty, and then utilizes the prediction uncertainty in optimization. Moreover, UAHS leverages Bayesian optimization to interact prediction and optimization to improve its performance.
Extensive experiments show that UAHS performs much better than state-of-the-art competitors on two public real-world datasets and an industrial dataset. UAHS has been successfully applied in an industrial public cloud platform and brought practical benefits in real-world applications.