Skip to main content

Upgrade OutSystems Platform

OutSystems

Upgrade OutSystems Platform

Overview

The OutSystems ecosystem is divided into components with different release cycles: Platform Server, Development Environment and LifeTime Management Console. In this article we will focus on the upgrade of the core server part of OutSystems product, the Platform Server.

Upgrading your OutSystems environments to a new Platform Server version is a four-step process that requires preparation since it may impact your applications (all your applications will have a new version after the upgrade). The steps are: Analysis and Preparation, Planning, Execution, and Testing.

If you want to take this information offline, please check the Upgrade datasheet that describes the overall procedure detailed in this guide.

LifeTime Upgrade

Up to version OutSystems 10, upgrading OutSystems to a new major version means upgrading all the infrastructure - LifeTime management console and the application environments.

From version OutSystems 11 onwards, LifeTime is distributed independently from the Platform Server, which enables both components to have different upgrading paces.

When upgrading your infrastructure, make sure the LifeTime is the most the most up-to-date environment. If you’re running OutSystems 11 you can take advantage of its continuous update cycle. If you are running OutSystems 10 or previous, first you must upgrade your LifeTime Management console to the latest version.

Starting on version 11, LifeTime is only supported when installed in a dedicated environment. If you still have it installed in an application environment, please check the reinstallation guide.

 

Analysis and Preparation

Before we start the upgrade, we should always learn more about the specific release. Start by understanding what are the new features, improvements, and security and bug fixes.

Then, it’s important to assess the impact that the upgrade may have in your applications and infrastructure, checking the Side Effects and Breaking Changes documents:

Be sure to read all the documents that might impact your upgrade. For example, if you're upgrading from OutSystems platform 9.1 to 11, read the breaking changes for versions 10 and 11.

 

Planning

The second phase is the planning. Based on the breaking changes identified you should estimate how long it will take to perform all the needed code fixing, and to publish all the applications to the new version.

Make sure that your team is involved (Development Team and Test team will be needed) and plan ahead, so the upgrade is aligned with your release cycle.

An upgrade sprint should never break a development sprint!

An upgrade should always be between development sprints (if you have teams at a different speed, make the necessary adjustments).

Validate the best time to upgrade the Production environment and plan the remaining environment upgrades from there.

Upgrading the Platform Server of an environment or a set of environments should always follow the staging lifecycle of the applications in that infrastructure, so you should prepare your applications for a full staging from Development all the way to Production.

You have the freedom to choose the order that is most convenient for you and your customers. Sometimes, to best coordinate with the development teams and on-going projects, one can start with other non-production environment (e.g., pre-production) to fully validate the applications upgrade, and then upgrade the Production environment. Only after, upgrade the Development environment according to the development teams delivery sprints. Bottom line is, you should always upgrade and test your applications in a non-production environment before proceeding to the production environment.

For (Pre-)Production you should create a custom checklist containing all the requirements and steps to be executed in production, following a downtime or zero-downtime approach.

 

Execution

Once you have your Upgrade plan defined and the development and test teams allocated, you can then proceed with the Upgrade itself.

Starting on the Development environment, follow the procedure that corresponds to your installation type.

Upgrade Platform Server

OutSystems Cloud

In the OutSystems Cloud, the process of upgrading the Platform Server is handled by OutSystems, coordinating with you in every step of the way, to guarantee a successfully and as effortless as possible procedure, consisting of the following high-level steps.

  1. You can request the upgrade of your OutSystems Cloud infrastructure to a supported upper version, by opening a Support Case using any of the available mechanisms.

  2. OutSystems will promptly contact you to schedule and plan the Platform Server upgrade.

  3. OutSystems proceeds with the upgrade of the Platform Server component on the environment on the agreed schedule.

  4. Upgrade the remaining environments, preferably according to staging order, following the same procedure, with coordination between you and OutSystems to find the best schedule for each of the environments.

OutSystems is only responsible for the Platform Server upgrade. Once the OutSystems software (System Components included) is updated in the environment, the customer is responsible for:

Your Datacenter (On-Premises / Private Cloud)

If the environment is running in your own private cloud or on-premises, the upgrade process is fully managed by you, without the direct involvement of OutSystems. However, at any time you can ask OutSystems Support for assistance if you have any questions or get any errors in the process.​

The process is the following:

  1. Download the latest version of the Platform Server installer.

  2. Follow the Installation Checklist for the correspondent version. In the Installation Checklist (e.g., 10.0, 11.0), select “Upgrade to a new Major Release” (or “Upgrade to a new Release or Cumulative Patch” if you are just updating your environment), and follow the instructions.

  3. Follow the same procedure to upgrade the remaining environments, preferably according staging order.

Go Live Strategies

When upgrading the Platform Server you should take into account that the environment is literally under maintenance. That being said, if you already have Live applications, this process may impact them and, as such, you should define a strategy for the upgrade of your Production environment, based on the priority of your applications.

Downtime Upgrade

A Downtime approach is the safest way to perform an upgrade and advised when there are no business requirements for zero-downtime. By stopping the production environment and preventing end-users access, the Upgrade process consistency is guaranteed, and a rollback can happen with no data loss.

