Dynamic allocation of computational resources to application micro-services
Dynamic allocation of resources to application micro-services is performed by receiving, by an agent executed on a server of a cloud computing environment, a request to provision a container for a micro-service of an application, provisioning, by the agent, the container for the micro-service on the worker server with an allocated resource amount, detecting, by the agent, a resource consumption amount of the micro-service, increasing, by the agent in response to the resource consumption amount exceeding an upper resource consumption threshold value, the allocated resource amount by a resource increment, and reducing, by the agent in response to the resource consumption amount exceeding a lower resource consumption threshold value, the allocated resource amount by the resource increment.
1 . A non-transitory computer-readable medium including instructions executable by a processor to cause the processor to perform operations comprising:
receiving, by an agent executed on a server of a cloud computing environment, a request to provision a container for a micro-service of an application;
provisioning, by the agent, the container for the micro-service on the worker server with an allocated resource amount;
detecting, by the agent, a resource consumption amount of the micro-service;
increasing, by the agent in response to the resource consumption amount exceeding an upper resource consumption threshold value, the allocated resource amount by a resource increment;
reducing, by the agent in response to the resource consumption amount exceeding a lower resource consumption threshold value, the allocated resource amount by the resource increment;
receiving, by the agent, a schedule associated with the micro-service;
moving the micro-service from an idle area to a container at a start time of the schedule; and
returning the micro-service from the container to the idle area at an end time of the schedule.
2 . The computer-readable medium of claim 1 , wherein the idle area is a reserved Random Access Memory (RAM) area controlled by an operating system kernel of the server.
3 . The computer-readable medium of claim 2 , wherein
the agent receives a plurality of requests, each request to provision a container among a plurality of containers for a micro-service among a plurality of micro-services of the application; and
the agent provisions the plurality of containers for the plurality of micro-services of the application.
4 . The computer-readable medium of claim 3 , wherein
the agent receives a schedule associated with each micro-service among the plurality of micro-services; and
the agent staggers the start times and the end times among the plurality of schedules associated with the plurality of micro-services.
5 . The computer-readable medium of claim 3 , wherein
the agent provisions a plurality of containers for a plurality of micro-services of a second application.
6 . The computer-readable medium of claim 1 , wherein the upper resource consumption threshold value is a first proportion of the allocated resource amount, and the lower resource consumption threshold value is a second proportion of the allocated resource amount.
7 . The computer-readable medium of claim 1 , wherein the application is one of a Central Unit (CU) application and a Distributed Unit (DU) application of an Open Radio Access Network (O-RAN) system.
8 . A method comprising:
receiving, by an agent executed on a server of a cloud computing environment, a request to provision a container for a micro-service of an application;
provisioning, by the agent, the container for the micro-service on the worker server with an allocated resource amount;
detecting, by the agent, a resource consumption amount of the micro-service;
increasing, by the agent in response to the resource consumption amount exceeding an upper resource consumption threshold value, the allocated resource amount by a resource increment;
reducing, by the agent in response to the resource consumption amount exceeding a lower resource consumption threshold value, the allocated resource amount by the resource increment;
receiving, by the agent, a schedule associated with the micro-service;
moving the micro-service from an idle area to a container at a start time of the schedule; and
returning the micro-service from the container to the idle area at an end time of the schedule.
9 . The method of claim 8 , wherein the idle area is a reserved Random Access Memory (RAM) area controlled by an operating system kernel of the server.
10 . The method of claim 8 , wherein
the agent receives a plurality of requests, each request to provision a container among a plurality of containers for a micro-service among a plurality of micro-services of the application; and
the agent provisions the plurality of containers for the plurality of micro-services of the application.
11 . The method of claim 10 , wherein
the agent receives a schedule associated with each micro-service among the plurality of micro-services; and
the agent staggers the start times and the end times among the plurality of schedules associated with the plurality of micro-services.
12 . The method of claim 10 , wherein
the agent provisions a plurality of containers for a plurality of micro-services of a second application.
13 . The method of claim 8 , wherein the upper resource consumption threshold value is a first proportion of the allocated resource amount, and the lower resource consumption threshold value is a second proportion of the allocated resource amount.
14 . The method of claim 8 , wherein the application is one of a Central Unit (CU) application and a Distributed Unit (DU) application of an Open Radio Access Network (O-RAN) system.
15 . A server comprising:
a controller including circuitry configured to:
receive, by an agent executed on a server of a cloud computing environment, a request to provision a container for a micro-service of an application;
provision, by the agent, the container for the micro-service on the worker server with an allocated resource amount;
detect, by the agent, a resource consumption amount of the micro-service;
increase, by the agent in response to the resource consumption amount exceeding an upper resource consumption threshold value, the allocated resource amount by a resource increment;
reduce, by the agent in response to the resource consumption amount exceeding a lower resource consumption threshold value, the allocated resource amount by the resource increment;
receive, by the agent, a schedule associated with the micro-service;
move the micro-service from an idle area to a container at a start time of the schedule; and
return the micro-service from the container to the idle area at an end time of the schedule.
16 . The apparatus of claim 15 , wherein the idle area is a reserved Random Access Memory (RAM) area controlled by an operating system kernel of the server.
17 . The apparatus of claim 15 , wherein
the agent receives a plurality of requests, each request to provision a container among a plurality of containers for a micro-service among a plurality of micro-services of the application; and
the agent provisions the plurality of containers for the plurality of micro-services of the application.