Skip to main content

Deploying OutSystems

OutSystems

OutSystems Cloud services overview

When an organization subscribes to the OutSystems Cloud, it benefits from a portfolio of services to exploit the value of its subscription:

  • Additional environments for elastic release management: Organizations may subscribe to additional environments at any time for greater flexibility.

  • Horizontal scalability: OutSystems allows organizations to add additional front-end servers to any production environment to increase scalability and high availability.

  • Vertical scalability: Organizations can scale the computing power of their front-ends and databases.

  • Database storage: With OutSystems, organizations can add storage resources to their databases when needed.

  • Database backup and restore: All database data is backed up and maintained for 15 days and databases can be restored.

  • High availability database: For customers who want a database that is even more resilient to unplanned failures, OutSystems offers a high availability production database configuration.

  • High availability configuration and disaster recovery: OutSystems automates much of the work associated with disaster recovery and continuous availability solutions.

  • Data transfer: An OutSystems subscription includes 2 TB per year of free outbound data transfer.

  • Access to the underlying infrastructure and services: OutSystems provides organizations with several extension points and control options over the underlying infrastructure.

  • File storage: For organizations that are developing applications to manipulate large binary files, OutSystems offers features that address the two major strategies for file storage.

  • Software and stack updates: OutSystems takes care of the installation of new OutSystems platform and stack updates in all of an organization's environments and databases.

Service and user performance management is also part of the services. In OutSystems, system administrators, operation teams, and developers can manage, monitor and troubleshoot their organization's application portfolio in real time.

Additional environments for elastic release management

New environmentThe starter configuration of OutSystems is composed of one production environment and two non-production environments. However, an organization's infrastructure can grow to any number of environments. Additional environments might be needed to comply with governance policies, such as:

  • User acceptance testing environment, separated from your test environment, where users to verify if applications meet their requirements

  • Demonstration/training environment

  • Load/performance testing environment

  • Staging/pre-production environment with a replica that simulates as much of the production environment as possible.

Adding an environment to infrastructure has no impact on running applications. This operation automatically provisions a new OutSystems environment, allowing the deployment of applications and the monitoring of their performance and errors.

Additional production environments include one front-end server and one dedicated database server. Additional non-production environments include one front-end server and share the same database server as the remaining non-production environments.

Horizontal scalability

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

A load balancer automatically distributes incoming application traffic over 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 the unhealthy instances have been restored, increasing the fault tolerance of applications. 

load-balancer.png

Vertical scalability

With OutSystems, it is possible to seamlessly scale the computing power of front-ends and databases, which enables organizations to:

  • Better support developers as more are added to the team.

  • Temporarily increase the computing power of front-ends to finish processing computation-intensive jobs.

  • Enhance the processing power of the database to handle the increasing load caused by a growing application portfolio.

 

For vertical scalability in the OutSystems Cloud, the following options are available: 

Front-End Servers

Class 1 (Default)

2 Virtual Cores 

4 GB of memory

Class 2

4 Virtual Cores 

7.5 GB of memory

Class 3

8 Virtual Cores 

15 GB of memory

 

Database Servers

Class 1 (Default)

1 Virtual Core 

3.75 GB of memory 

Class 2

2 Virtual Cores 

8 GB of memory 

Class 3

4 Virtual Cores 

16 GB of memory

Class 4

4 Virtual Cores 

30.5 GB of memory 

Class 5

8 Virtual Cores 

61 GB of memory

OutSystems may dynamically and temporarily reduce the hardware specs of underutilized servers.

Database storage

OutSystems allows organizations to scale the storage resources of their database as they grow, which eliminates huge upfront investments and the need to plan costly database migrations. In OutSystems, it is easy to allocate additional database storage capacity, while maintaining database availability and with minimal impact to your running applications.

Database backup and restore

With the OutSystems, all database data is automatically backed up and maintained for 15 days. Backups are done with no downtime and a minimum impact. Subscribers can request a database restore to any point in time in those 15 days. From the backups, OutSystems is able to recover all application source versions, all configurations and application runtime data. The front-end server local file system is not backed up.

High availability database

OutSystems offers a high availability configuration for production databases, whereby the production database instance has a “standby” replica in a different availability zone. Database updates are made concurrently on the primary and standby databases to prevent replication lag. Should there be a database instance failure, planned database maintenance, or an availability zone failure, OutSystems will automatically failover to the up-to-date standby so that database operations can resume quickly without administrative intervention. (Prior to failover, it is not possible to directly access the standby database, nor can it be used to serve read traffic.)

high-availability-database.png

High availability configuration and disaster recovery

The public cloud deployment of OutSystems offers an availability service level of 99.9% and historically exhibits an actual availability of 99.99%.  For even higher availability, OutSystems offers two additional configuration options: fault-tolerant front-ends and database replica.

Fault-tolerant front-ends

Using the horizontal scalability service, OutSystems places additional front-ends in separate and isolated availability zones (but always in the organization-specified region). This has no performance impact on applications, since all availability zones in the same region are connected by special low-latency links. In the rare scenario of a data center disaster or failure, the availability of other front-end servers is not likely to be affected.

Database replica

For the high availability configuration, an organization's production database instance has a “standby” replica in a different availability zone, which automatically fails over to the up-to-date standby. Database operations can resume quickly after a failure or planned maintenance.

Data transfer

Data transfer is the amount of digital information that moves from an organization's OutSystems infrastructure to other systems or user devices and vice-versa.

