For horizontal scalability, OutSystems 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 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.
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.
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.
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 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.