Systems and methods for fast start of applications in a cloud computing environment
An application likely to be accessed at an edge of the cloud computing environment is identified. The identified application is preemptively launched and then placed in a memory-resident state. When a request from a user to access the application is received, the application is brought out of the memory-resident state into an active state and parameters associated with the user are applied to the application.
1 . A method for fast start of applications in a cloud computing environment, the method comprising:
detecting, at an edge of the cloud computing environment, that a user has ended a session for an application;
determining whether the application is likely to be accessed by other users within a threshold period of time after the user ended the session, based at least in part on:
determining a number of user devices currently connected to the edge;
determining a ratio of an average number of user devices that access the application at a given time to a total number of user devices connected to the edge at the given time;
calculating, based on the ratio, a predicted number of user devices of the user devices currently connected to the edge that will access the application; and
determining whether the predicted number of user devices exceeds a threshold number of user devices; and
in response to determining that the application is likely to be accessed by other users within the threshold period of time, placing the application in a memory-resident state.
2 . The method of claim 1 , further comprising:
determining whether a user device associated with the application at a second edge of the cloud computing environment will be connected to the edge within the threshold period of time; and
in response to determining that the user device associated with the application at the second edge of the cloud computing environment will be connected to the edge within the threshold period of time:
applying a current state of the application at the second edge to the application; and
syncing session data for the application associated with the user device at the second edge with the edge.
3 . The method of claim 1 , wherein prior to detecting that the user has ended the session for the application, the application was stored in a memory-resident state at the edge, and wherein placing the application in the memory-resident state comprises returning the application to the memory-resident state at the edge.
4 . The method of claim 1 , wherein detecting that the user has ended the session comprises one or more of (a) detecting that a user device corresponding to the session for the application is no longer connected to the cloud computing environment and (b) detecting an application termination signal.
5 . The method of claim 1 , wherein determining whether the application is likely to be accessed by other users within the threshold period of time after the user ended the session comprises:
retrieving historical usage for the application at the edge; and
predicting, based on the historical usage for the application and a current time, that the application will be used within the threshold period of time after the user ended the session.
6 . The method of claim 1 , wherein determining whether the application is likely to be accessed by other users within the threshold period of time after the user ended the session comprises determining whether another user device associated with the application at a second edge of the cloud computing environment will be connected to the edge within the threshold period of time, the method further comprising:
applying a current state of the application at the second edge to the application.
7 . The method of claim 6 , further comprising:
syncing session data for the application at the second edge with the application.
8 . The method of claim 1 , wherein determining whether the application is likely to be accessed by other users within the threshold period of time after the user ended the session comprises:
determining positioning and movement data from a plurality of user devices associated with the application at a second edge of the cloud computing environment; and
determining that the application is likely to be accessed by other users within the threshold period of time after the user ended the session via the edge of the cloud computing environment based on the positioning and movement data.
9 . The method of claim 1 , further comprising:
launching, at the edge, the application, wherein launching the application comprises:
initializing a virtual machine to host the application; and
loading, into the virtual machine, all data associated with the application, and
wherein placing the application in the memory-resident state comprises placing the virtual machine in a hibernated state.
10 . A system for fast start of applications in a cloud computing environment, the system comprising:
input/output circuitry; and
control circuitry configured to:
detect, at an edge of the cloud computing environment, that a user has ended a session for an application;
determine whether the application is likely to be accessed by other users within a threshold period of time after the user ended the session, based at least in part on:
determining a number of user devices currently connected to the edge;
determining a ratio of an average number of user devices that access the application at a given time to a total number of user devices connected to the edge at the given time;
calculating, based on the ratio, a predicted number of user devices of the user devices currently connected to the edge that will access the application; and
determining whether the predicted number of user devices exceeds a threshold number of user devices; and
in response to determining that the application is likely to be accessed by other users within the threshold period of time, place the application in a memory-resident state.
11 . The system of claim 10 , wherein the control circuitry further configured to:
determine whether a user device associated with the application at a second edge of the cloud computing environment will be connected to the edge within the threshold period of time; and
in response to determining that the user device associated with the application at the second edge of the cloud computing environment will be connected to the edge within the threshold period of time:
apply a current state of the application at the second edge to the application; and
sync session data for the application associated with the user device at the second edge with the edge.
12 . The system of claim 10 , wherein the control circuitry is further configured to:
store the application in a memory-resident state prior to detecting that the user has ended the session for the application; and
return the application to the memory-resident state at the edge.
13 . The system of claim 10 , wherein the control circuitry is further configured to detect that the user has ended the session by one or more of (a) detecting that a user device corresponding to the session for the application is no longer connected to the cloud computing environment and (b) detecting an application termination signal.
14 . The system of claim 10 , wherein the control circuitry is further configured to determine whether the application is likely to be accessed by other users within the threshold period of time after the user ended the session by:
retrieving historical usage for the application at the edge; and
predicting, based on the historical usage for the application and a current time, that the application will be used within the threshold period of time after the user ended the session.
15 . The system of claim 10 , wherein the control circuitry is further configured to determine whether the application is likely to be accessed by other users within the threshold period of time after the user ended the session by determining whether another user device associated with the application at a second edge of the cloud computing environment will be connected to the edge within the threshold period of time, and wherein the control circuitry is further configured to:
apply a current state of the application at the second edge to the application.
16 . The system of claim 15 , wherein the control circuitry is further configured to:
sync session data for the application at the second edge with the application.
17 . The system of claim 10 , wherein the control circuitry is further configured to determine whether the application is likely to be accessed by other users within the threshold period of time after the user ended the session by:
determining positioning and movement data from a plurality of user devices associated with the application at a second edge of the cloud computing environment; and
determining that the application is likely to be accessed by other users within the threshold period of time after the user ended the session via the edge of the cloud computing environment based on the positioning and movement data.
18 . The system of claim 10 , wherein the control circuitry is further configured to:
launch, at the edge, the application, wherein launching the application comprises:
initializing a virtual machine to host the application; and
loading, into the virtual machine, all data associated with the application, and
place the application in the memory-resident state by placing the virtual machine in a hibernated state.