Services deployment to data processing systems
Methods and systems for managing services provided by a data processing system are disclosed. A service of the services may be managed by accounting for other services and dependencies on which the service of the service relies. To account for the other services, the dependencies may need to be validated. To validate the dependencies, the other services may be checked to see if they are implemented. If the other services are not implemented, the other services may be supplemented. Otherwise, the other services may be validated and therefore the dependencies may be validated. Once the other services and the dependencies are validated, then a service of the services may be deployed.
1 . A method for managing services provided by a data processing system, the method comprising:
obtaining a request for deployment of a service of the services;
obtaining, for the service, a dependency graph, the dependency graph indicating dependencies of the service on other services;
performing, using the dependency graph, a dependency analysis of the data processing system with respect to the other services to identify a compatibility state of the data processing system with respect to the service;
in a first instance of the performing where the compatibility state of the data processing system is compatible with respect to the service:
instantiating a new instance of the service on the data processing system; and
providing computer implemented services using, at least in part, the new instance of the service;
in a second instance of the performing where the compatibility state of the data processing system is incompatible with respect to the service:
performing, using at least the dependency graph, an updating process for the data processing system to change the compatibility state to be compatible with respect to the service;
instantiating the new instance of the service on the data processing system; and
providing the computer implemented services using, at least in part, the new instance of the service,
wherein, in both of the first instance and the second instance of the performing, after the data processing system is compatible with the service and prior to instantiating the new instance of the service on the data processing system, the method comprises:
performing a dependency readiness checking process using an existing services repository of the data processing system to validate a condition of all of the services hosted by the data processing system that are specified in the dependency graph, the dependency readiness checking process comprising initiating use of all of the services hosted by the data processing system that are specified in the dependency graph using one or more test workloads,
wherein the new instance of the service is only deployed to and instantiated on the data processing system after the condition of all of the services hosted by the data processing system that are specified in the dependency graph is validated as being in a good operable condition state.
2 . The method of claim 1 , wherein performing the dependency analysis comprises:
identifying the other services on the dependency graph; and
attempting to verify that first instances of the other services are hosted by the data processing system.
3 . The method of claim 2 , wherein attempting to verify that the first instances of the other services are hosted by the data processing system comprises:
for one instance of the other services that is verified as being hosted by the data processing system:
identifying dependencies of the one instance of the other services to identify at least one additional service; and
attempting to verify that second instances of the at least one additional service are hosted by the data processing system.
4 . The method of claim 1 , wherein performing the updating process comprises:
for a missing service of the other services:
instantiating a new instance of the missing service; and
validating operation of the new instance to obtain a validated service.
5 . The method of claim 4 , wherein performing the updating process further comprises:
for the missing service of the other services:
performing a dependency analysis for the validated service to identify a second missing service; and
instantiating a second new instance of the second missing service.
6 . The method of claim 1 , wherein the dependency graph comprises nodes that represent the other services and edges that represent the dependencies of the other services.
7 . The method of claim 6 , wherein a dependency of the dependencies represents a relationship between a first service of the other services and a second service of the other services, and the relationship indicates that an instance of the second service must be available for use by the first service for the first service to operate nominally.
8 . The method of claim 6 , wherein the dependency graph is based on source code corresponding to the service.
9 . The method of claim 8 , wherein the source code comprises application programming interface calls, and nodes and edges of the dependency graph are based, at least in part, on the application programming interface calls.
10 . 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 a data processing system, the operations comprising:
obtaining a request for deployment of a service of the services;
obtaining, for the service, a dependency graph, the dependency graph indicating dependencies of the service on other services;
performing, using the dependency graph, a dependency analysis of the data processing system with respect to the other services to identify a compatibility state of the data processing system with respect to the service;
in a first instance of the performing where the compatibility state of the data processing system is compatible with respect to the service:
instantiating a new instance of the service on the data processing system; and
providing computer implemented services using, at least in part, the new instance of the service;
in a second instance of the performing where the compatibility state of the data processing system is incompatible with respect to the service:
performing, using at least the dependency graph, an updating process for the data processing system to change the compatibility state to be compatible with respect to the service;
instantiating the new instance of the service on the data processing system; and
providing the computer implemented services using, at least in part, the new instance of the service,
wherein, in both of the first instance and the second instance of the performing, after the data processing system is compatible with the service and prior to instantiating the new instance of the service on the data processing system, the operations comprise:
performing a dependency readiness checking process using an existing services repository of the data processing system to validate a condition of all of the services hosted by the data processing system that are specified in the dependency graph, the dependency readiness checking process comprising initiating use of all of the services hosted by the data processing system that are specified in the dependency graph using one or more test workloads,
wherein the new instance of the service is only deployed to and instantiated on the data processing system after the condition of all of the services hosted by the data processing system that are specified in the dependency graph is validated as being in a good operable condition state.
11 . The non-transitory machine-readable medium of claim 10 , wherein performing the dependency analysis comprises:
identifying the other services on the dependency graph; and
attempting to verify that first instances of the other services are hosted by the data processing system.
12 . The non-transitory machine-readable medium of claim 11 , wherein attempting to verify that the first instances of the other services are hosted by the data processing system comprises:
for one instance of the other services that is verified as being hosted by the data processing system:
identifying dependencies of the one instance of the other services to identify at least one additional service; and
attempting to verify that second instances of the at least one additional service are hosted by the data processing system.
13 . The non-transitory machine-readable medium of claim 10 , wherein performing the updating process comprises:
for a missing service of the other services:
instantiating a new instance of the missing service; and
validating operation of the new instance to obtain a validated service.
14 . The non-transitory machine-readable medium of claim 13 , wherein performing the updating process further comprises:
for the missing service of the other services:
performing a dependency analysis for the validated service to identify a second missing service; and
instantiating a second new instance of the second missing service.
15 . The non-transitory machine-readable medium of claim 10 , wherein the dependency graph comprises nodes that represent the other services and edges that represent the dependencies of the other services.
16 . 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 the data processing system, the operations comprising:
obtaining a request for deployment of a service of the services;
obtaining, for the service, a dependency graph, the dependency graph indicating dependencies of the service on other services;
performing, using the dependency graph, a dependency analysis of the data processing system with respect to the other services to identify a compatibility state of the data processing system with respect to the service;
in a first instance of the performing where the compatibility state of the data processing system is compatible with respect to the service:
instantiating a new instance of the service on the data processing system; and
providing computer implemented services using, at least in part, the new instance of the service;
in a second instance of the performing where the compatibility state of the data processing system is incompatible with respect to the service:
performing, using at least the dependency graph, an updating process for the data processing system to change the compatibility state to be compatible with respect to the service;
instantiating the new instance of the service on the data processing system; and
providing the computer implemented services using, at least in part, the new instance of the service,
wherein, in both of the first instance and the second instance of the performing, after the data processing system is compatible with the service and prior to instantiating the new instance of the service on the data processing system, the operations comprise:
performing a dependency readiness checking process using an existing services repository of the data processing system to validate a condition of all of the services hosted by the data processing system that are specified in the dependency graph, the dependency readiness checking process comprising initiating use of all of the services hosted by the data processing system that are specified in the dependency graph using one or more test workloads,
wherein the new instance of the service is only deployed to and instantiated on the data processing system after the condition of all of the services hosted by the data processing system that are specified in the dependency graph is validated as being in a good operable condition state.
17 . The data processing system of claim 16 , wherein performing the dependency analysis comprises:
identifying the other services on the dependency graph; and
attempting to verify that first instances of the other services are hosted by the data processing system.
18 . The data processing system of claim 17 , wherein attempting to verify that the first instances of the other services are hosted by the data processing system comprises:
for one instance of the other services that is verified as being hosted by the data processing system:
identifying dependencies of the one instance of the other services to identify at least one additional service; and
attempting to verify that second instances of the at least one additional service are hosted by the data processing system.
19 . The data processing system of claim 16 , wherein performing the updating process comprises:
for a missing service of the other services:
instantiating a new instance of the missing service; and
validating operation of the new instance to obtain a validated service.
20 . The data processing system of claim 19 , wherein performing the updating process further comprises:
for the missing service of the other services:
performing a dependency analysis for the validated service to identify a second missing service; and
instantiating a second new instance of the second missing service.