Outbound data transfer

An OutSystems subscription includes 2 TB per year of free outbound data transfer. 

If more than the allotted outbound data transfer is needed, for example, due to a very large user base or applications that are rich in multimedia content, there will be a charge for each additional 1 TB of outbound data transfer.

Inbound data transfer

Unlimited inbound data transfer is included in an OutSystems subscription, so applications that involve large amounts of incoming data (for example, consumption of web services) are not a concern for subscribers.

Access to the underlying infrastructure and services 

OutSystems abstracts users from the underlying platform infrastructure for all operations. Nevertheless, in enterprise applications, we believe users should have as much control as possible. OutSystems is designed not to be a “black-box” where you cannot see or control what lies beneath the interface. Instead, it simplifies all operations, while still providing several extension points and control options over the underlying infrastructure.

When OutSystems is installed on-premises, it sits on top of the preferred application server and database management system (DBMS). Your IT team controls the entire underlying infrastructure and defines its own policies and processes to access it.

When organizations are using OutSystems in our public cloud, we manage their environments to guarantee their availability, but they still have the flexibility to do many of the operations they might want to do with their on-premises installations, like running queries directly in the database. Other options may require involving OutSystems (such as installing SSL certificates). And some are not possible at all because they could affect PaaS experience (such as writing to OutSystems internal tables and views), or could break automatic elasticity (such as installing custom software components in the machines where OutSystems is running). Integrations that require installing custom software in the servers can be achieved by importing the relevant libraries into an OutSystems extension. The following sections indicate the resources you have access to in our public cloud.

Database

The core of a business application is its data. Most data related operations - such as modeling, deploying changes, optimizing via indexes, querying/updating data and testing your queries - are provided by OutSystems in its visual modeling environment. Integration with external databases is also possible and, if needed, the OutSystems advanced query feature can be used to write complex SQL statements. There is seldom a need to access the database directly, but if it is needed, database clients, such as TOAD, Oracle SQL Developer, or Microsoft SQL Server Management Studio, can be used to directly access application databases to perform operations such as:

  • Read or write data in bulk to application tables (for example, deleting data in a development table).

  • Create and run database specific Extract, Transform and Load (ETL) processes to load data from files or external data sources (for example, to extract and load production data to the test environment).

  • Read data from the OutSystems platform metamodel. This can be helpful in advanced scenarios.

We do however protect our customers from making changes that could affect the health of their OutSystems Cloud. In that matter, we restrict them from writing or changing the OutSystems internal tables and views; manipulating the structure of database objects (tables/views/indexes); and creating database logic (such as functions, views, procedures) directly in the cloud database.

Application server

Customer infrastructure is automatically provisioned, abstracted and managed. To ensure optimum performance and reliability of the environments, there is no direct access to the servers through remote access or Telnet. However, extensibility mechanisms are built into OutSystems to allow users to explore the several native services provided by the underlying infrastructure: 

  • Extensions created in Integration Studio, enable users to write traditional code that is deployed, runs and is monitored as part of their application. This code can reuse local services and the entire scope of the runtime environment.

  • Access to a folder in the local file system of their environments can be requested, allowing users to create and access files from their organization's applications: 

    • This folder is specific to each front-end server. It cannot be accessed from another front-end in the OutSystems Cloud.

    • Applications can have access to the local folder in each front-end by means of the Filesystem extension. Direct access to the file system by FTP or a similar protocol is not allowed.

    • This folder is mainly used for uploading large files with seed data that the applications use, storing temporary application files and serving as a destination folder from third-party libraries that require reading or writing to the file system.

    • This folder is not backed up by OutSystems at any point in time. OutSystems customers who wish to store files persistently should use other options.

  • Configuration of low-level runtime settings (such as HttpRuntime parameters or custom handlers) can be achieved by deploying the Service Center Factory Configuration component.

File storage

Applications designed to run in OutSystems might need to manipulate large binary files. Examples include applications that allow documents to be stored or business processes with a step for uploading attachments. There are two major strategies for data storage.

Using the database to store large binary objects

OutSystems allows users to store BLOBs (binary objects) in the data model. This is designed visually in the applications and accessed via the built-in capabilities of OutSystems. This is the perfect scenario for the kind of files that are likely to be stored in a relational database. Since OutSystems backs the database up for its customers, their files are instantly secured. 

Using a component to integrate with an external file storage services

Online file storage services offer the scalability, reliability, and performance of full-blown cloud storage, enabling users to store files with several terabytes. It is possible to integrate with these services by creating their own extensions or reusing components already available in OutSystems Forge.

For instance, if users choose the Amazon S3 file storage service, they can use this Amazon S3 component, built by a member of the OutSystems community. This component encapsulates the Amazon S3 API in an extension that can be easily reused as a visual building block in applications.

This is a good option when filling a database with large amounts of binary information might create unnecessary (store and retrieve) load on the application server and database.

Even though OutSystems is running on AWS, the S3 service should be acquired directly from Amazon. 

Software and stack updates

OutSystems takes care of the installation of new OutSystems platform and stack updates, in all of its customers' environments and databases. OutSystems performs updates on a commonly agreed schedule to minimize business impact.

OutSystems users are still responsible for redeploying their applications from the OutSystems management console, and should accommodate any changes introduced in new major versions of OutSystems. Alternatively, an application upgrade service can be requested from OutSystems or one of its partners.