1. A method comprising: receiving, with a network device, a plurality of link-state messages from a plurality of other network devices communicatively coupled to the network device; sending, with a virtual machine agent executing at a network device and to a virtual machine manager executing at a computing cloud, a request for available computing resources of the computing cloud; receiving, from the virtual machine manager, a response that includes a network socket to at least one virtual machine executing at the computing cloud; sending, with the virtual machine agent and to the virtual machine using the network socket, a request to determine shortest paths between the network device and each of the plurality of other network devices, wherein the request includes the plurality of link-state messages; receiving, from the virtual machine, a response message that includes an indication of a respective shortest path between the network device and each of the plurality of other network devices; and updating, based on the response message, routing information stored at the network device.