The Automatic Deployment feature for the Software Management application allows packages to be made available for deployment by users and places the act of deploying the packages into the hands of the application through background tasks. The users create packages, define the dependencies for the package, and set up the deployment for each package. When the deployment is an Automatic Deployment, the background tasks continuously resolve which assets meet the dependency criteria and automatically deploy to those assets.
Note: The automatic deployment feature is supported by the Axeda Gateway, Axeda Connector, Axeda Agent Embedded, and Axeda IDM Agents. This feature is NOT supported by AWP agents. For information about which package features are supported by the different Axeda Agents, refer to Package Features Supported by Axeda Agents.
The tasks that automate the deployment process consist of a task that evaluates the availability of assets and a task that actually deploys the packages to the available assets:
o Evaluation task -- This task evaluates the deployed package dependencies against the assets and adds eligible assets to a list for the deployment, with all of the details for each asset. The task evaluates the dependencies based on the priority and time of the deployment. If a dependency value changes for an asset after the evaluation of the package dependency, re-evaluation is required for the asset, as long as the package has not been deployed yet. The Platform enforces the task to re-evaluate dependencies by removing entries in the list and updating the dependency modified time in the Platform.
o Deployment task -- This task uses chunking, based on a value set in the configuration file for the Axeda® Platform. The deployment task uses an algorithm to deploy the package to the available assets for the scheduled time of deployment. Deployments are resolved based on the priority set and the time set.
As they are completed for some assets, the deployments are pushed to the next set of assets. The number of assets is equal to the number of deployments completed from the original chunk. The Deployment task determines the number of package deployments that can be started based on the number that are in progress and the maximum allowed. This task runs periodically, so the set size will vary.
Deployments thereby happen for the configured chunk size at any given point in time. The deployment for an asset may have the status of "Finished," "Failed," or "Timed-out," which all signal that the deployment is complete. The "completed" status for the specific assets determines how many more deployments can be started. For example, if the first deployment is for 500 assets and 350 are completed, then deployments are pushed to the next 350 assets. For every deployment, SOAP messages are created for package deployment per asset. The task continues to cycle for each deployment until the package has been deployed to all online assets. The task ignores any offline assets.
The Axeda Platform maintains a history of the automatic deployments.
During deployment, the task evaluates the dependencies (Package and Registry) in the same way as for manual deployments. Data Item and Custom Component dependencies are evaluated after the package is deployed.
For unpublished packages, dependencies, instructions, and rollback instructions can be modified at any time. If changes are made, the deployment task uses the modified dependencies for future deployments. If the deployment task is in the process of deploying the package, any changes do NOT affect the ongoing deployment.