OutSystems Cloud architecture
Table of contents
- Infrastructure provider
- Starting environment configuration
- Supported stack configurations
- Infrastructure geography
- Infrastructure multi-tenancy isolation
With a subscription to OutSystems Cloud, an organization's infrastructure is automatically provisioned, configured and tuned for high availability, performance, security and reliability:
- Infrastructure provider: The physical infrastructure of OutSystems Cloud is hosted in the secure data centers of Amazon Web Services.
- Starter environment configuration: The starting configuration for OutSystems Cloud is one production environment and two non-production environments.
- Supported stack configurations: OutSystems Cloud allows organizations to choose their preferred database engine (Microsoft SQL or Oracle).
- Infrastructure geography: OutSystems Cloud gives organizations the freedom to deploy their applications on an infrastructure that is physically distributed around the globe.
- Infrastructure multi-tenancy isolation: Support for multi-tenancy—hosting multiple customers (or tenants) efficiently in the platform layer while keeping them isolated—is a basic aspect of OutSystems.
Amazon Web Services (AWS) is the market leader and the most mature public cloud infrastructure as a service (IaaS). It has enterprise-grade availability with guaranteed service levels of 99.9%, and it is the IaaS technology that has been accredited by the largest number of security compliance standards.
Although OutSystems Cloud runs on Amazon AWS, customers are not locked-in to a single IaaS vendor. The OutSystems platform internal architecture abstracts the IaaS layer, which enables portability between IaaS vendors.
Starting environment configuration
The starting configuration for OutSystems includes three environments:
Multiple environments enable organizations to develop and test the functionality of their applications and integration before deploying them to production or releasing them to customers. Environment separation also allows better access control. There is less risk in development. Making a mistake in a development database is different from making a mistake in a production database, for example. In scenarios with sensitive personal data, the data is protected because development and QA teams do not use this data in their tests.
The starter configuration is adequate for a team of up to five developers who are doing their usual daily work. In production, it is capable of serving up to 30 requests per second and supporting approximately 600 concurrent users based on benchmarking against a well-designed and scalable application.
The physical architecture of the starter configuration includes the following:
- Development, test and production front-end servers. Each front-end server is an isolated virtual instance with a set of resources well-suited for developing and running mobile and web applications with OutSystems. Each front-end server has 4 GB of memory and 2 virtual cores.
- Management (lifetime) front-end server. The management front-end server is a virtual instance, isolated from the other environments, with 4 GB of memory and 2 virtual cores.
- Database servers. Each database server is a virtual relational database instance with 8 GB or memory, 2 virtual cores and 100 GB of storage capacity.
- Virtual private cloud (VPC). The VPC service provides a logically isolated private network for an organization's OutSystems environments. This allows the cloud environments to communicate with the organization's on-premises systems over an IPsec VPN tunnel, thereby enabling organizations to leverage OutSystems as a secure and seamless extension to their data centers.
If additional scalability is needed to meet performance requirements, the OutSystems Cloud infrastructure can be scaled on demand.
Supported stack configurations
OutSystems deploys applications to a standard operating system and application server, without any proprietary runtime engine.
For the database engine, the options are Oracle or Microsoft SQL Server. Organizations can take full advantage of their underlying capabilities by using either the OutSystems visual query capabilities or the tools they already have.
The visual modeling capabilities abstract the underlying stack and ensure portability between stacks. OutSystems allows developers to:
- Deploy their own existing traditional code and libraries to OutSystems so they can easily reuse logic they have previously built.
- Create components in traditional code that can use the full scope of the underlying stack. OutSystems automatically catalogs these components and makes them available to other developers who can then use them to assemble new applications visually.
- Package integration adapters written in native languages and deploy them to OutSystems. Once deployed, these custom integration adapters become available as new visual building blocks that developers can use in their applications.
This extensibility makes OutSystems very flexible and enables developers to leverage existing development skills, while deploying code to the cloud, instead of having to comply with complex and custom cloud-deployment containers. It is also a great benefit should an organization decide to migrate from our public cloud infrastructure to its own data center or to a different IaaS provider. This architecture will never lock an organization to a particular cloud or deployment model.
When subscribing to OutSystems, organizations choose the region(s) they will be using. The following regions are available:
- In Asia Pacific: Sydney, Singapore, and Tokyo
- In Europe/Middle East/Africa: Ireland, Frankfurt, and London
- In the Americas: United States (Northern Virginia and Oregon), and Canada
Whenever possible, organizations should consider locating their OutSystems instance in a region that reduces distance (and latency) to optimize application performance and data transfers.
For more details, see Choosing the AWS Regions for an OutSystems Cloud deployment.
Additionally, to meet legal requirements, organizations can select the regions to ensure that specific data resides in a specific region.
Infrastructure multi-tenancy isolation
In the OutSystems Cloud, multi-tenancy is provided by the underlying AWS IaaS and its virtual machines logically isolated from other tenants. At the database level, the multi-tenancy is assured by the Amazon Relational Database Service (Amazon RDS), where each database instance operates logically isolated. Additionally, OutSystems prevents cross-tenant access by making sure each tenant's front-ends and database instances share a Virtual Private Cloud exclusive to the tenant.
This VPC isolation is preserved even when scaling resources. The OutSystems infrastructure can grow to accommodate demand spikes or additional capacity with no impact on other customers, and OutSystems guarantees that the additional resources will be part of the customer’s VPC.
Each OutSystems customer's applications share the customer's common isolated set of environments and are deployed independently of each other, even though they share the same resources. The entire application portfolio shares the same optimized infrastructure and scales evenly as new computing resources are added.