- Primeros pasos
- Requisitos
- Mejores prácticas
- Instalación
- Actualizando
- Servidor de identidad
- High Availability Add-on
Hay muchas opciones de implementación de nube empresarial disponibles para alojar tu Orchestrator, como Amazon Web Services (AWS), Microsoft Azure o Google Cloud Platform (GCP). Aquí detallamos una implementación grande y escalable utilizando la oferta de infraestructura como servicio (IaaS) de Azure. Los siguientes servicios son necesarios:
- Conjunto de disponibilidad de VM para Orchestrator
- Conjunto de disponibilidad de máquina virtual para Elasticsearch
- Azure SQL Server
- Azure Load Balancer
- Azure Redis Cache for multi-node deployments
- Servicio DNS distribuido (como Cloudflare)
Arquitectura
Los siguientes ejemplos de arquitectura contienen componentes opcionales o diversos (p. ej., CyberArk, UiPath High Availability Add-on).
El Jumpbox que se muestra no es necesario pero es una práctica recomendada para tus entornos de producción que ofrece aislamiento y seguridad.
Arquitectura de un solo nodo
Arquitectura multinodo
Requisitos de hardware
This section describes the hardware configurations used for the performance testing listed in Scaling Your Deployment, below.
Nodos de Orchestrator
Cada nodo de Orchestrator debe configurarse de la siguiente manera:
| VCPUs | RAM (GB) | SSD (GB) |
|---|---|---|
| 16 | 32 | 128 |
Servidor SQL
Las especificaciones de la máquina virtual de SQL Server deben escalar en línea con el número de nodos de Orchestrator:
| Nodos de Orchestrator | VCPUs | RAM (GB) |
|---|---|---|
| 1-2 | 8 | 16 |
| 5 | 16 | 32 |
| 10 | 16 | 64 |
Conjunto de disponibilidad de Elasticsearch
El conjunto de disponibilidad de Elasticsearch está compuesto de 3 nodos maestros y 6 nodos de datos; un total de 9 nodos, cada uno con las siguientes especificaciones:
| VCPUs | RAM (GB) | OS SSD (GB) | Data SSD (TB) |
|---|---|---|---|
| 8 | 16 | 128 (con 5000 IOPS y 100 MB/s de capacidad de proceso) | 1 (con 5000 IOPS y 200 MB/s de capacidad de proceso) |
Requisitos de software
| Software | Versión |
|---|---|
| Sistema operativo | Windows Server 2016 |
| Bases de datos | SQL Server 2017 |
| Registro | Elasticsearch 6.4.0 |
The versions listed above are those used for the deployments and performance tested loads described. For all versions compatible with Orchestrator, see here.
Equilibrio de carga
Para implementaciones multinodo, se recomienda utilizar dos equilibradores de carga estándar de Azure:
- Uno para los servidores de Orchestrator;
- Uno para los servidores Elasticsearch.
Azure Redis Cache
Multi-node Orchestrator deployments use the RESP (REdis Serialization Protocol) for communication, and thus can be configured using any solution implementing this protocol, such as Azure Redis Cache in this example.
UiPath solo admite las implementaciones de alta disponibilidad de Orchestrator si se usa la adición de alta disponibilidad de UiPath.
Para implementaciones multinodo, recomendamos utilizar dos instancias de Redis separadas:
- Azure Redis Cache Premium con una caché de 6 GB: el nodo primario utilizado para las asociaciones de estado de la sesión y de entidades de usuario;
- Azure Redis Cache Basic: utilizado para escalar el servicio de SignalR.
Configuración
Ajustes UiPath.Orchestrator.dll.config
-
Establece todos los nodos de Orchestrator para informar a Elasticsearch en lugar de sus respectivos registros de sucesos de Windows, estableciendo para ello el parámetro
writeToen el índiceserverdiagnosticsasí:<logger name="*" minlevel="Warn" writeTo="serverElasticBuffer"/><logger name="*" minlevel="Warn" writeTo="serverElasticBuffer"/> -
Habilita el agrupamiento de trabajos de Quartz:
<add key="quartz.jobStore.clustered" value="true" /><add key="quartz.jobStore.clustered" value="true" /> -
En la sección de Implementación, establece el repositorio de NuGet de este modo:
<add key="NuGet.Repository.Type" value="Composite" /> <add key="Deployment.Libraries.AllowTenantPublish" value="true" /> <add key="Processes.AllowUpdateWithRunningJobs" value="true" /><add key="NuGet.Repository.Type" value="Composite" /> <add key="Deployment.Libraries.AllowTenantPublish" value="true" /> <add key="Processes.AllowUpdateWithRunningJobs" value="true" /> -
En la sección del Equlibrador de cargas, configura las instancias Redis de la siguiente manera, asegurándote de reemplazar la cadena de conexión y la contraseña con tus valores respectivos:
<add key="LoadBalancer.UseSqlServer" value="false"/> <add key="LoadBalancer.UseRedis" value="true"/> <add key="LoadBalancer.Redis.ConnectionString" value="<your.redis.cache.windows.net>:6379,password=****"/> <add key="LoadBalancer.SignalR.UseRedisScaleout" value="true"/> <add key="LoadBalancer.SignalR.RedisScaleout.ConnectionString" value="<your.second.Redis.Server>:6379,password=********"/><add key="LoadBalancer.UseSqlServer" value="false"/> <add key="LoadBalancer.UseRedis" value="true"/> <add key="LoadBalancer.Redis.ConnectionString" value="<your.redis.cache.windows.net>:6379,password=****"/> <add key="LoadBalancer.SignalR.UseRedisScaleout" value="true"/> <add key="LoadBalancer.SignalR.RedisScaleout.ConnectionString" value="<your.second.Redis.Server>:6379,password=********"/> -
Establece el
Max Pool Sizeen la cadena de conexión de bases de datos de la siguiente manera:<add connectionString="Data Source=172.16.100.12;Initial Catalog=UiPath;User ID=admin;Password=*******;Max Pool Size=700" name="Default" providerName="System.Data.SqlClient" /><add connectionString="Data Source=172.16.100.12;Initial Catalog=UiPath;User ID=admin;Password=*******;Max Pool Size=700" name="Default" providerName="System.Data.SqlClient" />Nota:Be sure to replace the
Data Source,Initial Catalog,User ID, andPasswordparameters with the respective values of your Orchestrator Azure service. See here for more details. -
Establece el tamaño del buffer de Elasticsearch de la siguiente manera:
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="5000"><target name="robotElasticBuffer" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="5000">
Scaling Your Deployment
El número de nodos necesarios en tu conjunto de escalado de Orchestrator dependerá del número de UiPath Robots que se implementan:
| Nodos del conjunto de escalado de Orchestrator | N.° de UiPath Robots |
|---|---|
| 1 | Hasta 40 000 |
| 2 | Hasta 8000 |
| 5 | Hasta 24 000 |
| 10 | Hasta 48 000 |
Estas implementaciones se han probado utilizando las configuraciones de hardware y software anteriores para demostrar que no hay pérdida de rendimiento con la carga especificada a continuación.
Pruebas de rendimiento
Datos estáticos
Datos estáticos hace referencia a la carga inicial existente de Orchestrator.
| Entidad | Un nodo | Dos nodos | Cinco nodos | Diez nodos |
|---|---|---|---|---|
|
Tenants |
40 |
80 |
240 |
480 |
|
Entornos |
2000 |
4 000 |
12 000 |
24 000 |
|
Robots
|
4 000
|
8 000
|
24 000
|
48 000
|
|
Paquetes |
8 000 |
16 000 |
48 000 |
96 000 |
|
Procesos |
4 000 |
8 000 |
24 000 |
48 000 |
|
Colas |
200 |
420 |
1200 |
2400 |
|
Artículos en cola |
1.120.000 |
1 500 000 |
3 000 000 |
5 000 000 |
|
Activos |
40 000 |
80 000 |
240 000 |
480 000 |
|
Programaciones |
400 |
800 |
2400 |
4800 |
Datos dinámicos
Los datos dinámicos se refieren a los datos añadidos o cambiados en Orchestrator mientras se ejecutan los procesos.
| Entidad | Un nodo | Dos nodos | Cinco nodos | Diez nodos |
|---|---|---|---|---|
| Elementos de la cola (por día) | 112 000 | 175,000 | 672 000 | 1 250 000 |
| Trabajos (por minuto) | 2000 | 4 000 | 12 000 | 24 000 |
| Registros (por minuto) | 20,000 | 20,000 | 20,000 | 25,000 |
| Descargas NuGet (máximo por minuto) | 2000 | 4 000 | 12 000 | 24 000 |
| UiPath Robots conectados (máximo) | 4 000 | 8 000 | 24 000 | 48 000 |
| Latidos (por minuto) | 10,000 | 20,000 | 60,000 | 120,000 |
| Notificaciones de SignalR (por minuto) | 2000 | 4 000 | 12 000 | 24 000 |
| UiPath Robots ocupados | 2000 | 4 000 | 12 000 | 24 000 |
| UiPath Robots disponibles | 2000 | 4 000 | 12 000 | 24 000 |
- Arquitectura
- Arquitectura de un solo nodo
- Arquitectura multinodo
- Requisitos de hardware
- Nodos de Orchestrator
- Servidor SQL
- Conjunto de disponibilidad de Elasticsearch
- Requisitos de software
- Equilibrio de carga
- Azure Redis Cache
- Configuración
- Ajustes UiPath.Orchestrator.dll.config
- Escalar tu implementación
- Pruebas de rendimiento