A method for routing network traffic in a data network having a plurality of network switches, the method including identifying network traffic to be routed in the data network, evaluating multiple options for provisioning resources in the data network to handle the identified network traffic, selecting one option from the multiple options for provisioning resources based on at least one predetermined policy, and controlling the plurality of network switches based on the selected option.