Smart infrastructure orchestration and management
Methods and systems for managing service deployment are disclosed. To deploy services, dependencies and other characteristics (such as context data, capability data, placement rules, and workflow data) of services and the infrastructure boundaries in which the services are running may be dynamically collected, analyzed and updated. By dynamically analyzing dependencies and other characteristics (such as context data, capability data, placement rules, and workflow data) of services and the infrastructure boundaries, efficiency of use of computing resources may be improved by recycling existing workflow; statically defined operations and hard-coded conditional logic of services may also be avoided each time an environment in which the services are running has changed.
1 . A method for managing services provided by data processing systems, the method comprising:
obtaining a service access request from a service requestor, the service access request specifying a service running on at least one of the data processing systems, the service being one of multiple services running on the at least one of the data processing systems, each of the multiple services being associated with one or more sidecars provisioned specifically for a respective one of the multiple services, and the one or more sidecars being configured to collect and store capability data and first context data for the respective one of the multiple services for which the one or more sidecars was instantiated;
parsing the service access request for second context data, the second context data comprising at least the first context data;
servicing the service requestor using the service and the second context data by at least:
determining, based on the second context data, that one or more adjustments to the service are required for the service to be able to service the service requestor; and
in response to the determining, performing the one or more adjustments to the service to obtain a modified instance of the service adapted for the service requestor, wherein the service requestor is serviced using the modified instance of the service adapted for the service requestor;
determining that the one or more adjustments to the service resulted in a change in context for the service;
recording the change in context as updated first context data of the service; and
storing the updated first context data of the service in a context repository that comprises fourth context data of an infrastructure boundary that delimits the at least one of the data processing systems on which the service is running, the fourth context data of the infrastructure boundary comprises the first context data of all services running within the infrastructure boundary including the first context data of the multiple services running on the at least one of the data processing systems, and storing the updated first context data of the service in the context repository comprises updating the fourth context data of the infrastructure boundary using the updated first context data of the service.
2 . The method of claim 1 , wherein:
the second context data included in the service access request is an aggregated context data that comprises the first context data of the service and a third context data of the service requestor,
the first context data of the service comprises information specifying, at least, where the service is provisioned within the infrastructure boundary, and
the third context data of the service requestor comprises information specifying, at least, an origin of the service access request, a target of the service access request, and a type of the service access request.
3 . The method of claim 2 , wherein the information specifying the type of the service access request includes information that indicates a deployment stage of the infrastructure boundary and a deployment stage of the service.
4 . The method of claim 3 , wherein the information specifying the target of the service access request includes the service and information that indicates whether the service requestor is within or external to the infrastructure boundary.
5 . The method of claim 1 , wherein the context repository is remote to the data processing systems including the at least one of the data processing systems on which the service is running.
6 . The method of claim 1 , wherein the one or more adjustments comprise, at least, an adjustment to a behavior of the service and an adjustment to a service flow of the service.
7 . The method of claim 6 , wherein the service requestor is not required to make any adjustments in order to be serviced by the service.
8 . A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for managing services provided by data processing systems, the operations comprising:
obtaining a service access request from a service requestor, the service access request specifying a service running on at least one of the data processing systems, the service being one of multiple services running on the at least one of the data processing systems, each of the multiple services being associated with one or more sidecars provisioned specifically for a respective one of the multiple services, and the one or more sidecars being configured to collect and store capability data and first context data for the respective one of the multiple services for which the one or more sidecars was instantiated;
parsing the service access request for second context data, the second context data comprising at least the first context data;
servicing the service requestor using the service and the second context data by at least:
determining, based on the second context data, that one or more adjustments to the service are required for the service to be able to service the service requestor; and
in response to the determining, performing the one or more adjustments to the service to obtain a modified instance of the service adapted for the service requestor, wherein the service requestor is serviced using the modified instance of the service adapted for the service requestor;
determining that the one or more adjustments to the service resulted in a change in context for the service;
recording the change in context as updated first context data of the service; and
storing the updated first context data of the service in a context repository that comprises fourth context data of an infrastructure boundary that delimits the at least one of the data processing systems on which the service is running, the fourth context data of the infrastructure boundary comprises the first context data of all services running within the infrastructure boundary including the first context data of the multiple services running on the at least one of the data processing systems, and storing the updated first context data of the service in the context repository comprises updating the fourth context data of the infrastructure boundary using the updated first context data of the service.
9 . The non-transitory machine-readable medium of claim 8 , wherein:
the second context data included in the service access request is an aggregated context data that comprises the first context data of the service and a third context data of the service requestor,
the first context data of the service comprises information specifying, at least, where the service is provisioned within the infrastructure boundary, and
the third context data of the service requestor comprises information specifying, at least, an origin of the service access request, a target of the service access request, and a type of the service access request.
10 . The non-transitory machine-readable medium of claim 9 , wherein the information specifying the type of the service access request includes information that indicates a deployment stage of the infrastructure boundary and a deployment stage of the service.
11 . The non-transitory machine-readable medium of claim 10 , wherein the information specifying the target of the service access request includes the service and information that indicates whether the service requestor is within or external to the infrastructure boundary.
12 . The non-transitory machine-readable medium of claim 8 , wherein the one or more adjustments comprise, at least, an adjustment to a behavior of the service and an adjustment to a service flow of the service.
13 . The non-transitory machine-readable medium of claim 12 , wherein the service requestor is not required to make any adjustments in order to be serviced by the service.
14 . The non-transitory machine-readable medium of claim 8 , wherein the context repository is remote to the data processing systems including the at least one of the data processing systems on which the service is running.
15 . A data processing system comprising:
a processor; and
a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations for managing services provided by data processing systems including the data processing system, the operations comprising:
obtaining a service access request from a service requestor, the service access request specifying a service running on the data processing system, the service being one of multiple services running on the at least one of the data processing systems, each of the multiple services being associated with one or more sidecars provisioned specifically for a respective one of the multiple services, and the one or more sidecars being configured to collect and store capability data and first context data for the respective one of the multiple services for which the one or more sidecars was instantiated;
parsing the service access request for second context data, the second context data comprising at least the first context data;
servicing the service requestor using the service and the second context data by at least:
determining, based on the second context data, that one or more adjustments to the service are required for the service to be able to service the service requestor; and
in response to the determining, performing the one or more adjustments to the service to obtain a modified instance of the service adapted for the service requestor, wherein the service requestor is serviced using the modified instance of the service adapted for the service requestor;
determining that the one or more adjustments to the service resulted in a change in context for the service;
recording the change in context as updated first context data of the service; and
storing the updated first context data of the service in a context repository that comprises fourth context data of an infrastructure boundary that delimits the at least one of the data processing systems on which the service is running, the fourth context data of the infrastructure boundary comprises the first context data of all services running within the infrastructure boundary including the first context data of the multiple services running on the at least one of the data processing systems, and storing the updated first context data of the service in the context repository comprises updating the fourth context data of the infrastructure boundary using the updated first context data of the service.
16 . The data processing system of claim 15 , wherein:
the second context data included in the service access request is an aggregated context data that comprises the first context data of the service and a third context data of the service requestor,
the first context data of the service comprises information specifying, at least, where the service is provisioned within the infrastructure boundary, and
the third context data of the service requestor comprises information specifying, at least, an origin of the service access request, a target of the service access request, and a type of the service access request.
17 . The data processing system of claim 16 , wherein the information specifying the type of the service access request includes information that indicates a deployment stage of the infrastructure boundary and a deployment stage of the service.
18 . The data processing system of claim 17 , wherein the information specifying the target of the service access request includes the service and information that indicates whether the service requestor is within or external to the infrastructure boundary.
19 . The data processing system of claim 15 , wherein the one or more adjustments comprise, at least, an adjustment to a behavior of the service and an adjustment to a service flow of the service.
20 . The data processing system of claim 19 , wherein the service requestor is not required to make any adjustments in order to be serviced by the service.