A non-transitory computer readable medium having instructions stored thereon, which, when executed by one or more processors of a computer, cause the computer to provide a plurality of users with a function as a service (FaaS) platform comprising a plurality of software function services, wherein the instructions comprise:
- creating a FaaS framework comprising a host container, wherein the host container comprises one or more pools of pre-initialized serverless functions (f), a FaaS runner having a FaaS control interface through which the FaaS platform remotely controls execution of the one or more pools of pre-initialized serverless functions (f) over the FaaS runner, and a custom runner (CR) having a secondary interface, wherein the CR is interposed between the one or more pools of pre-initialized serverless functions (f) and the FaaS runner;
- receiving, by invoking a first executable function operation, a pool policy parameter and a function identifier parameter for creating a pool of pre-initialized serverless functions (f);
- creating, by invoking a second executable function operation, in the host container, the pool of pre-initialized serverless functions (f) running in the CR, wherein the pool of pre-initialized serverless functions (f) is created using the pool policy parameter and the function identifier parameter, and returning a pool identifier for the created pool;
- extracting, from an execution request to execute a software function service, invocation parameters including one or more function parameters received by the CR through the secondary interface;
- invoking, by a third executable function operation using the returned pool identifier and the invocation parameters, an instance of function (f) running in the created pool, wherein the instance of function (f) is identified by the returned pool identifier, and the one or more function parameters are input to the identified function;
- and
- executing, by the CR, the software function service using the invoked instance of function (f).