This document proposes an approach called PRESTO to automatically learn performance models of software applications during testing to synthesize resource provisioning strategies for cloud computing. PRESTO uses rules describing how different types and combinations of input data lead to intensive resource usage. These rules are then used to automatically search for and optimize application-specific provisioning strategies to guide allocating and deallocating resources from applications to improve performance and elasticity. Experimental results show PRESTO can improve throughput for an application in the cloud compared to a standard cloud computing approach.