Zero-Downtime Upgrade

A Zero-Downtime Upgrade is like changing a car engine without stopping the car itself. Which means that if you need to rollback, you will most certainly have data loss. To perform a Zero-Downtime Upgrade, with success, your environment requires multiple Front Ends in each OutSystems Zone. If you don’t have this feature enabled you can’t proceed with this solution. The Upgrade process is done by:

  1. Disabling the Front-end servers in Service Center.
  2. Upgrade the platform in the controller node.
  3. In the load balancer disconnect half of front-end servers in each zone.
  4. Upgrade those servers and then enable them in Service Center
  5. Switch the active Front-End servers in the Load Balancer to the upgraded ones
  6. Upgrade the remaining Front-End servers.
  7. Finally, reconnect all servers to the Load Balancer.

Upgrade Development Tools

Download and install the correspondent development tools in the developers’ workstations.

Upgrade Applications to the new version

At this stage, it’s important the teams availability in order to perform all the needed code fixing (solving breaking changes) and testing.

Once the Platform Server is upgraded you should upgrade your applications, republishing all the modules to the last version, according the following scenarios:

  • On the development environment, the fastest way to upgrade all your applications is by creating a Solution with all modules and Publish the "Current Running Version". If you get any errors publishing the solution, use the appropriate development tool to open the correspondent module and fix the problems. In the end, you can publish the whole solution again to make sure all issues and dependencies are properly resolved.

  • For non-development environments it’s recommended to stage the application modules from a previously upgraded environment. Using Service Center (https://YOUR_ENVIRONMENT/ServiceCenter), download the solution and publish it in the new environment, ensuring you don’t overwrite System Components. LifeTime management console can also be used to stage upgraded applications, when the lifecycle of the applications is perfectly aligned with the upgrade.

Have in mind that this approach for non-development environments is only applicable when the version of the applications on the previous environment is stable and ready to be staged to the next environment (upgrade must be aligned with your release cycle). If that’s not the case you should perform a code-based upgrade, doing all the fixing and testing directly in each environment.

 

Testing

Finally, you should create and run tests to assure that your applications hot-points are not affected by the upgrade. Test your applications (screens, workflows, operations, etc.), check for application errors or background issues in Service Center’s Errors Log, to guarantee that all the applications are running as expected.

This article guides in how you can upgrade your OutSystems Platform to a new major or minor version. You'll be able to assess the upgrade process, understand its impacts, and plan it accordingly. 

Before you start

To learn more about a specific release, check the What's New document for that version:

To assess the impact an upgrade to a new major version may have in your applications, check the Side Effects and Breaking Changes documents:

Be sure to read all the documents that might impact your upgrade. For example, if you're upgrading from OutSystems Platform 8 to 10, read the breaking changes for the versions 9, 9.1, and 10.

Overview

Upgrading an environment or a set of environments to a new OutSystems Platform major release should always follow the staging lifecycle of the applications in that infrastructure. If your infrastructure has a dedicated Management Console (Lifetime) environment, then you first need to upgrade that environment, otherwise, just upgrade each environment by the order of your staging procedures. Most of our customers upgrade their environments in the same order they push their developments to Production, for example:

Development > Testing > Pre-Production > Production

But you have the freedom to choose the order that is most convenient to you and your customers. Sometimes, to best coordinate with the development teams and on-going projects, one can start with other non-production environment (.e.g., pre-production) to fully validate the applications upgrade, and then upgrade the Production environment. Only after, upgrade of the Development environment according to the development teams delivery sprints. Bottom line is, you should always upgrade and test your applications in a non-production environment before proceeding to production environment.

The overall process of upgrading an OutSystems Platform environment is:

  1. Upgrade the Platform Server of the environment;
     
  2. Upgrade the development tools (Development client tools in the downloads page) of developers who publish applications in the environment;
     
  3. Republish all modules according to one of the following scenarios.

    A) When performing an upgrade to a new major version, do the following:
    • If you are upgrading a development environment, republish all modules to update them, so they use the corrections and improvements from the new version. Typically, a solution with all the extensions and eSpaces should be used in Service Center to update all modules at once.
    • In non-development environments, it's unadvised to republish all modules. Instead, it's recommended to stage the solution from a previously upgraded environment. In the previous environment, download the solution using Service Center and publish it in the new environment, ensuring that you do not overwrite System Components. 

    B) When performing an update to a new minor version, do the following:
    • Republish all modules in your environment to update them, so they use the corrections and improvements from the new version. In a production environment, this should be done with developer supervision. Typically, you should use a solution in Service Center containing all extensions and eSpaces to update all the modules at once.

Upgrading the OutSystems Platform 

To execute the upgrade of the OutSystems Platform, you should follow the correspondent guide below, either you're upgrading an OutSystems Platform environment in datacenter or in the OutSystems Cloud.

Don't know which guide to follow? You can ask OutSystems Support for assistance.

Upgrading your applications

To upgrade your applications after upgrading an OutSystems Environment, please refer to the article Upgrade your application to a new OutSystems Platform version.