OutSystems is mainly used for developing applications with the newest techniques. However, the management of the environments is often neglected. This article shows whether the management of the OutSystems Platform is needed or not.

The OutSystems development platform runs as a layer on top of an existing infrastructure; it can be run on servers within data centers as well as virtual environments such as Azure and AWS. The applications are generated with .Net or Java. The platform where the .Net applications are running, is on Windows with IIS and the platform where the Java applications are running can be chosen from RedHat, CentOS or Oracle Linux with Wildfly or WebLogic.

The OutSystems development platform uses a database server, SQL and Oracle are the most common.

Adapted from OutSystems® Platform Architecture

As a separate layer, the management of the OutSystems platform, which is forgotten often, is necessary. It should be done besides the management of the infrastructure. While infrastructure managers consider the management of OutSystems as an application issue, application developers see this a task for the infrastructure administrators. Both groups are wrong. The management of OutSystems platform contains significant steps and requires specific knowledge. Otherwise, the environment and the applications run slower or give some errors.

The management of the OutSystems platform is split up into the following pieces:

1. Monitoring the various logs in ´Service Center` and the ‘environment health’

2. Distribution of applications to different application pools

3. Tracking and removal of old applications and application versions

4. Tracking of application analytics (LifeTime)

5. Using more than one database catalog

6. Using more than one zone in the environment

How can this management provide a more stable platform? It would be possible by executing the following recommendations:

1. Monitoring in Service Center

The overall status of the platform is in the Monitoring tab in Service Center.

Following logs are available there (depending on the version):

• Errors — errors that have occurred in the system or in the applications

• General — several matters that take place in the system, such as removed items and slow queries that appears

• Integrations — all incoming and outgoing API calls

• Mobile Apps — all traffic to and from a mobile App is showed here

• Environment Health — provides the status of the main functions of the platform

• Security — specifies the security issues that have occurred

Developers can influence how something is shown in the logs; they can specify an error or a signal in the code. They do not usually change the standard, which OutSystems defined by default. During the development, you should pay enough attention to this to prevent a huge flood of messages. For instance, you can switch off the ‘logging’ for the log-on into an application (it is turned on as a default).

The environment health screen shows the following:

The status of the most important services of the platform is displayed here. If something goes wrong, ! or X are appeared next to the relevant service. By clicking on detail, a screen appears that gives more information about the situation.

The benefits of monitoring are as following:

• You have a quick insight to the environment

• By taking action at the right time, serious problems might be prevented

2. Distribution of applications to different application pools

The default installation of the platform has only one application pool: OutSystemsApplications. In the installation checklist, it is recommended to create a separate application pool for Service Center and LifeTime. All the other applications are automatically placed in OutSystemsApplications. If an application causes the pool to crash or recycle, consequently all other applications will crash or recycle.

The usage of timers (batch mechanism in OutSystems) in an application can also cause a crash or recycle; if a timer takes too much capacity from the pool, other applications can be timed out. By creating more pools, problems caused by one application do not affect other applications. This keeps the problem isolated to one or a limited number of applications.

The benefits of applying multiple application pools are:

• The applications have less influence on each other

• The environment is more stable

3. Tracking and removal of old application or application versions

The OutSystems platform offers the ability to rapidly make some applications for a tryout. This can lead to a huge number of trial applications that will not be used anymore. To keep an overview and minimize the used space as much as possible, it is recommended to check the application’s list from time to time and clean up everything that is not necessary.

Each ‘publish’ of an application by the developer, leads to a new version of the software, which is stored in the database. This allows the developer to go back to an older version (undo) when it is required. The accumulated versions in the database of OutSystems will gradually make the database slower. By cleaning up old versions, the size of the database can be reduced and everything can work smooth again.

The benefits of regular cleaning are:

• The performance of the environment for developers stays high

• Clear overview of used applications

4. Application analytics tracking (LifeTime)

LifeTime gives the possibility to analyze the details of the applications. There is an APDEX (Application Performance Index) score per application that indicates how long a request takes. A request will split up into the client, network, and server time. You can zoom-in on the lowest element, so you can see which parts of the application used the most amount of time. This gives a developer information to improve the performance of the slowest parts of an application. The tool can also be used to verify the customer experience.

To check the performance (increase or decrease) in the desired timeframe, you can define a time slot. Performance changes can be linked to the application changes that have taken place in the same period.

Applying these steps, will assure that the environment remains in good order and the performance is under control. Of course, if the system runs for a long time, the number of applications grow, therefore changes to the server are necessary.

The benefits of using LifeTime Analytics are:

• Insight into applications that perform less

• Insight into which part of the application is losing performance

5. Using more than one database catalog

Default installation of the OutSystems platform uses one database catalog called Main. This catalog keeps the information about creating an application and all the application’s data.

If there is a problem with the database, for example a timer destroys all the user data of an application, you have to restore the complete database. However, what you did after the backup, will not be replaced with the restore.

Therefore, it is recommended to save the data of an application in different catalogs. You can also make tuned maintenance plans for an application and its lifecycle. These maintenance plans are mainly smaller and execute faster. The data related to the OutSystems applications stays in the Main catalog. By dividing the database the files will be smaller and have better performance.

The Modern Database Management Systems (DBMS) can do different tasks for different catalogs at the same time. So it is more efficient to use more than one catalog to utilize the strength of the DBMS.

The right to use a particular catalog can be given separately from the other rights. It is possible to give access to the data in a specific catalog to different people. This is useful when you have specific data that is only accessible to a few people.

It is also possible to switch to a new catalog, while there is data in an existing database. OutSystems can create the tables in the new catalog but will not move the data from the old tables to the new ones. This has to be done with scripts in the DBMS itself. It is possible to change the used catalog on the operations tab of the module. After the applying the changes you only have to publish the module again and the application will use the new catalog.

The benefits of using different catalog for the application data are:

• Smaller files, faster databases, and faster maintenance plans

• Split between OutSystems data and application data

• Make backup and restore easier

6. Using more than one Zone

After installing OutSystems Platform there is one standard zone; the global zone. It is possible to define more zones when you want, for example, use of a DeMilitarized Zone (DMZ). The zones are defined in the Administration tab of Service Center.

With infrastructure rules, you can define who can access to a specific front-end Server. A front-end server can be part of more than one zone. You cannot use direct references to a module that is in another zone.

One module can be only in one zone. It can be changed from the operational tab of a module in Service Center. After changing the zone, the deployment controller will publish this module. It only publishes to the front-end server, which is part of this zone. If the module is on more zones then the deployment controller will remove it from the front-end servers that are not in this zone. You cannot use direct references to a module that is in another zone because the application cannot find that module on this front-end server.

The benefits of using more than one zone are:

• You can use only applications which are necessary for that zone i.e. internal applications are not on a server connected to the Internet

• You can define several zones as many as you want

Conclusion

The initial installation of the OutSystems platform is not sufficient to ensure that the platform remains stable to run. It is necessary to maintain the platform to stay on the same stability. Otherwise, the performance declines slowly, problems increase, and eventually lead to the entire loss of the OutSystems platform.

The points mentioned in this article highlights the absolutely necessary steps for maintaining the OutSystems platform and keeping it in a good condition. It provides a more stable environment for the end users and developers while the performance remains high. This enables a better use of the platform and more satisfaction for all the (end) users.