A method of updating software in a computer system, the computer system including virtualisation software arranged to provide a virtualisation environment for running a plurality of virtual machines, wherein each virtual machine is arranged to run a respective software module for providing a respective set of software services, the method comprising: receiving a software update including update information relating to a plurality of software modules associated with a plurality of first virtual machines operational in the virtualisation environment; generating, by an update module, updated versions of the plurality of software modules based on the update information; and replacing each of the first virtual machines with a respective second virtual machine adapted to run an associated updated software module; wherein the update module is run in a further virtual machine within the virtualisation environment, the further virtual machine separate from the first and second virtual machines, and wherein the generating and replacing steps comprise, for each of the first virtual machines: updating a copy of a first storage entity, the first storage entity associated with the first virtual machine and storing a respective first software module, to produce a second storage entity containing an updated version of the first software module; and configuring a second virtual machine within the virtualisation environment, the second virtual machine associated with the second storage entity and arranged to run the updated version of the first software module from the second storage entity; and wherein the replacing step further comprises terminating each of the first virtual machines, and starting up each of the corresponding second virtual machines. receiving a software update including update information relating to a plurality of software modules associated with a plurality of first virtual machines operational in the virtualisation environment; generating, by an update module, updated versions of the plurality of software modules based on the update information; and replacing each of the first virtual machines with a respective second virtual machine adapted to run an associated updated software module; wherein the update module is run in a further virtual machine within the virtualisation environment, the further virtual machine separate from the first and second virtual machines, and wherein the generating and replacing steps comprise, for each of the first virtual machines: updating a copy of a first storage entity, the first storage entity associated with the first virtual machine and storing a respective first software module, to produce a second storage entity containing an updated version of the first software module; and configuring a second virtual machine within the virtualisation environment, the second virtual machine associated with the second storage entity and arranged to run the updated version of the first software module from the second storage entity; updating a copy of a first storage entity, the first storage entity associated with the first virtual machine and storing a respective first software module, to produce a second storage entity containing an updated version of the first software module; and configuring a second virtual machine within the virtualisation environment, the second virtual machine associated with the second storage entity and arranged to run the updated version of the first software module from the second storage entity; and wherein the replacing step further comprises terminating each of the first virtual machines, and starting up each of the corresponding second virtual machines.