1. A method comprising: detecting a request from a client device to start a computing application; on a virtual instance of a machine, provisioning an application container for executing the computing application, in response to the request from the client device; monitoring, including while executing the computing application, network parameters and utilization of a computing resource on the client device, the network parameters including an amount of available communication bandwidth between the client device and the virtual instance of the machine; generating upon execution of the computing application a work distribution model for the computing application, the work distribution model indicating a first portion of the computing application to be executed on the client device and a second portion of the computing application to be executed on the virtual instance of the machine, the work distribution model being based on the utilization of the computing resource on the client device, the amount of available communication bandwidth between the client device and the virtual instance of the machine, and a permissible latency associated with the computing application; detecting a fluctuation in at least one of the monitored network parameters and utilization of the computing resource on the client device while executing the computing application; and in response to detecting a fluctuation, dynamically adjusting the work distribution model for the computing application.