CPC G06F 9/5027 (2013.01) | 21 Claims |
1. A computer-implemented method comprising:
establishing a resource database, the resource database comprising data indicating assigned allocations of computing resources to a plurality of functions;
receiving, by a computer resource manager, a function call and checking whether a scheduler previously selected any computing resource for hosting a function of the function call;
checking, by the computer resource manager, for stored information in the resource database to determine whether the function of the function call is assigned any portion of computing resources;
upon a determination that the function is not assigned to any portion of computer resources, issuing a deployment request to deploy the function;
extracting, by a scheduler, function-tag data associated with the function identified by the deployment request,
wherein a first rule in the function-tag data identifies a particular computing component in a plurality of computing components that must be available on a computing resource that hosts the function, each computing component in the plurality of computing components being associated with a function-tag, and
wherein a second rule in the function-tag data identifies a tag-matching rule indicating whether to invoke a hard enforcement of the first rule or a soft enforcement of the first rule, the hard enforcement indicating that a host must satisfy the first rule, and the soft enforcement indicating that the host need not satisfy the first rule;
selecting, by the scheduler based on the tag-matching rule, a computing device within a server cluster to host the function based at least in part on a comparison of the function-tag data and host-tag data associated with the computing device,
wherein the host-tag data indicates whether the particular computing component is present in the plurality of computing components in the computing device, each computing component in the plurality of computing components being associated with a host-tag; and
issuing, by the scheduler, an instruction to the computing device, wherein the issuing of the instruction causes an allocation of resources for hosting execution of the function.
|