DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This office action is in response to applicant’s amendment filed on 11/19/2025.
Claims 1-3, 6-10, 13-16, and 19-26 are pending and examined.
Claims 4-5, 11-12, and 17-18 are cancelled.
Response to Arguments
Applicant’s arguments filed 11/19/2025 with respect to 35 U.S.C. 101 have been fully considered and are not persuasive. Applicant argued that claims 1-3, 6-10, 13-16, and 19-26 are not directed to an abstract idea. For claim 1, applicant argues the features of the claim are rooted in a computer technology and improve the operations of a network such as by configuring routing elements of the network. Examiner respectfully disagrees, see 101 rejections below for a detailed analysis pertaining to the amended claim. Although the features of the claim may improve operations of a network, these improvements are not explicitly recited or specified in the claim and the 101 rejection is therefore maintained. Applicant additionally argues that features of claim 1 further recite the automatic redeployment of the containers to a second set of nodes based on monitoring performance metrics which is not directed to alleged judicial exceptions. Examiner interprets the automatic redeployment of the containers as mere instructions to apply an exception and therefore the newly amended features are not sufficient to overcome the 101 rejections. See MPEP 2106.05(f) and 101 rejection below for a detailed analysis of the claim.
Applicant’s arguments filed 11/19/2025 with respect to 35 U.S.C. 103 have been fully considered and are not persuasive. Applicant argued that Gill, Padala and Pabón do not disclose or suggest one or more of the features recited in claims 1, 6-8, 13-15, and 19-26. Examiner respectfully disagrees, see 103 rejections below for a detailed analysis pertaining to the amended claims. With respect to claim 1, applicant argues that Gill, Padala and Pabón do not disclose or suggest the amended features as shown in the last three limitations. Examiner interprets Padala’s continuous monitoring of resource usage across containers and restarting containers on a second host machine as automatically redeploying the selected set of containers to a second set of nodes based on determining that the one or more SLAs associated with the service are no longer met. While Gill alone does not explicitly disclose the newly amended limitations alone, Padala discloses the continuous monitoring of performance metrics and automatic redeployment of the selected set of containers as further explained in the 103 rejections below. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Gill with Padala because resource utilization on hosts can be come unbalanced over time due to varying resource usage, which can cause some containers to be capped by host capacity. Optimizing initial placement and making balancing decisions by taking into account container resource limits and utilization and node CPU, RAM, and number of containers can reduce the imbalance of resource utilization.
Applicant further argues that claims 2, 3, 9, 10, and 16 do not disclose the one or more features with respect for claims 1, 8, and 15 as Yan does not remedy the deficiencies of Gill, Padala and Pabón. For reasons explained above, examiner interprets Gill in view of Padala and Pabón to disclose the features of claims 1, 8, and 15. See 103 rejections below for a detailed analysis pertaining to the amended claims.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claim 6 recites the limitation "the particular set of nodes" in “The device of claim 1, wherein the service is a first service, wherein the selected set of containers is a first set of containers, wherein the particular set of nodes is a first set of nodes…”. There is insufficient antecedent basis for this limitation in the claim as there is not a “particular set of nodes” mentioned either previously in the claim or in claim 1.
With regards to Claims 13 and 19, the machine of Claim 6 performs the same steps as the manufacture and method of Claims 13 and 19 respectively, and Claims 13 and 19 are therefore rejected using the same rationale set forth above in the rejection of Claim 6.
Claim 7 recites the limitation "the particular set of nodes" in “wherein selecting the particular set of nodes is further based on the information associating the particular set of nodes with a particular set of hardware resources of the network.” There is insufficient antecedent basis for this limitation in the claim as there is not a “particular set of nodes” mentioned either previously in the claim or in claim 1.
With regards to Claims 14 and 20, the machine of Claim 7 performs the same steps as the manufacture and method of Claims 14 and 20 respectively, and Claims 14 and 20 are therefore rejected using the same rationale set forth above in the rejection of Claim 7.
Claim 23 recites the limitation "the particular set of nodes" in “wherein selecting the particular set of nodes is further based on identifying that the particular set of nodes satisfies the set of location restrictions.” There is insufficient antecedent basis for this limitation in the claim as there is not a “particular set of nodes” mentioned either previously in the claim or in claim 1.
With regards to Claims 25 and 21, the machine of Claim 23 performs the same steps as the manufacture and method of Claims 25 and 21 respectively, and Claims 25 and 21 are therefore rejected using the same rationale set forth above in the rejection of Claim 23.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-3, 6-10, 13-16, and 19-26 are rejected under 35 U.S.C. 101 because the claimed invention is directed to (an) abstract idea(s) without significantly more.
Claims 1, 8 and 15 recite:
receive a request to provide a service via a network that includes a plurality of routing elements;
select a set of containers, from a plurality of candidate containers of a virtualized environment, to implement the requested service;
identify one or more Service Level Agreements ("SLAs") associated with of one or more containers of the set of containers, wherein the one or more SLAs include at least one of:
a maximum latency associated with the one or more containers, or a minimum throughput associated with the one or more containers;
monitor performance metrics associated with a plurality of nodes of the virtualized environment, wherein the performance metrics associated with the plurality of nodes include at least one of:
latency metrics associated with one or more nodes of the plurality of nodes, or throughput metrics associated with the one or more nodes;
compare the performance metrics, associated with the one or more nodes, to the one or more nodes SLAs associated with the service;
select, based on comparing the performance metrics to the one or more SLAs, a first set of nodes of the plurality of nodes on which to deploy the selected set of containers, wherein the selecting includes selecting, for each container of the set of containers, a respective node of the first set of nodes on which to deploy the each container;
deploy, to the first set of nodes, the selected set of containers, wherein the selected set of containers implement the requested service when deployed to the first set of nodes;
identify a particular set of routing elements, of the plurality of routing elements, that route traffic between two or more nodes of the first set of nodes;
configure the particular set of routing elements based on the one or more SLAs associated with the one or more containers;
continue to monitor, after deploying the selected set of containers to the first set of nodes, performance metrics associated with the first set of nodes;
determine, based on continuing to monitor the performance metrics associated with the first set of nodes, that the one or more SLAs associated with the service are no longer met when the set of containers are deployed to the first set of nodes; and
automatically redeploy the selected set of containers to a second set of nodes, that is different from the first set of nodes, based on determining that the one or more SLAs associated with the service are no longer met when the set of containers are deployed to the first set of nodes.
Step 1: Is the claim to a process, machine, manufacture, or composition of matter?
Yes.
Claim 1 is a machine.
Claim 8 is a manufacture.
Claim 15 is a method.
Step 2A, Prong I: Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The ‘selecting’ limitation in #2 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “selecting” in the context of this claim encompasses a person analyzing, evaluating, or selecting a set of containers from a plurality of containers, including comparison or judgement.
The ‘identifying’ limitation in #3 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “identifying” in the context of this claim encompasses a person analyzing, evaluating, or identifying a SLA associated with a container, including comparison or judgement.
The ‘comparing’ limitation in #5 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “comparing” in the context of this claim encompasses a person analyzing, evaluating, or comparing SLAs and metrics associated with containers and nodes, including comparison or judgement.
The ‘selecting’ limitation in #6 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “selecting” in the context of this claim encompasses a person analyzing, evaluating, or selecting a set of nodes to deploy a set of containers, including comparison or judgement.
The ‘identifying’ limitation in #8 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “identifying” in the context of this claim encompasses a person analyzing, evaluating, or identifying a particular set of routing elements, including comparison or judgement.
The ‘determining’ limitation in #11 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “determining” in the context of this claim encompasses a person analyzing, evaluating, or determining that the one or more SLAs associated with the service are no longer met, including comparison or judgement.
Step 2A, Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The ‘receiving’ limitation in #1 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element that is insignificant extra-solution activity. The limitation “receiving” in the context of this claim encompasses mere data gathering. See MPEP 2106.05(g).
The ‘monitoring’ limitation in #4 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element that is insignificant extra-solution activity. The limitation “monitoring” in the context of this claim encompasses merely monitoring information in memory. See MPEP 2106.05(g).
The ‘deploying’ limitation in #7 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element as “apply it” that is mere instructions to apply an exception. The limitation “deploying” in the context of this claim encompasses merely deploying a set of nodes and containers. See MPEP 2106.05(f).
The ‘configuring’ limitation in #9 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element as “apply it” that is mere instructions to apply an exception. The limitation “configuring” in the context of this claim encompasses merely configuring a particular set of routing elements. See MPEP 2106.05(f).
The ‘monitoring’ limitation in #10 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element that is insignificant extra-solution activity. The limitation “monitoring” in the context of this claim encompasses merely continuing to monitor information in memory. See MPEP 2106.05(g).
The ‘redeploying’ limitation in #12 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element as “apply it” that is mere instructions to apply an exception. The limitation “redeploying” in the context of this claim encompasses merely redeploying a selected set of nodes and containers. See MPEP 2106.05(f).
Additionally, one or more of the claims recite the following additional elements:
one or more processors (Claim 1)
a plurality of processor- executable instructions (Claim 8)
These additional elements are recited at a high level of generality (i.e., as generic computer components) such that they amount to no more than components comprising mere instructions to apply the exception. Accordingly, these additional elements do not integrate the abstract idea(s) into a practical application because they do not impose any meaningful limits on practicing the abstract ideas(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
As discussed above with respect to integration of the abstract idea(s) into a practical application, the aforementioned additional elements amount to no more than components for obtaining or gathering data and comprising mere instructions to apply the exception which is evidently seen in MPEP 2106.05(g)&(f). Mere instructions to apply an exception using generic computer components cannot provide an inventive concept.
Claims 2, 9, and 16 merely further describe the selection process for the set of containers of Claims 1, 8, and 15 respectively. The claims do not include additional elements that integrate into practical application or are sufficient to amount to significantly more than the judicial exception.
Therefore, Claims 1-2, 8-9, and 15-16 are directed to (an) abstract idea(s) without significantly more.
Claims 3 and 10 recite:
identify information associating a plurality of services with a plurality of respective sets of containers; and
identify, based on the one or more intents, a particular service of the plurality of services,
wherein selecting the set of containers further includes selecting the respective set of containers that is associated with the particular service, wherein the particular service is the requested service.
Step 1: Is the claim to a process, machine, manufacture, or composition of matter?
Yes.
Claim 3 is a machine.
Claim 10 is a manufacture.
Step 2A, Prong I: Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The ‘identifying’ limitation in #13 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “identifying” in the context of this claim encompasses a person analyzing, evaluating, or identifying information associating a plurality of services with a respective set of containers, including comparison or judgement.
The ‘identifying’ limitation in #14 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “identifying” in the context of this claim encompasses a person analyzing, evaluating, or identifying a particular service from the plurality of services, including comparison or judgement.
The ‘selecting’ limitation in #15 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “selecting” in the context of this claim encompasses a person analyzing, evaluating, or selecting a set of containers associated with the particular service, including comparison or judgement.
Step 2A, Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
Additionally, one or more of the claims recite the following additional elements:
one or more processors (Claim 3)
the plurality of processor- executable instructions (Claim 10)
These additional elements are recited at a high level of generality (i.e., as generic computer components) such that they amount to no more than components comprising mere instructions to apply the exception. Accordingly, these additional elements do not integrate the abstract idea(s) into a practical application because they do not impose any meaningful limits on practicing the abstract ideas(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
As discussed above with respect to integration of the abstract idea(s) into a practical application, the aforementioned additional elements amount to no more than components for obtaining or gathering data and comprising mere instructions to apply the exception which is evidently seen in MPEP 2106.05(g)&(f). Mere instructions to apply an exception using generic computer components cannot provide an inventive concept.
Therefore, Claims 3 and 10 are directed to (an) abstract idea(s) without significantly more.
With regards to Claim 16, the machine of Claims 2 and 3 perform the same steps as the method of Claim 16, and Claim 16 is therefore rejected using the same rationale set forth above in the rejection of Claims 2 and 3.
Claims 6, 13 and 19 recite:
wherein the service is a first service, wherein the selected set of containers is a first set of containers, wherein the particular set of nodes is a first set of nodes,
wherein deploying the first set of containers to the first set of nodes includes associating the first set of containers with a first namespace, wherein the one or more processors are further configured to:
deploying the selected set of containers to the particular set of nodes, in order to provide the service via the network.
Step 1: Is the claim to a process, machine, manufacture, or composition of matter?
Yes.
Claim 6 is a machine.
Claim 13 is a manufacture.
Claim 19 is a method.
Step 2A, Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The ‘deploying’ limitation in #16 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element as “apply it” that is mere instructions to apply an exception. The limitation “deploying” in the context of this claim encompasses merely deploying a first set of containers to a first set of nodes with a first namespace. See MPEP 2106.05(f).
The ‘deploying’ limitation in #17 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element as “apply it” that is mere instructions to apply an exception. The limitation “deploying” in the context of this claim encompasses merely deploying a second set of containers to a second set of nodes with a second namespace. See MPEP 2106.05(f).
Additionally, one or more of the claims recite the following additional elements:
one or more processors (Claim 6)
the plurality of processor- executable instructions (Claim 13)
These additional elements are recited at a high level of generality (i.e., as generic computer components) such that they amount to no more than components comprising mere instructions to apply the exception. Accordingly, these additional elements do not integrate the abstract idea(s) into a practical application because they do not impose any meaningful limits on practicing the abstract ideas(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
As discussed above with respect to integration of the abstract idea(s) into a practical application, the aforementioned additional elements amount to no more than components for obtaining or gathering data and comprising mere instructions to apply the exception which is evidently seen in MPEP 2106.05(g)&(f). Mere instructions to apply an exception using generic computer components cannot provide an inventive concept.
Therefore, Claims 6, 13 and 19 are directed to (an) abstract idea(s) without significantly more.
Claims 7, 14 and 20 recite:
maintain information associating the one or more nodes with respective hardware resources of the network, wherein selecting the particular set of nodes is further based on the information associating the particular set of nodes with a particular set of hardware resources of the network.
Step 1: Is the claim to a process, machine, manufacture, or composition of matter?
Yes.
Claim 7 is a machine.
Claim 14 is a manufacture.
Claim 20 is a method.
Step 2A, Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The ‘maintaining’ limitation in #18 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element that is insignificant extra-solution activity. The limitation “maintaining” in the context of this claim encompasses merely maintaining information in memory. See MPEP 2106.05(g).
Additionally, one or more of the claims recite the following additional elements:
one or more processors (Claim 7)
the plurality of processor- executable instructions (Claim 14)
These additional elements are recited at a high level of generality (i.e., as generic computer components) such that they amount to no more than components comprising mere instructions to apply the exception. Accordingly, these additional elements do not integrate the abstract idea(s) into a practical application because they do not impose any meaningful limits on practicing the abstract ideas(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
As discussed above with respect to integration of the abstract idea(s) into a practical application, the aforementioned additional elements amount to no more than components for obtaining or gathering data and comprising mere instructions to apply the exception which is evidently seen in MPEP 2106.05(g)&(f). Mere instructions to apply an exception using generic computer components cannot provide an inventive concept.
Additionally, with regards to #18 above, per MPER 2106.05(d)(II), the courts have recognized the following computer functions as well-understood, routine, and conventional functions when they are claimed in a merely generic matter (e.g., at a high level of generality) or as insignificant extra-solution activity:
Storing and retrieving information in memory, Versata Dev. Group, Inc. v. SAP Am., Inc., 793 F.3d 1306, 1334, 115 USPQ2d 1681, 1701 (Fed. Cir. 2015); OIP Techs., 788 F.3d at 1363, 115 USPQ2d at 1092-93;
Therefore, Claims 7, 14 and 20 are directed to (an) abstract idea(s) without significantly more.
Claims 21, 23 and 25 recite:
wherein the one or more containers are associated with a set of location restrictions, wherein selecting the particular set of nodes is further based on
identifying that the particular set of nodes satisfies the set of location restrictions.
Step 1: Is the claim to a process, machine, manufacture, or composition of matter?
Yes.
Claim 23 is a machine.
Claim 25 is a manufacture.
Claim 21 is a method.
Step 2A, Prong I: Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The ‘identifying’ limitation in #19 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “identifying” in the context of this claim encompasses a person analyzing, evaluating, or identifying that the set of nodes satisfies the set of location restrictions, including comparison or judgement.
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
As discussed above with respect to integration of the abstract idea(s) into a practical application, the aforementioned additional elements amount to no more than components for obtaining or gathering data and comprising mere instructions to apply the exception which is evidently seen in MPEP 2106.05(f). Mere instructions to apply an exception using generic computer components cannot provide an inventive concept.
Therefore, Claims 21, 23 and 25 are directed to (an) abstract idea(s) without significantly more.
Claims 22, 24 and 26 recite:
maintaining information associating a plurality of services with a plurality of sets of containers,
wherein selecting the set of containers includes identifying, based on the maintained information, that the set of containers is associated with the service.
Step 1: Is the claim to a process, machine, manufacture, or composition of matter?
Yes.
Claim 24 is a machine.
Claim 26 is a manufacture.
Claim 22 is a method.
Step 2A, Prong I: Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The ‘identifying’ limitation in #21 above, as claimed and under broadest reasonable interpretation (BRI), is a mental process that covers performance of the limitation in the mind. The limitation “identifying” in the context of this claim encompasses a person analyzing, evaluating, or identifying that the set of containers is associated with the service, including comparison or judgement.
Step 2A, Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The ‘maintaining’ limitation in #20 above, as claimed and under broadest reasonable interpretation (BRI), is an additional element that is insignificant extra-solution activity. The limitation “maintaining” in the context of this claim encompasses merely maintaining information in memory. See MPEP 2106.05(g).
Additionally, one or more of the claims recite the following additional elements:
one or more processors (Claim 24)
These additional elements are recited at a high level of generality (i.e., as generic computer components) such that they amount to no more than components comprising mere instructions to apply the exception. Accordingly, these additional elements do not integrate the abstract idea(s) into a practical application because they do not impose any meaningful limits on practicing the abstract ideas(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
As discussed above with respect to integration of the abstract idea(s) into a practical application, the aforementioned additional elements amount to no more than components for obtaining or gathering data and comprising mere instructions to apply the exception which is evidently seen in MPEP 2106.05(g)&(f). Mere instructions to apply an exception using generic computer components cannot provide an inventive concept.
Additionally, with regards to #20 above, per MPER 2106.05(d)(II), the courts have recognized the following computer functions as well-understood, routine, and conventional functions when they are claimed in a merely generic matter (e.g., at a high level of generality) or as insignificant extra-solution activity:
Storing and retrieving information in memory, Versata Dev. Group, Inc. v. SAP Am., Inc., 793 F.3d 1306, 1334, 115 USPQ2d 1681, 1701 (Fed. Cir. 2015); OIP Techs., 788 F.3d at 1363, 115 USPQ2d at 1092-93;
Therefore, Claims 22, 24 and 26 are directed to (an) abstract idea(s) without significantly more.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 6-8, 13-15, and 19-26 are rejected under 35 U.S.C. 103 as being unpatentable by Gill et al. (U.S. Patent No. US 20160359955 A1), hereinafter “Gill” in view of Padala et al. (U.S. Patent No. US 10389598 B2), hereinafter “Padala” and Pabón et al. (U.S. Patent No. US 20240004546 A1), hereinafter “Pabón.”
With regards to Claim 1, Gill teaches:
A device, comprising:
one or more processors configured to:
receive a request to provide a service via a network that includes a plurality of routing elements (Paragraphs 42, 70, 131-132 and 134, “Applications or services can be configured to provide any functionality. For example, an application or service can implement a user-defined function, a middleware function, and/or can implement services that interact with the computing environment. Such computing environments can include multiple computing nodes, any of which communicate over network facilities… a particular container conforms to a particular set of rules or types. A type might be characterized by one or more “kinds”, and a kind might correspond to a respective set of configuration parameters and/or configuration sequences… a particular kind plugin might be used to configure a local area network or wide area network that is present or accessible in the environment… I/O requests 750.sub.2 are directed to the OS of node 202.sub.11. For instance, the I/O request is directed to a virtual router (i.e., virtual router 752.sub.1, virtual router 752.sub.2) that directs the I/O request to the container service machine for that node (e.g., container service machine 150.sub.1, container service machine 150.sub.2). In some node implementations, such as is shown as node 202.sub.12, a virtual router 752.sub.2 may be part of a modified operating system that handles all container I/O operations by forwarding them to the container service machine 150.sub.2 using a routing table or other configured parameter... Storage I/O commands can be communicated (e.g., read and/or written) between nodes using an arrangement of message passing and/or mailboxes, and/or locks, and or semaphores implemented using the shared memory facility.” The service implementing a user-defined function, middleware function, and/or services that interact with the computing environment that communicate over network facilities corresponds to receiving a request to provide a service via a network. The kind plugin used to configure a local or wide area network for each container corresponds to configuring one or more network elements. The virtual router directing I/O requests through a routing table or other configured parameters between two different nodes correlates to the network including a plurality of routing elements);
select a set of containers, from a plurality of candidate containers of a virtualized environment, to implement the requested service (Paragraph 67, “the control virtual machine 130.sub.1 includes functionality to populate one or more container service machines with preconfigured executable containers 165 that are retrieved from a container repository and registry 164. A set of user containers might be selected, and downloaded, and configured individually and collectively into an application group 151. The set of user containers in application group 151 can be configured individually and/or collectively so as to function as a group, possibly to carry out a serializable series of operations (e.g., as a pipeline of operations), and/or to carry out a series of parallelizable or partially parallelizable operations (e.g., a fork-join operation). The aforementioned container agent can perform configuration and other operations autonomously, or in conjunction with the control virtual machine.” The set of user containers in the application group that are retrieved from a container repository and registry that carry out a serializable series of operations or partially parallelizable operations corresponds to selecting a set of containers from a plurality of candidate containers to implement the requested service);
identify one or more Service Level Agreements ("SLAs") associated with one or more containers of the set of containers (Paragraphs 70 and 112, “a particular container conforms to a particular set of rules or types. A type might be characterized by one or more “kinds”, and a kind might correspond to a respective set of configuration parameters and/or configuration sequences… In some embodiments, containers running applications of different sensitivity levels (e.g., different admin policies or service level agreements (SLAs)) may be placed in different container service machines for further isolation.” The configuration parameters and/or sequences that characterize each container in an application group and SLAs for different containers correlates to identifying SLAs associated with one or more containers of the set of containers);
deploy, to the first set of nodes, the selected set of containers, wherein the selected set of containers implement the requested service when deployed to the first set of nodes (Fig. 1G, paragraphs 101-102, “FIG. 1G presents a flowchart of a container-to-node mapping technique 1G00 as used in systems for configuring, deploying, and managing containers in a virtualization environment… Upon acceptance of the modified or unmodified mapping, the user can invoke the container or application group (step 198).” The invocation of the container or application group at the end of the flowchart shown in Fig. 1G for deploying containers in the container-to-node mapping technique correlates to deploying a set of nodes and containers that implement the requested service).
identify a particular set of routing elements, of the plurality of routing elements, that route traffic between two or more nodes of the first set of nodes (Paragraphs 131-132 and 134, “I/O requests 750.sub.2 are directed to the OS of node 202.sub.11. For instance, the I/O request is directed to a virtual router (i.e., virtual router 752.sub.1, virtual router 752.sub.2) that directs the I/O request to the container service machine for that node (e.g., container service machine 150.sub.1, container service machine 150.sub.2). In some node implementations, such as is shown as node 202.sub.12, a virtual router 752.sub.2 may be part of a modified operating system that handles all container I/O operations by forwarding them to the container service machine 150.sub.2 using a routing table or other configured parameter... Storage I/O commands can be communicated (e.g., read and/or written) between nodes using an arrangement of message passing and/or mailboxes, and/or locks, and or semaphores implemented using the shared memory facility.” The virtual router directing I/O requests through a routing table or other configured parameters between two different nodes correlates to identifying a set of routing elements to route traffic between two or more nodes);
configure the particular set of routing elements based on the one or more SLAs associated with the one or more containers (Paragraph 70, 131-132 and 134, “a particular container conforms to a particular set of rules or types. A type might be characterized by one or more “kinds”, and a kind might correspond to a respective set of configuration parameters and/or configuration sequences… a particular kind plugin might be used to configure a local area network or wide area network that is present or accessible in the environment… I/O requests 750.sub.2 are directed to the OS of node 202.sub.11. For instance, the I/O request is directed to a virtual router (i.e., virtual router 752.sub.1, virtual router 752.sub.2) that directs the I/O request to the container service machine for that node (e.g., container service machine 150.sub.1, container service machine 150.sub.2). In some node implementations, such as is shown as node 202.sub.12, a virtual router 752.sub.2 may be part of a modified operating system that handles all container I/O operations by forwarding them to the container service machine 150.sub.2 using a routing table or other configured parameter... Storage I/O commands can be communicated (e.g., read and/or written) between nodes using an arrangement of message passing and/or mailboxes, and/or locks, and or semaphores implemented using the shared memory facility.” The container conforming to a particular set of rules or types that include the configuration of networks used by the virtual router correlate to configuring the particular set of routing elements based on one or more SLAs associated with the one or more containers).
Gill does not explicitly teach:
wherein the one or more SLAs include at least one of:
a maximum latency associated with the one or more containers, or a minimum throughput associated with the one or more containers;
monitor performance metrics associated with a plurality of nodes of the virtualized environment, wherein the performance metrics associated with the plurality of nodes include at least one of:
latency metrics associated with one or more nodes of the plurality of nodes, or throughput metrics associated with the one or more nodes;
compare the performance metrics, associated with the one or more nodes, to the one or more SLAs associated with the service;
select, based on comparing the performance metrics to the one or more SLAs, a first set of nodes of the plurality of nodes on which to deploy the selected set of containers, wherein the selecting includes selecting, for each container of the set of containers, a respective node of the first set of nodes on which to deploy the each container;
continue to monitor, after deploying the selected set of containers to the first set of nodes, performance metrics associated with the first set of nodes;
determine, based on continuing to monitor the performance metrics associated with the first set of nodes, that the one or more SLAs associated with the service are no longer met when the set of containers are deployed to the first set of nodes; and
automatically redeploy the selected set of containers to a second set of nodes, that is different from the first set of nodes, based on determining that the one or more SLAs associated with the service are no longer met when the set of containers are deployed to the first set of nodes.
However, Padala teaches:
monitor performance metrics associated with a plurality of nodes of the virtualized environment (Col. 7, lines 6-13, Col. 16, lines 3-5 and 14-18 and Col. 18, lines 40-43, “Periodically, each host 200 gathers its own usage information via some OS-specific means (e.g., querying OS performance counters or other statistics gathering mechanisms specific to the OS). This usage information is appended to a time series database running in the management platform which acts as a gathering point for usage details over time… a network used herein represents a series of points, nodes, or network elements of interconnected communication paths… A network can comprise any number of hardware or software elements coupled to (and in communication with) each other through a communications medium… Any of these elements (e.g., the network elements, etc.) can include memory elements for storing information to be used in providing the functionalities as outlined herein.” The host periodically gathering its own usage information corresponds to monitoring performance metrics associated with a plurality of nodes. The network elements which can include memory elements for storing information that are coupled to nodes in the network correlates to the performance metrics being associated with a plurality of nodes of the virtualized environment);
compare the performance metrics, associated with the one or more nodes, to the one or more SLAs associated with the service (Col. 7, lines 14-25 and Col. 9, lines 16-27 and lines 44-49, “Concurrently, the management platform 142 periodically queries the time series database and applies the aforementioned heuristics on the data stored there to determine which, if any, containers need to have their resource limits adjusted. Upon determining that a specific container or containers need to have a resource adjustment applied, the management platform 142 communicates this need to the host agent 200 software running on the host executing the affected container(s). The host agent then makes a local adjustment to the container resource limits using some OS-specific mechanism (e.g., by manipulating cgroups on Linux or Job objects on Windows)… The container orchestration engine determines the ideal host for the container based on current (static) load conditions. Some of the commonly available placement strategies include: spread, random and bin-packing. Spread and binpack strategies, e.g., for Swarm, compute rank according to a nodes's available CPU, its RAM, and the number of containers the node has. In particular, Swarm optimizes for a node with a least number of containers, thereby spreading containers across many nodes. Binpack optimizes for the node which is most packed, thereby reducing fragmentation... Initial placement strategies (that are available in container orchestration engines) use a container's static resource limits to make placement decisions, while the container-balancing described herein uses real-time resource usage metrics to make appropriate balancing decisions (i.e., deciding on whether to move containers to achieve a balanced cluster).” The container’s static resource limits or real-time resource usage metrics which are periodically queried correspond to performance metrics of the one or more nodes. The ranking of each node’s available CPU, RAM, and number of containers based on optimization of a specific metric such as fragmentation correlate to SLAs associated with the service. Therefore, the container orchestration engine determining the ideal host for a container based on current load conditions correlates to comparing the performance metrics to the SLAs);
select, based on comparing the performance metrics to the one or more SLAs, a first set of nodes of the plurality of nodes on which to deploy the selected set of containers, wherein the selecting includes selecting, for each container of the set of containers, a respective node of the first set of nodes on which to deploy the each container (Col. 7, lines 14-25 and Col. 9, lines 16-27 and lines 44-49, “Concurrently, the management platform 142 periodically queries the time series database and applies the aforementioned heuristics on the data stored there to determine which, if any, containers need to have their resource limits adjusted. Upon determining that a specific container or containers need to have a resource adjustment applied, the management platform 142 communicates this need to the host agent 200 software running on the host executing the affected container(s). The host agent then makes a local adjustment to the container resource limits using some OS-specific mechanism (e.g., by manipulating cgroups on Linux or Job objects on Windows)… The container orchestration engine determines the ideal host for the container based on current (static) load conditions. Some of the commonly available placement strategies include: spread, random and bin-packing. Spread and binpack strategies, e.g., for Swarm, compute rank according to a nodes's available CPU, its RAM, and the number of containers the node has. In particular, Swarm optimizes for a node with a least number of containers, thereby spreading containers across many nodes. Binpack optimizes for the node which is most packed, thereby reducing fragmentation... Initial placement strategies (that are available in container orchestration engines) use a container's static resource limits to make placement decisions, while the container-balancing described herein uses real-time resource usage metrics to make appropriate balancing decisions (i.e., deciding on whether to move containers to achieve a balanced cluster).” The container’s static resource limits or real-time resource usage metrics which are periodically queried correspond to performance metrics of the one or more nodes. The ranking of each node’s available CPU, RAM, and number of containers based on optimization of a specific metric such as fragmentation correlate to SLAs associated with the service. Therefore, the container orchestration engine determining the ideal host for a container based on current load conditions correlates to selecting a first set of nodes to deploy the selected set of containers based on comparing the performance metrics to the SLAs);
continue to monitor, after deploying the selected set of containers to the first set of nodes, performance metrics associated with the first set of nodes (Col. 7, lines 6-13 and Col. 8, lines 31-36, “Periodically, each host 200 gathers its own usage information via some OS-specific means (e.g., querying OS performance counters or other statistics gathering mechanisms specific to the OS). This usage information is appended to a time series database running in the management platform which acts as a gathering point for usage details over time… A feedback loop of monitoring, analysis, decision-making and execution is repeated continuously to keep resource usage by containers (running across multiple hosts) within user-specified requirements. A third-party software tool (e.g., cAdvisor) is used on each host to monitor resource usage metrics such as CPU usage and memory usage.” The host periodically gathering its own usage information in a continuous feedback loop of monitoring corresponds to continuing to monitor performance metrics associated with a plurality of nodes after deploying the selected set of containers);
determine, based on continuing to monitor the performance metrics associated with the first set of nodes, that the one or more SLAs associated with the service are no longer met when the set of containers are deployed to the first set of nodes (Col. 7, lines 6-13, Col. 8, lines 31-36, and Col. 14, lines 34-48, “Periodically, each host 200 gathers its own usage information via some OS-specific means (e.g., querying OS performance counters or other statistics gathering mechanisms specific to the OS). This usage information is appended to a time series database running in the management platform which acts as a gathering point for usage details over time… A feedback loop of monitoring, analysis, decision-making and execution is repeated continuously to keep resource usage by containers (running across multiple hosts) within user-specified requirements. A third-party software tool (e.g., cAdvisor) is used on each host to monitor resource usage metrics such as CPU usage and memory usage… In some embodiments, the management platform may determine whether a current imbalance value of the cluster is over a threshold, and select a K number of containers to be stopped on a first host machine (source host) and restarted on a second host machine (destination host). Depending on a user configurable parameter, the K number of containers selected comprises containers that have more than one replicas. The imbalance value can be determined based on the operation parameters by determining resource usage deviation for each host machine, wherein deviation is defined by host usage minus the average host usage of the cluster, and determining the imbalance value of the cluster, wherein imbalance is defined as 1 divided by the number of host machines in the cluster multiplied by sum of squares of resource usage deviations.” The host periodically gathering its own usage information in a continuous feedback loop of monitoring corresponds to continuing to monitor performance metrics associated with a plurality of nodes. The user-specified requirements for container resource usage correlates to the one or more SLAs. The management platform determining the current imbalance value, which is based on the container resource usage, of the cluster is over a threshold correlates to determining that the one or more SLAs associated with the service are no longer met); and
automatically redeploy the selected set of containers to a second set of nodes, that is different from the first set of nodes, based