Skip to main content

Deploying OutSystems Platform

OutSystems

OutSystems public cloud services overview

When an organization subscribes to OutSystems Platform, they benefit from the services specific to the public cloud offering of OutSystems Platform:

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

  • Horizontal scalability: OutSystems Platform 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 Platform, 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 Platform offers a high availability production database configuration.

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

  • Data transfer: An OutSystems Platform subscription includes 200 GB per month of free outbound data transfer per front-end.

  • Access to the underlying infrastructure and services: OutSystems Platform 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

lifetime-add-environments.pngThe starter configuration of OutSystems Platform 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 environment in OutSystems Platform, 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 Platform 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 Platform, 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 cloud, the following options are available: 

Front-End Servers
  .NET stack Java stack

Class 1

2 Virtual Cores 

4 GB of memory

2 Virtual Cores 

8 GB of memory

Class 2

4 Virtual Cores 

7.5 GB of memory

4 Virtual Cores 

16 GB of memory

Class 3

8 Virtual Cores 

15 GB of memory

8 Virtual Cores 

32 GB of memory

 

Database Servers

Class 1

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

Front-end servers of the same class differ between stacks due to higher system requirements in the Java version of OutSystems Platform. Similar responsiveness between stacks can be expected for front-ends of the same class. 

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

Database storage

OutSystems Platform 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 Platform, 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 platform, 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 Platform 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 Platform 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 Platform 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 are 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 Platform infrastructure to other systems or user devices and vice-versa.

Outbound data transfer

An OutSystems Platform subscription includes 200 GB per month of free outbound data transfer per front-end. If a production environment has three front-ends, its organization is entitled to 600 GB per month of 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 100 GB of outbound data transfer.

Inbound data transfer

Unlimited inbound data transfer is included in an OutSystems Platform 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 Platform 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 Platform 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 Platform 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 Platform 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 Platform internal tables and views), or could break automatic elasticity (such as installing custom software components in the machines where OutSystems Platform 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 Platform in its visual modeling environment. Integration with external databases is also possible and, if needed, the OutSystem Platform 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 PaaS. In that matter, we restrict them from writing or changing the OutSystem Platform 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 Platform to allow users to explore the several native services provided by the underlying infrastructure: 

  • Extensions created in Integration Studio, together with Eclipse or Microsoft Visual Studio, enable users to write native Java or C# 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 JEE or .NET frameworks.

  • 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 PaaS.

    • 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 Platform 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 Platform 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 OutSystem Platform. This is the perfect scenario for the kind of files that are likelty 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 DevOps console, and should accommodate any changes introduced in new OutSystems Platform major versions. Alternatively, an application upgrade service can be requested of OutSystems or one of its partners.