Service Provisioning on the Cloud: Distributed Algorithms for Joint Capacity Allocation and Admission Control