1. An apparatus comprising: an execution platform configured to access a plurality of remote storage devices, the execution platform including a plurality of caches configured to store data retrieved from the remote storage devices and a plurality of processors, wherein the plurality of caches and the plurality of processors are independent of the remote storage devices; and a resource manager coupled to the execution platform and configured to: monitor received data processing requests; monitor current utilization of the plurality of processors; determine whether additional data storage capacity is needed based on the data processing requests; allocate new data storage capacity responsive to determining that additional data storage capacity is needed; determine whether additional processing resources are needed based on the data processing requests and the current utilization of the plurality of processors; and allocate additional processing resources responsive to determining that additional processing resources are needed.