- Introdução
- Requisitos
- Melhores práticas
- Instalação
- Atualizando
- Servidor de Identidade
- High Availability Add-on
Há várias opções de implantação de nuvem empresarial disponíveis para hospedar seu Orchestrator, como a Amazon Web Services (AWS), Microsoft Azure ou Google Cloud Platform (GCP). Aqui detalhamos uma implantação grande e escalonável usando as ofertas do Azure Infraestrutura como Serviço (IaaS). Os seguintes serviços são necessários:
- Conjunto de disponibilidade da VM para Orchestrator
- Conjunto de Disponibilidade de VM para Elasticsearch
- Azure SQL Server
- Balanceador de carga do Azure
- Azure Redis Cache for multi-node deployments
- Serviço DNS distribuído (como o Cloudflare)
Arquitetura
Os exemplos de arquitetura abaixo contêm componentes opcionais e/ou diferentes (por exemplo, CyberArk, Suplemento de Alta Disponibilidade da UiPath).
O Jumpbox apresentado não é necessário, mas é uma prática recomendada para seus ambientes de produção, fornecendo isolamento e segurança.
Arquitetura de nó único
Arquitetura de vários nós
Requisitos de Hardware
This section describes the hardware configurations used for the performance testing listed in Scaling Your Deployment, below.
Nós do Orchestrator
Cada nó do Orchestrator deve ser configurado da seguinte maneira:
| VCPUs | RAM (GB) | SSD (GB) |
|---|---|---|
| 16 | 32 | 128 |
SQL Server
As especificações da máquina virtual do SQL Server devem ser escaladas de acordo com o número de nós do Orchestrator:
| Nós do Orchestrator | VCPUs | RAM (GB) |
|---|---|---|
| 1-2 | 8 | 16 |
| 5 | 16 | 32 |
| 10 | 16 | 64 |
Conjunto de Disponibilidade do Elasticsearch
O conjunto de disponibilidade do Elasticsearch é composto de 3 nós mestre e 6 nós de dados, para um total de 9 nós, cada um com as seguintes especificações:
| VCPUs | RAM (GB) | OS SSD (GB) | Data SSD (TB) |
|---|---|---|---|
| 8 | 16 | 128 (com 5000 IOPS e 100 MB/s Throughput) | 1 (com 5000 IOPS e 200 MB/s Throughput) |
Requisitos de software
| Software | Versão |
|---|---|
| Sistema Operacional | Windows Server 2016 |
| Bancos de dados | SQL Server 2017 |
| Geração de logs | 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.
Balanceamento de carga
Para implantações de vários nós, é recomendável usar dois balanceadores de carga Azure Standard:
- Um para os servidores do Orchestrator;
- Um para os 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.
As implantações de alta disponibilidade do Orchestrator são suportadas pelo UiPath somente se o complemento UiPath High Availability for usado.
Para implantações de vários nós, é recomendável usar duas instâncias separadas do Redis:
- Azure Redis Cache Premium com um cache de 6 GB - nó principal usado para estado de sessão e associações entre entidade e usuário;
- Azure Redis Cache Basic - usado para escalonar o serviço SignalR.
Configuração
Configurações do UiPath.Orchestrator.dll.config
-
Defina todos os nós do Orchestrator para relatar ao Elasticsearch em vez de seus respectivos Logs de Evento do Windows definindo o parâmetro
writeTono índiceserverdiagnosticsda seguinte maneira:<logger name="*" minlevel="Warn" writeTo="serverElasticBuffer"/><logger name="*" minlevel="Warn" writeTo="serverElasticBuffer"/> -
Habilitar o agrupamento de trabalhos do Quartz da seguinte maneira:
<add key="quartz.jobStore.clustered" value="true" /><add key="quartz.jobStore.clustered" value="true" /> -
Na seção Implantação, configure o repositório NuGet da seguinte maneira:
<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" /> -
Na seção Balanceamento de Carga, configure as instâncias do Redis da seguinte maneira, certificando-se de substituir a string de conexão e a senha pelos seus respectivos valores:
<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=********"/> -
Defina o
Max Pool Sizena string de conexão do banco de dados da seguinte maneira:<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" />Observação: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. -
Defina o tamanho de buffer do Elasticsearch da seguinte maneira:
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="5000"><target name="robotElasticBuffer" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="5000">
Scaling Your Deployment
O número de nós necessários no seu conjunto de escala do Orchestrator depende do número de Robôs que estão sendo implantados:
| Nós do Conjunto de Escala do Orchestrator | Núm. de Robôs |
|---|---|
| 1 | até 4.000 |
| 2 | até 8.000 |
| 5 | até 24.000 |
| 10 | até 48.000 |
Essas implantações foram testadas usando as configurações de hardware e software acima para exibir nenhuma perda de desempenho sob a carga especificada abaixo.
Teste de desempenho
Dados estáticos
Dados estáticos se referem à carga inicial existente do Orchestrator.
| Entidade | Um nó | Dois nós | Cinco nós | Dez nós |
|---|---|---|---|---|
|
Tenants |
40 |
80 |
240 |
480 |
|
Ambientes |
2.000 |
4.000 |
12.000 |
24.000 |
|
Robôs
|
4.000
|
8.000
|
24.000
|
48.000
|
|
Pacotes |
8.000 |
16.000 |
48.000 |
96.000 |
|
Processos |
4.000 |
8.000 |
24.000 |
48.000 |
|
Filas |
200 |
420 |
1.200 |
2.400 |
|
Itens de Fila |
1.120.000 |
1.500.000 |
3.000.000 |
5.000.000 |
|
Ativos |
40.000 |
80.000 |
240.000 |
480.000 |
|
Agendamentos |
400 |
800 |
2.400 |
4.800 |
Dados dinâmicos
Os dados dinâmicos se referem aos dados adicionados ou alterados no Orchestrator, pois os processos são executados.
| Entidade | Um nó | Dois nós | Cinco nós | Dez nós |
|---|---|---|---|---|
| Itens de fila (por dia) | 112.000 | 175,000 | 672.000 | 1.250.000 |
| Trabalhos (por minuto) | 2.000 | 4.000 | 12.000 | 24.000 |
| Logs (por minuto) | 20,000 | 20,000 | 20,000 | 25,000 |
| Downloads do Nuget (máximo por minuto) | 2.000 | 4.000 | 12.000 | 24.000 |
| Robôs conectados (máximo) | 4.000 | 8.000 | 24.000 | 48.000 |
| Pulsação (por minuto) | 10,000 | 20,000 | 60,000 | 120,000 |
| Notificações SignalR (por minuto) | 2.000 | 4.000 | 12.000 | 24.000 |
| Robôs ocupados | 2.000 | 4.000 | 12.000 | 24.000 |
| Robôs disponíveis | 2.000 | 4.000 | 12.000 | 24.000 |
- Arquitetura
- Arquitetura de nó único
- Arquitetura de vários nós
- Requisitos de Hardware
- Nós do Orchestrator
- SQL Server
- Conjunto de Disponibilidade do Elasticsearch
- Requisitos de software
- Balanceamento de carga
- Azure Redis Cache
- Configuração
- Configurações do UiPath.Orchestrator.dll.config
- Escalando sua Implantação
- Teste de desempenho