Achieving Service Level Objectives For Latency-Critical Cloud Services By Exploiting Various Forms Of Heterogeneity In Server Clusters