1. A method comprising: monitoring a computer device to determine aspects of said computer device and to identify connections to other devices from both incoming messages sent to said computer device and outgoing messages sent from said computing device; collecting device data about one or more other devices from monitoring said computer device; determining one or more physical connection paths between said computer device and said one or more other devices from monitoring said computer device, each physical connection path including one or more physical connections between said computer device and said one or more other devices, at least one physical connection path also including a physical connection between one of the one or more other devices and another of the one or more other devices; for each of said one or more physical connection paths, collecting connection data about said one or more physical connections from monitoring said computer device; optimizing an arrangement of said one or more devices and said one or more physical connection paths for virtualization; for each of said one or more other devices, creating a virtual device corresponding to said device using said collected device data; for each of said one or more connection paths, creating a virtual connection corresponding to said physical connection path using said collected connection data, at least one virtual connection created from combining portions of collected connection data for a plurality of different physical connections; forming a group of virtual devices from the created virtual devices and created virtual connections; optimizing said group of virtual devices in accordance with one or more optimization templates; and operating said connected group of virtual devices.