How does OutSystems provide horizontal scalability?

Table of contents

  1. Deploying additional front-end servers
  2. High availability
  3. Containers

For horizontal scalability, OutSystems makes it easy to add additional front-end servers to any production environment. This helps in the following scenarios:

  • High availability

  • 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 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, OutSystems automatically synchronizes applications to the new front-end servers.

Instant installation and automatic deployment


Once front-end servers are configured, the OutSystems 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 manages all this automatically, assuring no reader, connection, or transaction is left open and that minimal memory is used in all requests. Furthermore, OutSystems uses resources intelligently 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 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. OutSystems uses the native session management services of the application server stack.

Containers


Customers that standardize system administration around container technology can get the same benefits of horizontal and automatic scaling and deployment, and high availability through their container orchestrator.