OutSystems Cloud services overview
Table of contents
- Additional environments for elastic release management
- Horizontal scalability
- Vertical scalability
- Database storage
- Database backup and restore
- High availability database
- High availability configuration and disaster recovery
- Data transfer
- Access to the underlying infrastructure and services
- File storage
- Software and stack updates
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 on select editions.
- Vertical scalability: OutSystems will ensure the correct computing power for your front-ends and databases on select editions.
- 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 on select editions.
- 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 unlimited 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
The 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 Environments include one front-end server for non-production environments, two front-end servers for production environments on selected editions. Additional environments also include one dedicated database server.
On select editions, 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.
On select editions, OutSystems will 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.
OutSystems may dynamically reduce the hardware specs of underutilized servers.
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 the OutSystems Cloud, additional database storage capacity is added as needed, 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 on select editions, 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 configuration and disaster recovery
The public cloud deployment of OutSystems offers an availability service level of 99.5% and historically exhibits an actual availability of 99.99%. For even higher availability of 99.95%, OutSystems provides an Enterprise Edition, containing two additional configurations by default: fault-tolerant front-ends and database replica.
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.
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 is the amount of digital information that moves from an organization's OutSystems infrastructure to other systems or user devices and vice-versa.
An OutSystems subscription includes unlimited free inbound and outbound data transfer.
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 client-side 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.
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.
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.
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.