The recent emergence of is making the vision of utility computing realizable, i.e., computing resources and services from a cloud can be delivered, utilized, and paid for in the same fashion as utilities like water or electricity. Current research points towards more fine-grained allocation and pricing of resources in the future. We consider streaming applications, where the data is generated by external sources. Because of the pay-as-you-go model, resource provisioning should be performed carefully, keeping resource costs to a minimum, while meeting application needs. In the first part of our work, we focus on such environments where one needs to avoid both resource under-provisioning (leading to application slowdown) and over-provisioning (leading to unnecessary resource costs). The second part of our work focuses on streaming applications which have adaptable parameters that provide flexibility in the level of computational accuracy