Upgrade Path 5: From a Classic Configuration in a Datacenter to a Cloud-Native Configuration in Azure (with Database Migration to Azure Database for PostgreSQL)

Overview

In this upgrade path:

  • Your source CloudBlue Commerce 20.5 installation is:

    • System components installed on physical or virtual servers (OSS MN, BSS application server, and so on)

    • (Optional) System components installed in a Kubernetes cluster

    • System databases placed on physical or virtual servers

    • DNS services installed on physical or virtual servers

    • Application endpoints installed on physical or virtual servers

  • Your destination CloudBlue Commerce 21.0 installation is:

    • System components installed in an AKS cluster

    • System databases placed in the Azure Database for PostgreSQL service

    • DNS services installed in Azure VMs

    • Application endpoints installed in Azure VMs

To upgrade to CloudBlue Commerce 21.0, perform these steps:

  1. Migrate your DNS services to Azure VMs.

  2. Migrate your APS application endpoints to Azure VMs.

  3. Prepare your cloud infrastructure in Azure.

  4. Perform upgrade prechecks.

  5. Configure your infrastructure for the upgrade.

  6. Prepare data for the upgrade.

  7. Adjust OSS XML-RPC API security settings and reschedule the daily billing process.

  8. Create system databases and users for CloudBlue Commerce 21.0.

  9. Generate secrets with database access credentials for CloudBlue Commerce 21.0.

  10. Create persistent volumes for CloudBlue Commerce 21.0 and fill them with data.

  11. Migrate the databases of system components to Azure Database for PostgreSQL.

  12. Perform pre-deployment activities.

  13. Deploy CloudBlue Commerce 21.0.

  14. Perform post-deployment activities.

Step 1: Migrate Your DNS Services to Azure VMs

If you have DNS services such as BIND or PowerDNS on your CloudBlue Commerce 20.5 installation, migrate them to Azure VMs. To do this, complete these steps:

  1. Ensure that the BIND DNS service is not installed on your OSS MN. For details, see this article.

  2. Migrate your DNS services to Azure VMs as described in the CloudBlue Commerce 20.5 Migrating CloudBlue Commerce to Azure Cloud Guide.

Note: Your OSS MN and new Azure VMs running DNS services must be able to connect to each other.

Step 2: Migrate Your APS Application Endpoints to Azure VMs

Migrate your APS application endpoints to Azure VMs as described in the CloudBlue Commerce 20.5 Migrating CloudBlue Commerce to Azure Cloud Guide.

Notes:

- Your OSS MN and new Azure VMs running APS application endpoints must be able to connect to each other.

- Your BSS application server and new Azure VMs running APS application endpoints must be able to connect to each other.

Step 3: Prepare Your Cloud Infrastructure in Azure

Prepare your cloud infrastructure in Azure as described in the CloudBlue Commerce 21.0 Deployment Guide. As a result, you must have:

  • An AKS cluster that has enough resources to run your CloudBlue Commerce 21.0 installation

  • An Azure Database for PostgreSQL server

  • External and internal NGINX ingress controllers installed in your AKS cluster

  • An SMTP server that will be used by your CloudBlue Commerce 21.0 installation to send notification messages

Important:

- Ensure that the service principal of your AKS cluster has sufficient permissions to create internal load balancers in its subnet. You can learn more about this in the Azure documentation.

- Pod Security Policies are not supported in the current CloudBlue Commerce version. Do not enable them in your cluster.

Step 4: Perform Upgrade Prechecks

Perform the instructions in Appendix A: Performing Upgrade Prechecks. If there are any errors, resolve them.

Important: If you use DNS services such as BIND or PowerDNS on your installation, prepare these services for the upgrade as described in this article.

