A Mixed Integer Linear Programming Optimization Approach for Multi-Cloud Capacity Allocation