Event-driven orchestration of workloads requiring satellite computing resources
A computer-implemented method, a computer system and a computer program product orchestrate event-driven workloads in a satellite environment. The method includes receiving a workload from a client for deployment to a satellite in a plurality of satellites, where the workload includes requirements. The method also includes obtaining satellite data for each satellite in the plurality of satellites, where the satellite data includes a capability of the satellite and a current status of the satellite. The method further includes determining that the capability of the satellite satisfies the requirements of the workload. In addition, the method includes identifying a relevant satellite in the plurality of satellites based on the current status of the satellite. Lastly, the method includes deploying the workload to a ground station associated with the relevant satellite.
1 . A computer-implemented method for orchestrating event-driven computing workloads in a satellite environment, the computer-implemented method comprising:
receiving a workload and a request for satellite computing resources to deploy the workload from a client, wherein the workload corresponds to an event, and wherein the request includes requirements for a computing capability to complete the workload;
obtaining satellite data for a plurality of satellites, wherein the satellite data includes computing capabilities and current statuses of the plurality of satellites;
predicting, based on the current statuses, locations and availabilities of the plurality of satellites during the event ;
identifying a relevant satellite for the request in the plurality of satellites, wherein the identifying comprises traversing a decision tree having a first set of branches based on the computing capabilities and subsequent sets of branches based on parameters comprising the locations and availabilities;
identifying ground stations capable of communicating with the relevant satellite;
scheduling a time for the workload to be deployed to the relevant satellite;
predicting a location of the relevant satellite at the scheduled time;
selecting, based on the predicted location, a ground station from the identified ground stations;
deploying the workload to the selected ground station at the scheduled time; and
determining, based on data from monitoring the relevant satellite and the selected ground station, whether to download results of processing the workload to the selected ground station.
2 . The computer-implemented method of claim 1 , further comprising:
based on a result of the determining, downloading a workload result at a second ground station from the identified ground stations, wherein the workload result is generated by running the workload on the relevant satellite; and
transmitting the workload result to the client.
3 . The computer-implemented method of claim 1 , wherein the identifying the relevant satellite in the plurality of satellites further comprises:
determining that the client does not have permission to access a first satellite from the plurality of satellites; and
updating a current status of the first satellite.
4 . The computer-implemented method of claim 1 , wherein the current statuses include an orbital path, a current location, a current workload status, and a workload schedule for each satellite, and the predicting comprises:
predicting an availability of the satellite from the current workload status and the workload schedule; and
predicting a location of the satellite using the current location and the orbital path.
5 . The computer-implemented method of claim 1 , further comprising:
receiving a notification from at least one of the identified ground stations that the workload cannot be deployed to the relevant satellite; and
updating a current status of the relevant satellite based on the notification.
6 . The computer-implemented method of claim 1 , further comprising training a machine learning model for predicting a relevant satellite for a next workload based on the satellite data.
7 . A computer system for orchestrating event-driven computing workloads in a satellite environment, the computer system comprising:
one or more processors, one or more computer-readable memories, and one or more computer-readable storage media; and
program instructions, stored on at least one of the one or more computer-readable storage media for execution by at least one of the one or more processors via at least one of the one or more computer-readable memories, the program instructions comprising:
program instructions to receive a workload and a request for satellite computing resources to deploy the workload from a client, wherein the workload corresponds to an event, and wherein the request includes requirements for a computing capability to complete the workload;
program instructions to obtain satellite data for a plurality of satellites, wherein the satellite data includes computing capabilities and current statuses of the plurality of satellites;
program instructions to predict, based on the current statuses, locations and availabilities of the plurality of satellites during the event;
program instructions to identify a relevant satellite based on the request in the plurality of satellites by traversing a decision tree having a first set of branches based on the computing capabilities and subsequent sets of branches based on parameters comprising the locations and availabilities;
program instructions to identify ground stations capable of communicating with the relevant satellite;
program instructions to schedule a time for the workload to be deployed to the relevant satellite;
program instructions to predict a location of the relevant satellite at the scheduled time;
program instructions to select, based on the predicted location, a ground station from the identified ground stations;
program instructions to deploy the workload to the selected ground station at the scheduled time; and
program instructions to determine, based on data from monitoring the relevant satellite and the selected ground station, whether to download results of processing the workload to the selected ground station.
8 . The computer system of claim 7 , the program instructions further comprising:
program instructions to download, based on a result of the determining, a workload result at a second ground station from the identified ground stations, wherein the workload result is generated by running the workload on the relevant satellite; and
program instructions to transmit the workload result to the client.
9 . The computer system of claim 7 , wherein the program instructions to identify the relevant satellite in the plurality of satellites further comprise:
program instructions to determine that the client does not have permission to access a first satellite from the plurality of satellites; and
program instructions to update a current status of the first satellite.
10 . The computer system of claim 7 , wherein the current statuses include an orbital path, a current location, a current workload status, and a workload schedule of each satellite and the program instructions to predict the locations and availabilities comprise:
program instructions to predict an availability of the each satellite from the current workload status and the workload schedule; and
program instructions to predict a location of the each satellite at a time of the availability using the current location and the orbital path.
11 . The computer system of claim 7 , the program instructions further comprising:
program instructions to receive a notification from at least one of the identified ground stations that the workload cannot be deployed to the relevant satellite; and
program instructions to update a current status of the relevant satellite based on the notification.
12 . The computer system of claim 7 , wherein the program instructions further comprise program instructions to train a machine learning model for predicting a relevant satellite for a next workload based on the satellite data.
13 . A computer program product for orchestrating event-driven computing workloads in a satellite environment, the computer program product comprising:
one or more computer-readable storage media; and
program instructions stored on at least one of the one or more computer-readable storage media, the program instructions comprising:
program instructions to receive a workload and a request for satellite computing resources to deploy the workload from a client, wherein the workload corresponds to an event, and wherein the request includes requirements for a computing capability to complete the workload;
program instructions to obtain satellite data for a plurality of satellites, wherein the satellite data includes computing capabilities and current statuses of the plurality of satellites;
program instructions to predict, based on the current statuses, locations and availabilities of the plurality of satellites during the event;
program instructions to identify a relevant satellite based on the request in the plurality of satellites by traversing a decision tree having a first set of branches based on the computing capabilities and subsequent sets of branches based on parameters comprising the locations and availabilities;
program instructions to identify ground stations capable of communicating with the relevant satellite;
program instructions to schedule a time for the workload to be deployed to the relevant satellite;
program instructions to predict a location of the relevant satellite at the scheduled time;
program instructions to select, based on the predicted location, a ground station from the identified ground stations; and
program instructions to deploy the workload to a ground station associated with the relevant satellite.
14 . The computer program product of claim 13 , the program instructions further comprising:
program instructions to download a workload result at a second ground station from the identified ground stations, wherein the workload result is generated by running the workload on the relevant satellite; and
program instructions to transmit the workload result to the client.
15 . The computer program product of claim 13 , wherein the program instructions to identify the relevant satellite in the plurality of satellites further comprise:
program instructions to determine that the client does not have permission to access a first satellite from the plurality of satellites; and
program instructions to update a current status of the first satellite.
16 . The computer program product of claim 13 , wherein the current statuses include an orbital path, a current location, a current workload status, and a workload schedule of each satellite and the program instructions to predict the locations and availabilities comprise:
program instructions to predict an availability of the each satellite from the current workload status and the workload schedule; and
program instructions to predict a location of the each satellite at a time of the availability using the current location and the orbital path.
17 . The computer program product of claim 13 , further comprising:
program instructions to receive a notification from at least one of the identified ground stations that the workload cannot be deployed to the relevant satellite; and
program instructions to update a current status of the relevant satellite based on the notification.
18 . The computer-implemented method of claim 1 , wherein the determining whether to download the results of processing the workload to the selected ground station is based on a current location of the relevant satellite.
19 . The computer-implemented method of claim 1 , wherein the determining whether to download the results of processing the workload to the selected ground station is based on an external factor detected by the monitoring.
20 . The computer-implemented method of claim 19 , further comprising, in response to the detected external factor, downloading the results of processing the workload to a different ground station.