Step 5: Configure Your Infrastructure for the Upgrade

  1. If you have APS endpoints whose DNS names are resolved through specific DNS servers, for example, internal DNS servers, specify these DNS servers as forward servers for those DNS names in the DNS service of your AKS cluster. To do this, create a ConfigMap named coredns-custom in the kube-system namespace of your AKS cluster:

    my.server: |
      DNS_NAME_OF_APPLICATION_ENDPOINT:53 {
          errors
          cache 30
          forward . IP_ADDRESS_OF_DNS_SERVER
      }

    To learn more about customizing the DNS service of an AKS cluster, please refer to the Azure documentation.

    Important: The DNS servers that you specify as forward servers must be accessible from your AKS cluster.

  2. If you have the Microsoft 365 application installed and its application endpoint node uses IP address restrictions, add the respective allow entries for the subnet of your AKS cluster. To do this, use these instructions.

  3. Create a cloud management node (cloud MN) as described in Appendix B: Creating a Cloud Management Node.

    Important: This cloud MN must have access to your AKS cluster, Azure Database for PostgreSQL server, and Azure VMs running APS application endpoints.

    Note: When creating that cloud MN, do not execute the generate_configs.py script. You need to execute it after you finish the upgrade.

  4. On your OSS MN, download the cnc-migration-latest.tgz archive. Then, unpack it and go to the CNC-MIGRATION directory:

    tar xzvf CNC-MIGRATION.tgz
    cd CNC-MIGRATION
  5. If you use custom domain registration, fraud-screening and payment plugins on your CloudBlue Commerce 20.5 installation, contact the developers of those plugins and obtain versions that are compatible with CloudBlue Commerce 21.0. You can install compatible versions of those plugins before or after the upgrade. To obtain the instructions on how to install domain registration, fraud-screening, and payment plugins, please refer to the CloudBlue Commerce 20.5 or CloudBlue Commerce 21.0 documentation.

    Note: If you install them before the upgrade, the files of those plugins will be automatically copied by the upgrade scripts.

  6. During the upgrade, the IP addresses of the OSS XML-RPC API, BSS XML-RPC API, and APS REST API will be changed to new ones. We recommend that you create DNS records for the current IP addresses and replace these IP addresses with the corresponding DNS names in the configuration of your application endpoints, custom scripts, and internal systems integrated with CloudBlue Commerce. After the upgrade, you must update these DNS records so that they point to the new IP addresses of the APIs.

    Notes:

    - For application endpoints that are based on the APS PHP runtime, the URLs of the OSS XML-RPC API, BSS XML-RPC API, and APS REST API will be updated automatically in the default configuration files by the fix-aps-endpoints.py script during the upgrade.

    - After the upgrade, the OSS XML-RPC API, BSS XML-RPC API, and APS REST API will be accessible through the oss-proxy and bss-xmlrpc LoadBalancer services. By default, the load balancers of those services use internal IP addresses.

  7. If domain registrars used by domain registration plugins of your CloudBlue Commerce 20.5 installation use IP address restrictions for their APIs, add the public IP address of your AKS cluster to the whitelists of those registrars.

    Note: To find that IP address, log in to the Azure portal, select your AKS cluster, click Properties in the Settings group, click on the name of the infrastructure resource group, and then click on the public IP address whose name is a GUID.

Step 6: Prepare Data for the Upgrade

  1. On your OSS MN in the CNC-MIGRATION directory, execute these commands:

    kubectl config use-context YOUR_LOCAL_CLUSTER
    ./collect-replication-data.py --data-dir DIRECTORY_FOR_DATA
    ./preparation.py --replicate

    After you execute these commands, two archives will be created. For example:

    # ./collect-replication-data.py --data-dir /data
    ...
    Result: /data/migration-data.tar.gz
    
    # ./preparation.py --replicate
    ...
    Result: /root/CNC-MIGRATION.tgz

    These archives contain data retrieved from your CloudBlue Commerce 20.5 installation, such as APS packages, certificates, database access credentials, and other necessary configuration files.

  2. Upload the migration-data.tar.gz and CNC-MIGRATION.tgz archives to your cloud MN.

  3. On your cloud MN in the directory where those archives are located, unpack them by executing these commands:

    mkdir CNC-MIGRATION
    cd CNC-MIGRATION
    tar xzvf ../CNC-MIGRATION.tgz
    tar xzvf ../migration-data.tar.gz --strip-components=2

