The cloud Infrastructure-as-a-Service (IaaS) model, which provides users with remote virtual machines in a pay-peruse method, is attracting more people to start using IaaS services. This work advances the state-of-the-art one step further towards the realization of an automatic user-centric cloud provisioning and job scheduling tool. First, we extend some of the existing provisioning and scheduling strategies to be applicable to a real infrastructure of heterogeneous virtual machines. Second, we evaluate the extended strategies using the MetaCentrum data set. Our results show that handling different types of machines and applying backfilling scheduling successfully increased the average machine utilization and decreased the average job waiting time.