1. A method performed on a computer processor, said method comprising: executing a workload within an execution environment, said execution environment being executed by a plurality of processors, said execution environment being a process virtual machine comprising modules written in a functional programming language; determining that an experiment is ready to be executed; identifying a first variable to change in said experiment and a new module for said execution environment, said first variable being a configuration input to said execution environment and causing an operational change to said execution environment, said new module being written in the functional programming language; identifying a first value for said first variable; identifying a first processor being one of said plurality of processors; changing said execution environment with respect to said first processor to correspond to said first value of said first variable without changing a state of other memory objects to create a first experimental version of said execution environment; measuring a first metric with respect to said first experimental version to generate a first experimental result; measuring said first metric with respect to a baseline version of said execution environment executing on a second processor to generate a baseline result, said second processor being one of said plurality of processors; comparing said first experimental result to said baseline result; and when said first experimental result improves said first metric, propagating said first value of said first variable and said new module to said second processor to update the baseline version of said execution environment while said second processor executes said baseline version of said execution environment.