Step 7: Adjust OSS XML-RPC API Security Settings and Reschedule the Daily Billing Process

  1. In the provider control panel, go to Settings > Public API > the Allowed Networks tab and allow access to the OSS XML-RPC API from:

    • the network used by pods of your AKS cluster

    • the network used by the nodes of your AKS cluster

  2. Suspend the daily billing process:

    1. In the provider control panel, go to System > Settings.

    2. In the System group, click Events and switch to the Scheduler tab.

    3. Reschedule the DailyBillingProcessing task so that you have enough time to complete the upgrade.

    Warning: Remember to resume the daily billing process after you complete the upgrade.

Step 8: Create System Databases and Users for CloudBlue Commerce 21.0

  1. On your cloud MN in the CNC-MIGRATION directory, create a file named replication-db.conf:

    oss:
      host: POSTGRESQL_SERVER_DOMAIN_NAME
      admin_user: POSTGRESQL_SERVER_ADMIN_USER_NAME
      admin_passwd: POSTGRESQL_SERVER_ADMIN_USER_PASSWORD
    bss:
      host: POSTGRESQL_SERVER_DOMAIN_NAME
      admin_user: POSTGRESQL_SERVER_ADMIN_USER_NAME
      admin_passwd: POSTGRESQL_SERVER_ADMIN_USER_PASSWORD

    In this file, specify the domain name of your Azure Database for PostgreSQL server and its administrative access credentials .

  2. Create empty databases and users for system components of CloudBlue Commerce 21.0. To do this, on your cloud MN in the CNC-MIGRATION directory, execute these commands:

    export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
    ./replicate-db-users.py --db-config replication-db.conf

    The script creates those databases and users based on the data from the migration-data.tar.gz and CNC-MIGRATION.tgz archives that you uploaded and extracted earlier.

Step 9: Generate Secrets with Database Access Credentials for CloudBlue Commerce 21.0

In your AKS cluster, create secrets with database access credentials for system components of CloudBlue Commerce 21.0. To do this, on your cloud MN in the CNC-MIGRATION directory, execute these commands:

kubectl config use-context YOUR_AKS_CLUSTER
export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
python generate-secrets.py --root-path `pwd`/pem

Step 10: Create Persistent Volumes for CloudBlue Commerce 21.0 and Fill Them with Data

In your AKS cluster, create persistent volumes for system components of CloudBlue Commerce 21.0 and fill them with the data from the migration-data.tar.gz and CNC-MIGRATION.tgz archives that you uploaded and extracted earlier. To do this, on your cloud MN in the CNC-MIGRATION directory, execute these commands:

kubectl config use-context YOUR_AKS_CLUSTER
export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
python copy-persistent-data.py --root-path `pwd`/pem --copy-all 

Note: During the execution of these commands, a pod named temporary-pod is created in your AKS cluster, and the created persistent volumes are mounted to that pod.

Step 11: Migrate the Databases of System Components to Azure Database for PostgreSQL

  1. Before migrating databases from your database servers in your datacenter to Azure Database for PostgreSQL, stop all system components of your CloudBlue Commerce 20.5 installation:

    1. On your OSS MN, execute these commands:

      kubectl config use-context YOUR_LOCAL_CLUSTER
      
      kubectl scale deployment gdpr-backend --replicas=0
      kubectl scale deployment idp-backend --replicas=0
      kubectl scale deployment order-management --replicas=0
      kubectl scale deployment rateddataexport --replicas=0
      kubectl scale deployment ratingengine --replicas=0
      kubectl scale deployment ratingenginepayg --replicas=0
      kubectl scale deployment connect-cbc-adapter --replicas=0
      
      service pau stop
      service pa-agent stop
      chkconfig pau off
      chkconfig pa-agent off
    2. On your BSS application server, execute these commands:

      chkconfig pau off
      chkconfig pba off
      chkconfig pa-agent off
      chkconfig ssm off
      
      service pba stop
      service pau stop
      service pa-agent stop
      service ssm stop
      
      mv /usr/local/bm/etc/ssm.conf.d/global.conf /usr/local/bm/etc/ssm.conf.d/global.conf.inactive
  2. Create backups of all system databases of your CloudBlue Commerce 20.5 installation. To do this, on your OSS MN in the CNC-MIGRATION directory, execute this command:

    ./backup-dbs.py --dump-location DIRECTORY_FOR_DATABASE_BACKUPS
  3. Copy the backups of your CloudBlue Commerce 20.5 system databases to your cloud MN.

  4. Restore your databases from their backups to Azure Database for PostgreSQL. To do this, on your cloud MN in the CNC-MIGRATION directory, execute these commands:

    export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
    ./restore-dbs.py --db-config replication-db.conf --dump-location DIRECTORY_WITH_DATABASE_BACKUPS

