How does OutSystems sustain high scalability?
Table of contents
- Distributed architecture
- High availability and fault tolerance
- Network zone management
- Automated resource optimization and management
Outsystems is designed to scale as applications grow in usage and complexity. It's easy to start with small departmental apps and grow to large internet-wide deployments with more than 1 million users. To sustain high scalability, the distributed architecture of OutSystems supports load balancing and removes single points of failure in the execution environment. It also supports network zone management and uses automated resource optimization and management to avoid traditional methods of ensuring an application consumes few resources, while freeing the resources not being used.
The distributed architecture consists of:
- A deployment server that performs all code generation, configuration and version updates.
- Horizontal scalability that enables the addition of as many front-end servers as needed, all of which are accessed by end users via a load balancer.
The deployment server ensures that applications are consistently installed across all front-end servers.
High availability and fault tolerance
An experienced webmaster or enterprise architect is not needed to set up the environment for high availability and fault tolerance. The OutSystems management consoles allow teams to easily manage multiple front-end servers. Once front-end servers are configured, the OutSystems deployment engine automatically deploys all of an organization's applications to each of those servers.
No user data or session information is stored locally in one single server. System redundancy and availability is increased by equal distribution of any user request to any of the servers. In case of a catastrophic failure, a team can safely replace any of the installed servers.
Network zone management
It's often useful to have front-end servers configured to only receive requests from a specific network (internet, intranet, extranet), or to handle the load of a specific geographic region. This ensures the security and performance of applications.
In the OutSystems management consoles, it's easy to group front-end servers into clusters, and choose which applications are deployed to those clusters.
For example, it's possible for internal applications to run on a single front-end server that's only accessible from the internal network. If an organization has applications available to customers running on multiple front-ends, they can ensure those apps are accessible from a DMZ (demilitarized zone),
Automated resource optimization and management
The risk of creating highly scalable applications with traditional technology is human error. If an application handles millions of hits, a small mistake such as forgetting to close a reader can take the whole system down.
OutSystems avoids human error by assuring that no reader, connection, or transaction is left open. It optimizes the source code it generates to ensure applications use as few resources as possible. Enterprises large or small don't need expensive distributed systems or technical knowledge to get the best performance.