Generic Architectures for Posit Package Manager

The architectures below represent general architectures for Posit Package Manager, providing a mental model for different deployment options and the requirements to support each variation.

Specific reference architectures organized by target environment are also detailed within this chapter of the Administration Guide, discoverable using the left navigation pane.

Target environments

Posit Package Manager can be deployed on-premises or within a cloud environment.

Package Manager on a single server

In this configuration, Package Manager is installed on a single Linux server and enables:

  • Users to install Python and R packages from Package Manager.
  • Deployed content to install Python and R packages from Package Manager.

Generic architecture

The diagram below shows both users and deployed content downloading packages from Package Manager. These are representative clients, as Package Manager is used to provide packages to any client requiring Python or R packages.

Generic Architecture Single Server

Package Manager in a load-balanced cluster

EnhancedAdvanced

In this configuration, Package Manager is installed on two or more Linux servers and enables:

  • Users to install Python and R packages from Package Manager.
  • Deployed content to install Python and R packages from Package Manager.
  • High availability to provide redundancy.

Requirements

  • Files must be stored on external shared storage (typically an NFS server or S3).
  • The database provider must be an external PostgreSQL database server.

Generic architecture

The diagram below shows both users and deployed content downloading packages from Package Manager. These are representative clients, as Package Manager is used to provide packages to any client requiring Python or R packages.

Multiple Package Manager instances deployed behind load balancer

Package Manager in a Kubernetes cluster

Advanced

In this configuration, Package Manager is installed in a Kubernetes cluster using a Posit-maintained Helm chart.

This enables:

  • Users in Python and R development sessions and deployed Python and R content to install packages from Package Manager.
  • Replica redundancy for multiple instances of the Package Manager service Pod.

Requirements

  • Files must be stored on external shared storage (typically an NFS server or S3) (can be inside or outside Kubernetes).
  • The database provider must be an external PostgreSQL database server (can be inside or outside Kubernetes).

Generic architecture

The diagram below shows both users and deployed content downloading packages from Package Manager. These are representative clients, as Package Manager is used to provide packages to any client requiring Python or R packages.

Package Manager running in a Kubernetes cluster

Package Manager networking

Package Manager requires outbound internet access to the Posit Package Service to receive package updates. The Posit Package Service is an online service located at https://rspm-sync.rstudio.com. For installations where such connectivity is not possible, even through an outbound proxy, (e.g., air-gapped or classified networks), Package Manager provides an offline downloader which performs bulk downloads of data from the Package Service.

With connectivity

Package Manager with internet connectivity

No connectivity

Advanced

Package manager without internet Connectivity

Back to top