- 基本情報
- 要件
- ベスト プラクティス
- インストール
- 更新
- Identity Server
- High Availability Add-on
アマゾン ウェブ サービス (AWS)、Microsoft Azure、Google Cloud Platform (GCP) など、Orchestrator をホストするために使用できる複数のエンタープライズ クラウド デプロイ オプションがあります。ここでは、Azure Infrastructure as a Service (IaaS) サービスを使用した大規模で拡張可能なデプロイについて詳しく説明します。次のサービスが必要です。
- Orchestrator 用の仮想マシン可用性セット
- Elasticsearch の仮想マシン可用性セット
- Azure SQL Server
- Azure Load Balancer
- Azure Redis Cache for multi-node deployments
- 分散 DNS サービス (CloudFlare など)
アーキテクチャ
下記のアーキテクチャの例には、任意のコンポーネントや異なるコンポーネント (CyberArk、UiPath High Availability Add-on など) が含まれています。
ここに示した Jumpbox は必須ではありませんが、分離性と安全性を提供するため、運用環境に推奨されるベスト プラクティスです。
シングル ノード アーキテクチャ
マルチノード アーキテクチャ
ハードウェア要件
This section describes the hardware configurations used for the performance testing listed in Scaling Your Deployment, below.
Orchestrator ノード
各 Orchestrator ノードは次のように構成する必要があります。
| VCPUs | RAM (GB) | SSD (GB) |
|---|---|---|
| 16 | 32 | 128 |
SQL Server
SQL Server 仮想マシンの仕様は、Orchestrator ノードの数に合わせて拡張する必要があります。
| Orchestrator ノード | VCPUs | RAM (GB) |
|---|---|---|
| 1 - 2 | 8 | 16 |
| 5 | 16 | 32 |
| 10 | 16 | 64 |
Elasticsearch 可用性セット
Elasticsearch 可用性セットは、3 つのマスターノードと 6 つのデータノード、合計 9 つのノードで構成され、それぞれ次の仕様を備えています。
| VCPUs | RAM (GB) | OS SSD (GB) | Data SSD (TB) |
|---|---|---|---|
| 8 | 16 | 128 (5000 IOPS 100 MB/s のスループット) | 1 (5000 IOPS 200 MB/s のスループット) |
ソフトウェア要件
| ソフトウェア | バージョン |
|---|---|
| オペレーティング システム | Windows Server 2016 |
| データベース | SQL Server 2017 |
| ログ | 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.
負荷分散
マルチノード デプロイの場合、2 つの Azure Standard ロード バランサーを使用することをお勧めします。
- Orchestrator サーバー用に 1 つ。
- Elasticsearch サーバー用に 1 つ。
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 では、Orchestrator の高可用性デプロイは、UiPath High Availability Add-on が使用されている場合にのみサポートされます。
マルチノードデプロイの場合、2 つの個別の Redis インスタンスを使用することをお勧めします。
- 6GB キャッシュを備えた Azure Redis Cache Premium - セッション ステートとユーザー エンティティの関連付けに使用されるプライマリ ノード。
- Azure Redis Cache Basic - SignalR サービスのスケーリングに使用されます。
構成
UiPath.Orchestrator.dll.config の設定
-
次のように
serverdiagnosticsインデックスのwriteToパラメーターを設定して、それぞれの Windows イベント ログではなく Elasticsearch にレポートするようにすべての Orchestrator ノードを設定します。<logger name="*" minlevel="Warn" writeTo="serverElasticBuffer"/><logger name="*" minlevel="Warn" writeTo="serverElasticBuffer"/> -
次のように Quartz ジョブクラスタリングを有効化します。
<add key="quartz.jobStore.clustered" value="true" /><add key="quartz.jobStore.clustered" value="true" /> -
[デプロイ] セクションで、次のように NuGet リポジトリを構成します。
<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" /> -
[ロード バランサー] セクションで、Redis インスタンスを次のように構成します。接続文字列とパスワードをそれぞれの値に置き換えてください。
<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=********"/> -
次のようにデータベース接続文字列で
Max Pool Sizeを設定します。<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" />注: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. -
Elasticseach のバッファー サイズを次のように設定します。
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="5000"><target name="robotElasticBuffer" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="5000">
Scaling Your Deployment
Orchestrator スケールセットに必要なノードの数は、デプロイされているロボットの数によって異なります。
| Orchestrator スケール セット ノード数 | ロボット数 |
|---|---|
| 1 | 4,000 まで |
| 2 | 8,000 まで |
| 5 | 24,000 まで |
| 10 | 48,000 まで |
これらのデプロイは、上記のハードウェアとソフトウェアの構成を使用してテストされ、以下の指定された負荷の下でパフォーマンスの低下を示しませんでした。
パフォーマンス テスト
静的データ
静的データは、Orchestrator の初期負荷があることを示します。
| エンティティ | 1 ノード | 2 ノード | 5 ノード | 10 ノード |
|---|---|---|---|---|
|
テナント |
40 |
80 |
240 |
480 |
|
環境 (ロボット グループ) |
2,000 |
4,000 |
12,000 |
24,000 |
|
ロボット
|
4,000
|
8,000
|
24,000
|
48,000
|
|
パッケージ |
8,000 |
16,000 |
48,000 |
96,000 |
|
プロセス |
4,000 |
8,000 |
24,000 |
48,000 |
|
キュー |
200 |
420 |
1,200 |
2,400 |
|
キュー アイテム |
1,120,000 |
1,500,000 |
3,000,000 |
5,000,000 |
|
アセット |
40,000 |
80,000 |
240,000 |
480,000 |
|
スケジュール |
400 |
800 |
2,400 |
4,800 |
動的データ
動的データは、プロセスの実行時に Orchestrator に追加または変更されるデータを指します。
| エンティティ | 1 ノード | 2 ノード | 5 ノード | 10 ノード |
|---|---|---|---|---|
| キュー アイテム (1 日当たり) | 112,000 | 175,000 | 672,000 | 1,250,000 |
| ジョブ (1 分当たり) | 2,000 | 4,000 | 12,000 | 24,000 |
| ログ (1 分当たり) | 20,000 | 20,000 | 20,000 | 25,000 |
| NuGet のダウンロード (1 分当たりの最大値) | 2,000 | 4,000 | 12,000 | 24,000 |
| 接続されたロボット (最大値) | 4,000 | 8,000 | 24,000 | 48,000 |
| ハートビート (1 分当たり) | 10,000 | 20,000 | 60,000 | 120,000 |
| SignalR 通知 (1 分当たり) | 2,000 | 4,000 | 12,000 | 24,000 |
| 実行中のロボット | 2,000 | 4,000 | 12,000 | 24,000 |
| 使用できるロボット | 2,000 | 4,000 | 12,000 | 24,000 |