1. A program deployment apparatus connected via a network to at least one physical server including a physical server with a virtualization facility for providing a virtual server to a client, the program deployment apparatus being for deploying a program to the at least one physical server as necessary and comprising: a detection unit for detecting one or more nodes which are any of the physical server, the virtualization facility, and the virtual server and connected via the network; an acquisition unit for acquiring, for each node detected by the detection unit, first configuration information about a virtual layer of the node; and a deployment unit for selectively deploying the program to the relevant node based on the first configuration information for each node that is acquired by the acquisition unit.