Machine Learning for Achieving Self-* Properties and Seamless Execution of Applications in the Cloud