Step 12: Perform Pre-deployment Activities

  1. Check whether new APS packages were added to the /usr/local/pem/APS/packages directory on your OSS MN after the date you executed the copy-persistent-data.py script. To check this, use the following commands:

    ls -lt /usr/local/pem/APS/packages | head -100

    and

    kubectl config use-context YOUR_AKS_CLUSTER
    kubectl -n NAMESPACE_OF_YOUR_CBC_21_INSTALLATION exec -ti temporary-pod bash
    ls -lt /var/oss/APS/packages/ | head 100

    If the /usr/local/pem/APS/packages directory contains new APS packages, copy the directories and ZIP files of those APS packages to your cloud MN and then to your AKS cluster. To copy those directories from you cloud MN to your AKS cluster, use the following commands:

    kubectl config use-context YOUR_AKS_CLUSTER
    kubectl -n NAMESPACE_OF_YOUR_CBC_21_INSTALLATION cp PACKAGE_DIRECTORY temporary-pod:/var/oss/APS/packages/
    kubectl -n NAMESPACE_OF_YOUR_CBC_21_INSTALLATION cp PACKAGE_ZIP_FILE temporary-pod:/var/oss/APS/packages/
  2. From your cloud MN, connect to the oss system database located on your Azure Database for PostgreSQL server and execute these SQL commands:

    ALTER TABLE aps_resource_link ALTER COLUMN target_type_info_id SET NOT NULL, ALTER COLUMN source_app_id SET NOT NULL, ALTER COLUMN target_app_id SET NOT NULL;
      
    CREATE INDEX IF NOT EXISTS "IX_aps_security_link_resource_type_info_id" ON aps_security_link(resource_type_info_id);

    Note: Executing these SQL commands is necessary for large databases and may take a long time to complete. We recommend that you perform them in advance.

  3. On your cloud MN in the CNC-MIGRATION directory, execute the pre-migration.py script. This script adds the URLs of CloudBlue Commerce 21.0 Helm repositories and disables online stores in the BSS database. To run the script, execute these commands:

    kubectl config use-context YOUR_AKS_CLUSTER
    export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
    python pre-migration.py --root-path `pwd`/pem
  4. On your cloud MN in the CNC-MIGRATION directory, review and adjust the config.yaml file:

    1. Make sure that the components.a8n-db.host, components.a8n-db.admin_user, and components.a8n-db.admin_password settings contain the domain name of your Azure Database for PostgreSQL server, the username of an admin user, and the password of that user.

    2. Define the format for hostnames of automatically created ingress rules. You can use one of these formats:

      • PREFIX.NAMESPACE_OF_YOUR_CBC_21_INSTALLATION.CLUSTER_DOMAIN

      • PREFIX.CLUSTER_DOMAIN_OVERRIDE

      where:

      • PREFIX is a service-specific auto-generated prefix.

      • NAMESPACE_OF_YOUR_CBC_21_INSTALLATION is the namespace of your CloudBlue Commerce 21.0 installation.

      • CLUSTER_DOMAIN is a domain specified in the cluster_domain setting.

      • CLUSTER_DOMAIN_OVERRIDE is a domain specified in the cluster_domain_override setting.

      If you specify a domain in the cluster_domain setting only, the first format will be used. If you specify a domain in the cluster_domain_override setting, the second format will be used regardless of whether the cluster_domain setting is specified or not.

      Examples of hostnames of automatically created ingress rules:

      • aps.cbc.example.com

      • aps.example.com

      Notes:

      - During the upgrade, an ingress rule for the incoming APS proxy will be automatically created in your AKS cluster.

      - To learn more about the incoming APS proxy, please refer to the APS SDK documentation.

    3. Make sure that the correct SMTP server settings are specified. To learn more about these settings, see this section.

    Note: This file will be used to deploy CloudBlue Commerce 21.0.

  5. During the upgrade, the old incoming APS proxy will be replaced with a new one. To prepare for this, perform these steps:

    1. Obtain the service IP address of the external ingress controller. To do this, on your cloud MN, execute these commands:

      kubectl config use-context YOUR_AKS_CLUSTER
      kubectl -n NAMESPACE_FOR_INFRASTRUCTURE_COMPONENTS get svc nginx-ingress-ingress-nginx-controller -o jsonpath="{.status.loadBalancer.ingress[].ip}"
    2. According to the format for hostnames of automatically created ingress rules that you chose previously, create an A DNS record for the new incoming APS proxy:

      • aps.NAMESPACE_OF_YOUR_CBC_21_INSTALLATION.CLUSTER_DOMAIN A SERVICE_IP_OF_EXTERNAL_INGRESS_CONTROLLER

      • aps.CLUSTER_DOMAIN_OVERRIDE A SERVICE_IP_OF_EXTERNAL_INGRESS_CONTROLLER

      Important: After you create that DNS record, make sure that the DNS name of the new incoming APS proxy is resolved to the respective IP address on the CloudBlue Connect side.

Step 13: Deploy CloudBlue Commerce 21.0

In your AKS cluster, deploy CloudBlue Commerce 21.0. To do this, on your cloud MN in the CNC-MIGRATION directory, execute these commands:

kubectl config use-context YOUR_AKS_CLUSTER
export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
helm install helmfile-deploy a8n/helmfile-deploy \
  -n $NAMESPACE \
  --set configYaml=$(cat config.yaml | base64 -w0) \
  --set namespace=$NAMESPACE \
  --set dockerrepo=odindevops-a8n-docker-21-public.jfrog.io

Note: During the deployment, the databases that you restored previously will be upgraded.

Step 14: Perform Post-deployment Activities

  1. On your cloud MN in the CNC-MIGRATION directory, run the post-migration.py script. This script:

    • copies UI configuration files and locales to the persistent volume of the UI and Branding component,

    • copies the BSS license to the persistent volume of the BSS component,

    • copies custom domain registration, fraud-screening and payment plugins to the persistent volumes of the Domain SDK, Payment SDK, and Fraud SDK components,

    • migrates brands to the UI and Branding component in your AKS cluster,

    • updates the URL of the APS incoming proxy in the database of the OSS component,

    • uninstalls all legacy service controllers (if any), and

    • restarts the OSS, BSS, UI and Branding, Domain SDK, Payment SDK, and Fraud SDK components.

    To run the script, execute these commands:

    kubectl config use-context YOUR_AKS_CLUSTER
    export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
    python post-migration.py --root-path `pwd`/pem
  2. Set the namespace of your CloudBlue Commerce 21.0 installation as default in the context of your AKS cluster. To do this, on your cloud MN, execute these commands:

    kubectl config use-context YOUR_AKS_CLUSTER
    kubectl config set-context --current --namespace=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
  3. In your AKS cluster, check that the status of all APSInstance custom resources is Ready. To do this, execute the following commands:

    kubectl config use-context YOUR_AKS_CLUSTER
    kubectl -n NAMESPACE_OF_YOUR_CBC_21_INSTALLATION get apsinstance

    If the status of an APSInstance custom resource is not Ready, you must fix this before performing the next step. For troubleshooting, see the logs of the following components: the component whose APSInstance custom resource is not ready, oss, and a8n-operator.

  4. After the upgrade, the APS REST API and OSS XML-RPC API are accessible through the oss-proxy LoadBalancer service, and the BSS XML-RPC API is accessible through the bss-xmlrpc LoadBalancer service. This means that you must update the URLs of those APIs in the configuration files of your application endpoints, custom scripts, and systems integrated with CloudBlue Commerce.

    Notes:

    - For some applications, you may need to update those API URLs in their application instance settings through the provider control panel.

    - If you created DNS records for the APS REST API, OSS XML-RPC API, and BSS XML-RPC API on your internal DNS servers, you must update IP addresses in those DNS records.

    To update the API URLs in the default configuration files of the application endpoints that are based on the APS PHP runtime, run the fix-aps-endpoints.py script on your cloud MN in the CNC-MIGRATION directory:

    export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
    kubectl config use-context YOUR_AKS_CLUSTER
    python fix-aps-endpoints.py

    Notes:

    - The script will ask you to provide administrative credentials to access your VMs through SSH.

    - The script automatically updates the /ets/hosts files in your VMs so that the hostnames in the API URLs point to the correct IP addresses.

  5. If you have the Microsoft 365 application installed, perform these steps:

    1. Obtain the load balancer IP address of the oss-proxy LoadBalancer service. To do this, execute these commands on your cloud MN:

      export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
      kubectl config use-context YOUR_AKS_CLUSTER
      kubectl get svc -n $NAMESPACE oss-proxy -o jsonpath={.status.loadBalancer.ingress[].ip}
    2. Obtain the load balancer IP address of the bss-xmlrpc LoadBalancer service. To do this, execute these commands on your cloud MN:

      export NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION
      kubectl config use-context YOUR_AKS_CLUSTER
      kubectl get svc -n $NAMESPACE bss-xmlrpc -o jsonpath={.status.loadBalancer.ingress[].ip}
    3. In the Azure VM running your Microsoft 365 application endpoint, add the following line to C:/Windows/System32/drivers/etc/hosts:

      LOAD_BALANCER_IP_ADDRESS_OF_OSS_PROXY_SERVICE oss-node-0.oss-dns

      Note: The hostname of the first OSS pod is oss-node-0.oss-dns. The APS controller uses that hostname in HTTP headers when communicating with application endpoints. For the Microsoft 365 application endpoints to resolve that hostname, you must manually update C:/Windows/System32/drivers/etc/hosts. For application endpoints that are based on APS PHP runtime, the fix-aps-endpoints.py script automatically updates the /ets/hosts files in your VMs.

    4. In settings of your Microsoft 365 application instances, specify the new IP addresses of the OSS and BSS APIs. For details, see the Microsoft 365 Provider's Guide.

  6. Ensure that your BSS pods and your BSS application server use the same time zone:

    • To check the time zone of your BSS pods, execute these commands on your cloud MN:

      kubectl config use-context YOUR_AKS_CLUSTER
      kubectl -n NAMESPACE_OF_YOUR_CBC_21_INSTALLATION exec -ti BSS_POD_NAME bash
      date
    • To check the time zone of your BSS application server, execute the date command on that server.
  7. In the provider control panel, in the task manager, run the UX1 Marketplace ... Plan indexer periodic task.
  8. In the provider control panel, ensure that the daily billing process has resumed.
  9. If you have brand domains whose DNS zones are not managed by CloudBlue Commerce, ensure that DNS records of those brand domains point to the load balancer IP address of the branding-ui-cluster-ui LoadBalancer service created in your AKS cluster.

  10. Important: Please note that upcoming End of Life has been announced for the XML RPC in CloudBlue Commerce. More details can be found here.

    To run scripts that use the OSS XML-RPC API, BSS XML-RPC API, and APS REST API on your cloud MN, update the configuration of poaupdater. To do this, on your cloud MN in the CNC-MIGRATION directory, execute these commands:

    kubectl config use-context YOUR_AKS_CLUSTER
    python generate_configs.py --namespace NAMESPACE=NAMESPACE_OF_YOUR_CBC_21_INSTALLATION

    As a result, this script updates the following configuration files:

    • /usr/local/pem/etc/Kernel.conf

    • /usr/local/pem/etc/pleskd.props

    • /usr/local/pem/etc/odbc.ini

    These configuration files contain the database and API credentials necessary for poaupdater.

    Also, the script updates the /usr/local/pem/APS/certificates/poa.pem certificate file. You or your scripts can use it to access the APS controller.

  11. If you use a custom PDF conversion tool on your CloudBlue Commerce installation, perform the instructions in this article.

  12. If your CloudBlue Commerce 20.5 servers, such as OSS MN, BSS application server, and system database servers, are no longer used by your CloudBlue Commerce 21.0 installation, consider removing them or decreasing their capacity.

    Note: To run various scripts that use the OSS XML-RPC API, BSS XML-RPC API, and APS REST API, you can use the cloud MN that you created for the upgrade.

CloudBlue, an Ingram Micro business, uses cookies to improve the usability of our site. By continuing to use this site and/or logging in you are accepting the use of these cookies. For more information, visit our Privacy Policy.