Running Arbitrary DAG-based Workflows in the Cloud