Contact Us 1-800-596-4880

Reviewing Mule App Versioning on Runtime Fabric

When an application is deployed to Runtime Fabric, Runtime Manager automatically versions the application and its configuration. Application versioning enables you to:

  • View the configuration change history of the application.

  • Roll back the configurations to an earlier version in case the currently applied configuration has issues or is unstable.

  • View the application status. Possible values are:

    • Running: At least one replica is receiving traffic (Started state).

    • Not running: None of the replicas are receiving traffic.

    • Unknown: The target is disconnected.

  • Make updates to a deployed application’s configuration, including:

    • The application package.

    • Application deployment package version.

    • Deployment target settings, such as runtime version, number of replicas, and whether the application is running in cluster mode.

    • Resource allocations, including number of cores and memory allocation.

    • Ingress and property values.

Access the Application’s Settings Page

  1. Sign into Anypoint Platform and navigate to Runtime Manager

    The Applications page is displayed.

  2. From the Applications page, select an application deployed to Runtime Fabric.

  3. Open the management panel on the right side.

  4. On the management panel, click the Manage Application button.

    The Settings page displays information about the application’s status, configuration history, and other useful information about the application.

    In the Config changes tab on the application’s Settings page. Runtime Fabric displays each change to the successfully deployed application configuration.

    The last ten configuration deployments are displayed in order of their respective configuration date. Each configuration in the history has a unique hash to identify it.

app versioning
The configuration history displays the last ten configuration deployments in order of creation date.

The All changes tab displays a history of versions created from the configuration deployment, and the actions performed on each version.

Apply Configuration Changes

  1. On the Settings page for the application, you can make the following changes to a deployed configuration:

    • Upload a new application package.

    • Make changes to the deployment target and resource allocation.

    • Modify values for Ingress and Properties.

  2. Once your changes are made, click Apply Changes.
    At the top of the Settings page, a status bar appears.

    app versioning applying config

  3. Click View Status to view the status for each replica in the deployment.
    Replica statuses include:

    • Started: The replica is receiving traffic.

    • Pending: The replica is waiting to start.

    • Starting: The replica is starting.

    • Deleting: The deletion of the replica is in progress.

    • Deleted: The replica has been deleted.

    • Stopping: The replica is stopping.

    • Stopped: The replica has stopped (is not receiving traffic).

    • Failed: The configuration failed to deploy.

    • Recovering: The replica is attempting to restart after terminating.
      The last successfully deployed configuration is retained until the new (desired) configuration is successfully deployed.

      New configurations are applied as "rolling updates." For example:

    • A replica is created with the desired configuration,

    • Once that configuration is successfully applied, the replica with the old configuration is deleted,

    • This process is repeated with each replica in the deployment.
      This model means there is zero downtime while updates are applied to the application.

      Since updates are applied as rolling updates, there will be different application versions running at the same time until the update is completed, so make sure your applications are able to run multiple versions in parallel.
      app versioning replica status

      Once the configuration is successfully applied and deployed, a message appears at the top of the page.

      app versioning config applied success

      The application status, configuration identifier, date, and other information is updated in the status box. The new configuration is displayed at the top of the Config changes list, along with a Last successful label to indicate that it’s the last configuration successfully deployed.

      If the updates to the configuration fail to deploy, you get an Desired configuration wasn’t applied message, and the Configuration status displays an Update failed label. The configuration is displayed in the Config changes history without a label.

      app versioning update failed

      In cases of failure, the deployment attempts to roll back to the last successful version of the configuration, but in certain situations, the rollback may not succeed. The status of the configuration displays Update failed.

      If it’s the first deployment of the application the rollback version won’t be defined and in case of a failed deployment, it remains in the failed status.

Recommendations when Deploying Stateful Mule Apps

  • MuleSoft supports persistent gateway for higher availability of applications requiring shared storage.

  • When using Mule clustering, a rolling update with a Mule runtime version that has a Hazelcast version change will generate a scenario when, at a certain point of time, the cluster will have more than a member with different Hazelcast versions. This may lead to application failure with a Hazelcast serialization error if the Hazelcast versions are incompatible. To prevent this kind of error, use the Recreate update strategy.

Roll Back to a Previous Successful Configuration

If you deploy a configuration that has issues, you can roll back to a previous successful version of the configuration.

  1. In the Config changes history, select the version to which to roll back.

  2. Click Deploy.
    The configuration moves to the top of the list in the Config changes history and displays the new deployment date. It retains its original identifying hash.