Single Server

Posit Connect can be configured to run on a single server, without requiring any additional storage resources. The content data bundles are stored on the server, and the content processes run on the same server. This architecture is designed to provide a simple, cost-effective way to run Connect for small teams or organizations.

Architectural Overview

This implementation of Posit Connect includes the following components:

Because a standalone instance of Connect includes both the published application data and the internal Connect SQLite database, we recommend following your organization’s backup and retention strategies to maintain snapshots of the managed disk volume associated with this VM.

Architecture Diagram

Architecture Diagram

Nodes

This architecture utilizes a single Azure Virtual Machine running Posit Connect. During our performance tests, we used a Dv5 series VM running Ubuntu 22.04.

Refer to the Posit Connect Admin Guide for detailed information on system requirements and installation steps.

Database

SQLite is the default database provider for Posit Connect and does not require any additional setup. You can find more information about SQLite in the Admin Guide.

Performance

The Connect team is conducting performance testing on this architecture using the Grafana k6 tool. The workload consists of one virtual user (VU) publishing an R-based Plumber application repeatedly, while other VUs are making API fetch requests to a Python-based Flask application (using jumpstart examples included in the product).

The first test is a scalability test, where the number of VUs fetching the Flask app is increased steadily until the throughput is maximized. After noting the number of VUs needed to saturate the server, a second “load” test is run with that same number of VUs for 30 minutes, to accurately measure request latency when the server is fully utilized.

These tests demonstrate the capability of Connect to manage and serve applications to users. However, it is important to note that the computational footprint of the content used in testing was minimal. For most Connect installations, the majority of computational power is dedicated to the Python and R content that publisher-users deploy, rather than Connect itself. If your team is deploying lightweight apps, APIs, and jobs to Connect, our testing results are likely to be applicable. However, if your team is deploying APIs or apps that involve heavy-duty data processing, machine learning, or other computationally intensive tasks, you may want to consider one of our other architectures.