A software-defined automation, SDA, system comprising: a first subsystem including a system controller node and one or more compute nodes managed by the system controller node , wherein the one or more compute nodes are configured to be communicatively coupled to the system controller node via a first communication network; wherein the system controller node is configured to: manage virtualization of an automation control system or a portion thereof on at least one compute node from the one or more compute nodes via the first communication network, create at least one partially or fully virtualized instance of a functional unit of the automation control system representing a virtualized automation control system element in the one or more compute nodes managed by the system controller; create a virtual network in the one or more compute nodes; connect the at least one partially or fully virtualized instance of the functional unit to the virtual network; connect the virtual network to a physical second communication network to enable the at least one virtualized instance of the functional unit to interact with at least one physical control system element of the automation system; wherein the one or more compute nodes are further configured to: execute an automation control system function of the at least one virtualized automation control system element on at least one host running on the one or more compute nodes, to control the at least one physical control system element via the physical second communication network connected to the virtual network. a first subsystem including a system controller node and one or more compute nodes managed by the system controller node , wherein the one or more compute nodes are configured to be communicatively coupled to the system controller node via a first communication network; wherein the system controller node is configured to: manage virtualization of an automation control system or a portion thereof on at least one compute node from the one or more compute nodes via the first communication network, create at least one partially or fully virtualized instance of a functional unit of the automation control system representing a virtualized automation control system element in the one or more compute nodes managed by the system controller; create a virtual network in the one or more compute nodes; connect the at least one partially or fully virtualized instance of the functional unit to the virtual network; connect the virtual network to a physical second communication network to enable the at least one virtualized instance of the functional unit to interact with at least one physical control system element of the automation system; manage virtualization of an automation control system or a portion thereof on at least one compute node from the one or more compute nodes via the first communication network, create at least one partially or fully virtualized instance of a functional unit of the automation control system representing a virtualized automation control system element in the one or more compute nodes managed by the system controller; create a virtual network in the one or more compute nodes; connect the at least one partially or fully virtualized instance of the functional unit to the virtual network; connect the virtual network to a physical second communication network to enable the at least one virtualized instance of the functional unit to interact with at least one physical control system element of the automation system; wherein the one or more compute nodes are further configured to: execute an automation control system function of the at least one virtualized automation control system element on at least one host running on the one or more compute nodes, to control the at least one physical control system element via the physical second communication network connected to the virtual network. <EOS>