Package Manager Architectures

Using Package Manager on a single server

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

  • Multiple users to install packages from Package Manager

graph LR
u1(User)
u2(User)
b1(RStudio Session)
b2(Jupyter Session)
connect(Connect)
ppm(Package Manager)

u1---b1
u2---b2
b1---ppm
b2---ppm
connect---ppm

subgraph server[Linux Server]
ppm
end


classDef server fill:#FAEEE9,stroke:#ab4d26
classDef product fill:#447099,stroke:#213D4F,color:#F2F2F2
classDef session fill:#7494B1,color:#F2F2F2,stroke:#213D4F
classDef element fill:#C2C2C4,stroke:#213D4F

class server server
class connect,b1,b2,ppm product
class u1,u2 element

Using Package Manager as a cluster

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

  • Multiple users to install packages from Package Manager
  • High availability to provide redundancy

Requirements to support this architecture:

  • Application data must be stored on an external shared file server (typically an NFS server)
  • Application metadata must be stored on an external PostgreSQL database server

flowchart LR
u1(User)
u2(User)
b1(RStudio Session)
b2(Jupyter Session)
lb(Load Balancer)
connect(Connect)
ppm1(Package Manager)
ppm2(Package Manager)
lb(Load Balancer)
pg(Postgres)
nfs(Shared Storage)

u1---b1
u2---b2
b1---lb
b2---lb
connect---lb

subgraph server1 [Linux Server]
ppm1
end

subgraph server2 [Linux Server]
ppm2
end

lb---server1
lb---server2
server1-.-pg
server2-.-pg
server1-.-nfs
server2-.-nfs

classDef server fill:#FAEEE9,stroke:#ab4d26
classDef product fill:#447099,stroke:#213D4F,color:#F2F2F2
classDef session fill:#7494B1,color:#F2F2F2,stroke:#213D4F
classDef element fill:#C2C2C4,stroke:#213D4F
classDef req fill:#72994E,stroke:#1F4F4F

class server1,server2 server
class ppm1,ppm2,connect,b1,b2 product
class lb session
class u1,u2 element
class pg,nfs req