1. A computer-implemented method comprising: running a software unit in an isolation container, the isolation container being located on a software platform; allocating an instance of a device function instantiated by the software platform to the software unit; storing usage data associated with the instance to a memory region logically external to the isolation container, the usage data being generated by the software unit operating the device function; detecting a failure of the software unit; responsive to detecting the failure: restarting the software unit; and providing the software unit with a usage context, the usage context comprising at least one of identifying information and the usage data associated with the instance stored in the memory region logically external to the isolation container.