UiPath Documentation
automation-suite
2.2510
true
Automation Suite on OpenShift installation guide

Overview

Architecture and topology for Active/Passive and Active/Active Automation Suite deployments.

Diagrams​

The following diagram depicts a regular Active/Passive deployment of Automation Suite:

Requirements​

The following hardware and infrastructure components are required for a multi-site deployment.

Global Traffic Manager (GTM)​

The GTM distributes traffic across your Automation Suite multi-site deployment. It must be highly available and immune to failure at any single deployment site. The GTM must also support health checks that isolate a faulty site quickly. The GTM is not mandatory, but it is recommended for a quick switchover.

When configuring the GTM for Active/Passive deployments, use /orchestrator_/api/status as the health endpoint. This is critical for effective disaster recovery management.

Load balancer​

Every site needs a local load balancer that can load-balance traffic to any node configured in the same site.

Both sites must have an identical number of nodes. For each site, you must configure the cluster and nodes using the documentation in Kubernetes cluster and nodes. For details, refer to Automation Suite Install Sizing Calculator.

SQL database​

An external SQL server is required to store the data. For disaster recovery, you need Always On Availability Groups (or Amazon RDS's MSSQL with ReadReplica) with a primary SQL server in Site 1 and at least one secondary SQL server (ReadReplica) physically located in Site 2, with data sync enabled. A SQL listener is deployed on top of the SQL server, and both clusters are configured to use the address of the same listener.

PostgreSQL database​

Process Mining, Autopilot for Developers, and Temporal as a Service (TaaS) require an external PostgreSQL server. For disaster recovery, only the Autopilot for Developers databases must be replicated to the secondary site. The Process Mining/Airflow database does not require cross-site replication, but a PostgreSQL instance is still required at each site. TaaS is not supported in the secondary cluster; it is supported only in the primary site in an Active/Passive deployment.

Configure a primary PostgreSQL server in Site 1 with physical streaming replication to at least one read-only replica in Site 2, or use the managed provider's replication feature, such as Amazon RDS Read Replicas, Aurora PostgreSQL Global Database, or Azure Database for PostgreSQL Flexible Server geo-replicas.

PostgreSQL supports only one writable primary at a time, so both the active and passive clusters must use the current primary database endpoint. During disaster recovery, once the Site 2 replica is promoted to primary, update the database endpoint in both sites to point to the newly promoted primary. To simplify failover, use a DNS record for the database endpoint and update it during failover.

Objectstore​

Any files or packages uploaded to products are stored in the objectstore. For greater resilience to failure, Automation Suite deployments require an external objectstore.

For effective disaster recovery, two objectstore instances are required, one in each data center. At any given time, only one objectstore instance must be actively used for reading and writing by both clusters, complemented by asynchronous replication to the secondary instance.

Temporal as a Service (TaaS)​

If Maestro is enabled, only one cluster can actively run TaaS at a time. On the passive cluster, scale all TaaS deployments to zero replicas. If both clusters connect to the same PostgreSQL persistence store simultaneously, lock contention occurs and degrades performance. For details, refer to Temporal as a Service troubleshooting.

Load balancer and DNS configuration​

This section outlines the DNS architecture and routing logic for a system designed to operate in both normal and disaster recovery scenarios.

DNS architecture​

To facilitate traffic management and cluster-specific service accessibility, two tiers of DNS configuration are employed.

  • FQDN: The application FQDN is the primary domain used by end users to access the application interface. This value corresponds to the fqdn field in input.json. For details, refer to Active/Passive configurations.
  • Cluster-specific FQDNs: In addition to the main application FQDN, each cluster requires its own FQDN for administrative and monitoring tools. This value is defined under the cluster_fqdn field in each cluster's input.json. For details, refer to Active/Passive configurations.
  • Subdomains: For comprehensive service access, a set of subdomains is configured for both the application FQDN and each cluster-specific FQDN. These include:
    • FQDN:
      • apps.<domain> - used by Apps.
      • insights.<domain> - used by for Insights.
    • Cluster-specific FQDN:
      • alm.<domain> - used by ArgoCD and for deployment management. This is required for both Active (primary) and Passive (secondary) clusters.
      • monitoring.<domain> - used for observability and alerts. This is required for both Active (primary) and Passive (secondary) clusters.All subdomains are directed to the same load balancer as their respective root domain to maintain consistency and ease of routing.

DNS routing logic​

The DNS routing logic ensures that user traffic is directed to the appropriate load balancer depending on the system state

  • either during normal operation or disaster recovery.
  • Normal Operations (Primary Cluster is Active) In standard operation mode, DNS routes traffic as described in the following table:

    FQDN typeRouting target
    FQDNPrimary Cluster Load Balancer
    Primary Cluster FQDNPrimary Cluster Load Balancer
    Secondary Cluster FQDNSecondary Cluster Load Balancer
  • Disaster Recovery (Secondary Cluster is Active) If the primary cluster fails, the system enters disaster recovery mode. In this state, DNS is adjusted to ensure service continuity:

    FQDN typeRouting target
    FQDNSecondary Cluster Load Balancer
    Primary Cluster FQDNPrimary Cluster Load Balancer*(unchanged)*
    Secondary Cluster FQDNSecondary Cluster Load Balancer*(unchanged)*

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated