Skip to main content
OutSystems

Balanced Platform Upgrade on Highly Loaded OutSystems Farms

This guide presents the steps required to successfully upgrade an existing highly loaded OutSystems Platform farm environment. The upgrade and deployment process is balanced throughout the existing front-ends, guaranteeing no downtime for the applications.

Upgrading a highly loaded farm environment

In this procedure, some front-ends are disabled from the load balancer, thus not receiving new requests. Then, the front-ends which are not receiving traffic are upgraded.

When the upgrade process is finished, the load balancer is configured to only redirect traffic to the front-ends which are already upgraded, while the upgrade is performed to the remaining front-ends.

Once all front-ends are running the new version of the OutSystems Platform, the load balancer is configured to redirect traffic among all of them. By performing an incremental deployment, this process ensures no downtime.

In order to use this procedure the servers must be running at least the OutSystems Platform Server version 4.2 and, in case you are running the J2EE stack, the servers must be running at least the OutSystems Platform Server version 4.2.4.79.

This procedure requires operations to be executed in Service Center and at Operating System level (in the services management console). Additionally, it also assumes the existence of a network load balancing mechanism for distributing the application traffic between the front-ends.

In order to identify the several server profiles in the farm environment, please consider the following diagram, where the users access the applications through a load balancing mechanism. During the deploy procedure we will identify each of the front-end as updating or loaded:

  • An updating front-end will not have users accessing the Applications but will allow the platform and Application upgrade and deployment process to execute;
  • A loaded front-end will have users accessing its applications but will not allow the Application deployment process to execute. 

 

Note that, if the environment uses Zones for application segmentation, you must consider updating and loaded front-end profiles in each Zone. In that case, think of each Zone as if it were a distinct environment.

Also, the Controller server (the one running the Deployment Controller Service) must be included as part of the initial updating set. 

With this definition in mind, choose your updating and loaded front-ends. To improve the reliability of the procedure we recommend that the sets of updating and loaded front-ends are defined before the procedure, and that the procedure is annotated to have actual front-end/machine names so that it can be referenced during the execution of the upgrade.

To execute the upgrade, use the following steps:

Step Description Server

1

Disable the OutSystems Scheduler Service

  • .NET Stack:
    • In Windows’ Services management console (services.msc) stop and disable the OutSystems Scheduler Service. Confirm that the service stays stopped and disabled.
  • J2EE Stack:
    • In a command line, as user root, run the following command:
      # /opt/outsystems/platform/serviceconfigurator.sh -interactive
      and configure the OutSystems Scheduler Service to be disabled. Reply ‘Y’ to all services that are to be enabled, ‘N’ to all that are to be disabled;
    • The OutSystems Scheduler Service will be stopped automatically. Confirm that with the following command:
      # service outsystems status SCHEDULER
      The output must be similar to:
      OutSystems Scheduler Service                           - DISABLED

Do not start this service until instructed to do so. 

Updating Front-ends and Loaded Front-ends 

2

 

Set traffic on the load balancer to the loaded front-ends (remove the updating ones)

  • Access your Load Balancing management tool and remove application traffic from the Updating front-ends. 

Load Balancer

3

 

Disable deployment to loaded front-ends in Service Center

  • Access the environment’s Service Center and login with administrative privileges;
  • Go to the Administration -> Front-end Servers page. For each loaded Front-end access its details and press the Disable button

Loaded Front-ends

4

Follow the Platform Server installation checklist and upgrade the Deployment Controller Server and the updating front-ends

  • Follow the appropriate steps on a single Updating Front-end.

If the checklist instructs you to enable the OutSystems Scheduler Service, don’t do it now. 

Any Updating Front-end 

5

Test your applications on the updating front-ends

Access the applications on your updating front-ends to confirm their availability.

Updating Front-ends 

6

Set traffic on the load balancer to the updating front-ends

  • Access your load balancing management tool;
  • Add the updating Front-ends to start receiving application traffic;
  • Remove the loaded Front-ends so that they stop receiving application traffic. 

Load Balancer 

7

Start the OutSystems Scheduler Service

  • .NET Stack:
    • In Windows’ Services management console (services.msc), configure the OutSystems Scheduler Service’s startup type as Automatic and then start it.
  • J2EE Stack:
    • In a command line, as user root, run the following command:
      # /opt/outsystems/platform/serviceconfigurator.sh -interactive
      and configure the OutSystems Scheduler Service to be enabled. Reply ‘Y’ to all services that are to be enabled, ‘N’ to all that are to be disabled;
    • Start the OutSystems Scheduler Service with command:
      # service outsystems start SCHEDULER 

Updating Front-ends

8

Follow the Platform Server installation checklist and upgrade the loaded front-ends

Loaded Front-ends

9

Ensure that the OutSystems Deployment Service is running

  • .NET Stack:
    • In Windows’ Services management console (services.msc), ensure that the OutSystems Deployment Service’s startup type is configured as Automatic. Start the service if it is stopped.
  • J2EE Stack:
    • In a command line, as user root, run the following command:
      # service outsystems start DEPLOYER

Loaded Front-ends 
 

 

10

Access Service Center

In the Monitoring -> Platform Monitoring page, click the detail link for the Deployment service in each loaded front-end. Wait until the status of all threads is ‘Sleeping’. When this happens, the deployment process has finished to the loaded front-ends. 

Loaded Front-ends 

11

Reset Traffic on the load balancer to all Front-Ends

Access your load balancing management tool and add the loaded Front-ends to start receiving application traffic again.

Load Balancer 
 

12
 

‡ Start the OutSystems Scheduler Service 

  • .NET Stack:
    • In Windows’ Services management console (services.msc), configure the OutSystems Scheduler Service’s startup type as Automatic and then start it.
  • J2EE Stack:
    • In a command line, as user root, run the following command:
      # /opt/outsystems/platform/serviceconfigurator.sh -interactive
      and configure the OutSystems Scheduler Service to be enabled. Reply ‘Y’ to all services that are to be enabled, ‘N’ to all that are to be disabled;
    • Start the OutSystems Scheduler Service with the following command:
      # service outsystems start SCHEDULER 
       

Loaded Front-ends 

More information

Check the OutSystems Platform installation guide to learn more about requirements and recommended steps to install OutSystems Platform.

  • Was this article helpful?