Help Center

Architecture of Pyrus Datacenter

Cloudless Pyrus

Pyrus Datacenter supports running on a single host or as a high availability cluster.

High availability cluster

Pyrus can run in a cluster with multiple nodes and load balancers. This is suitable for organizations that require high availability and scalability.

The typical architecture of a high availability cluster is shown below:

The cluster solution has the following advantages:

  • High availability and automatic failover: If one of the nodes in your application fails, other cluster nodes take over the load, ensuring app availability is not interrupted;

  • Horizontal scaling: As the system grows, each new node increases the number of concurrent users and reduces response time. You can also deploy nodes dedicated to specific functions.

To learn more about installing Pyrus Datacenter in high availability mode, visit the Pyrus Datacenter K8S repository page.

Launching on a single host

Pyrus on a single host is suitable if you:

  • are deploying a pilot for your first 200-300 users;
  • allow for a complete system maintenance shutdown.

The image below shows the architecture of Pyrus running on a single host:

The following set of docker containers is launched on the server.

web-apiMain service, processes user requests and API calls.
filesService for saving/downloading files.
bindService for sending events to users' web browsers.
identity-serverIdentification service.
mail-senderService for sending emails through the client's SMTP server.
mail-readerService for reading emails from mail integrations.
notification-serviceService for sending push notifications to mobile devices through pyrus.com.
async-workerService for processing asynchronous tasks.
schedulerService for executing regular tasks.
preview-generatorService for generating file previews.
postgresqlPostgres database, main data storage. Uses volume for data storage on disk. Authorization occurs through the Docker internal network via login/password.
elasticsearchElasticsearch search system, used for full-text search. Uses volume for data storage on disk. Authorization occurs through the Docker internal network via login/password.
natsMessage exchange bus between services. Authorization occurs through the Docker internal network via login/password.
nginxWeb server, terminates SSL connection and routes requests.
logsPostgres database, log storage. Uses volume for data storage on disk. Authorization occurs through the Docker internal network via login/password.

Was this article helpful?