Deploying assets
The present disclosure is directed to handling deployment of assets (e.g., applications) to devices (e.g., card readers, payment terminals, etc.), substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
1 . A method for performing a progressive rollout of assets, the method comprising:
storing one or more asset versions to be deployed to a set of devices, wherein a deploy plan specifies a subset of the devices and specifies which of the one or more asset versions form a deploy group that is to be deployed to the subset of the devices;
in response to receiving a request to approve the deploy plan, transitioning a state of the deploy plan to an approval state;
in response to receiving an approval signal of the deploy plan based on a review of the deploy plan, transitioning the state of the deploy plan from the approval state to an active state in which deployment of the deploy group to the subset of devices is permitted;
determining, in response to a message received from each device of the subset of devices, which asset versions are to be deployed to said each device and whether the asset versions are to be deployed to said each device at a present time according to the deploy plan;
in response to determining the asset versions to be deployed to said each device at the present time, sending a list of instructions to said each device, the instructions including installation instructions for at least one asset of the deploy group;
detecting that an installed asset is not functioning as expected, based on state information received from one or more of the subset of devices;
pausing deployment of the deploy plan, in response to detecting that the installed asset is not functioning as expected;
transitioning the deploy plan to a cancel state, wherein the deploy plan in the cancel state is blocked from returning to the active state;
creating a new deploy plan which specifies a second one or more asset versions that are to be deployed to the subset of devices; and
transitioning a state of the new deploy plan, to the approval state, and waiting for the approval signal for the new deploy plan.
2 . The method of claim 1 wherein the deploy plan specifies that the deploy group is to be deployed to the subset of devices during a first time period and to a second subset of devices during a second time period later than the first time period.
3 . The method of claim 1 wherein determining whether the deploy group of assets is to be deployed to said each device at the present time is based on device type and location of the said each device.
4 . The method of claim 3 further comprising:
obtaining the device type of said each device, the device type indicated by a device identifier of said each device;
applying a hash function to the device identifier to obtain a hash number; and
determining whether said each device is part of a current stage of the progressive rollout based on the hash number.
5 . The method of claim 1 further comprising, performing, by an updater application running on said each device, the list of instructions in order to update said each device with the deploy group of assets.
6 . The method of claim 1 , wherein the second one or more asset versions comprise a higher version of the one or more asset versions.
7 . The method of claim 6 wherein the new deploy plan uses a same hash function as used in the deploy plan.
8 . The method of claim 7 wherein the new deploy plan is associated with a same set of device IDs as identified by the deploy plan in the cancel state.
9 . The method of claim 1 wherein assets of the respective deploy group include:
a new version of a previously existing application on the said each device,
the previously existing application with a configuration change, or
a new application.
10 . The method of claim 9 wherein the previously existing application is for handling commercial transactions.
11 . The method of claim 10 wherein the group of devices comprise mobile devices for use in processing payments for the commercial transactions.
12 . A system for managing deployment of applications, the system comprising:
one or more hardware processors;
a memory comprising instructions which, when executed by the one or more hardware processors, cause the system to:
store one or more asset versions to be deployed to a set of devices, wherein a deploy plan specifies a subset of the devices and specifies which of the one or more asset versions form a deploy group that is to be deployed to the subset of the devices;
in response to receiving a request to approve the deploy plan, transition a state of the deploy plan to an approval state;
in response to receiving an approval signal of the deploy plan based on a review of the deploy plan, transition the state of the deploy plan from the approval state to an active state in which deployment of the deploy group to the subset of devices is permitted;
determine, in response to a message received from each device of the subset of devices, which asset versions are to be deployed to said each device and whether asset versions are to be deployed to said each device at a present time according to the deploy plan;
in response to determining the asset versions is to be deployed to said each device at the present time, send a list of instructions to said each device, the instructions including installation instructions for at least one asset of the deploy group;
detect that an installed asset is not functioning as expected, based on state information received from one or more of the subset of devices;
pause deployment of the deploy plan, in response to detecting that the installed asset is not functioning as expected;
transition the deploy plan to a cancel state, wherein the deploy plan in the cancel state is blocked from returning to the active state;
create a new deploy plan which specifies second one or more asset versions that are to be deployed to the subset of devices; and
transition a state of the new deploy plan, to the approval state, and waiting for the approval signal for the new deploy plan.
13 . The system of claim 12 wherein the deploy plan specifies that the deploy group is to be deployed to the subset of devices during a first time period and to a second subset of devices during a second time period later than the first time period.
14 . The system of claim 12 wherein the one or more hardware processors are configured to determine whether the deploy group of assets is to be deployed to said each device at the present time is based on device type and location of the said each device.
15 . The system of claim 14 wherein the one or more hardware processors are configured to:
obtain the device type of said each device, the device type indicated by a device identifier of said each device;
apply a hash function to the device identifier to obtain a hash number; and
determine whether said each device is part of a current stage of the progressive rollout based on the hash number.
16 . One or more non-transitory computer readable storage media having instructions stored thereupon which, when executed by a system having at least a processor and a memory therein, cause the system to perform operations comprising:
storing one or more asset versions to be deployed to a set of devices, wherein a deploy plan specifies a subset of the devices and specifies which of the one or more asset versions form a deploy group that is to be deployed to the subset of the devices;
in response to receiving a request to approve the deploy plan, transitioning a state of the deploy plan to an approval state;
in response to receiving an approval signal of the deploy plan based on a review of the deploy plan, transitioning the state of the deploy plan from the approval state to an active state in which deployment of the deploy group to the subset of devices is permitted;
determining, in response to a message received from each device of the subset of devices, which asset versions are to be deployed to said each device and whether the asset versions are to be deployed to said each device at present time according to the deploy plan;
in response to determining the asset versions is to be deployed to said each device at the present time, sending a list of instructions to said each device, the instructions including installation instructions for at least one asset of the deploy group;
detecting that an installed asset is not functioning as expected, based on state information received from one or more of the subset of devices;
pausing deployment of the deploy plan, in response to detecting that the installed asset is not functioning as expected;
transitioning the deploy plan to a cancel state, wherein the deploy plan in the cancel state is blocked from returning to the active state;
creating a new deploy plan which specifies second one or more asset versions that are to be deployed to the subset of devices; and
transitioning a state of the new deploy plan, to the approval state, and waiting for the approval signal for the new deploy plan.
17 . The one or more non-transitory computer readable storage media of claim 16 wherein the new deploy plan uses a same hash function as used in the deploy plan in the cancel state.
18 . The one or more non-transitory computer readable storage media of claim 17 wherein the second one or more assets versions comprise a higher version of the one or more asset versions.