Skip to main content

Scalability

OutSystems

How does OutSystems Platform provide horizontal scalability?

For horizontal scalability, OutSystems Platform makes it easy to add additional front-end servers and network zones to any production environment. Along with providing high availability, this helps with the following scenarios:

  • Increased user load with more users or more frequent usage

  • Increased business logic complexity/load

  • Increased volume of batch processing

  • Increased data volume or number of transactions (database clustering)

Deploying additional front-end servers

OutSystems Platform automatically deploys additional front-end servers in a farm configuration and automatically syncs the applications in the environment to the new front-end servers. All front-end servers in the farm will log to the same centralized repository for efficient monitoring and troubleshooting.

Adding more front-end servers to an environment is a very simple process of installation and configuration. A team can add as many front-end servers as needed for unlimited horizontal scalability. With one click, the OutSystems Platform automatically synchronizes applications to the new front-end servers.

Instant installation and automatic deployment

Once front-end servers are configured, the OutSystems Platform deployment engine automatically deploys all applications to each of those servers. No user data or session information is stored locally in one single server. This allows teams to distribute any user request to any of the servers, increasing the redundancy and availability of the system. In case of a catastrophic failure, it's easy to safely replace any of the installed servers.

Centralized management

All front-end servers in the farm will log to the same centralized repository for efficient monitoring and troubleshooting in the Service Center.

Automated resources optimization and management

When building and managing distributed systems, developers are typically expected to follow the best development practices and assure minimal resources are consumed and to always keep those resources free. Unfortunately, a small mistake such as forgetting to close a reader can take the whole system down.

OutSystems Platform manages all this automatically, assuring no reader, connection, or transaction is left open and that minimal memory is used in all requests. Furthermore, ​OutSystems Platform uses resources smartly so that the system can get the most out of them. This alone reduces the risk of the system collapsing dramatically by removing human errors from the equation. It helps to build highly scalable systems without expensive distributed systems and without the need of technical knowledge for performance optimization.

High availability

A load balancer automatically distributes incoming application traffic across multiple front-end servers to spread the request load. It also detects unhealthy front-end servers in the production environment and automatically reroutes traffic to healthy instances until health is restored, increasing the fault tolerance of all applications. 

OutSystems Platform stores mobile and web user sessions in the session database, allowing multiple requests from the same user to be handled by any front-end server in a farm environment. ​The session database elements are configured on a dedicated database schema for improved performance and operations. The Platform uses the native session management services of the corresponding WAS stack (.Net or Java).

Network zones management

An organization can have multiple front-end servers and multiple network zones for each set of applications. Those front-end servers can be spread across various networks (internet, intranet and extranet), and applications can be deployed to distinct clusters of front-end servers as configured in the OutSystems Platform’s Service Center management console.

For instance, it's possible to have internal applications running on an internal network and websites running on a demilitarized zone.

  • Was this article helpful?