distribute-spacing-horizontal水平スケーリング

バージョン3.5.6から、Server Proは水平スケーリングをサポートしています。

このドキュメントは技術要件を列挙し、複数ノードでServer Proを実行するためのガイドラインを提供します。

triangle-exclamation

水平スケーリングの設定には相当の作業が必要です。ある規模に達したときに水平スケーリングを検討することをお勧めします。 のみ 例として、合計1000ユーザー向けのServer Proインストールは、2つの4コアプロセッサと32GBのシステムメモリを備えた単一サーバで問題なくセットアップされています。詳細は ハードウェア要件 のドキュメントを参照してください。

水平スケーリングされたServer Proのデプロイには、ロードバランサやS3互換のストレージバックエンドなど一連の外部コンポーネントが関与します。

当社は、設定ミスによって生じる可能性のあるServer Proコンテナ内のエラーのトラブルシューティングを支援し、本ドキュメントに基づく一般的なアドバイスを提供できます。ただし、サードパーティのアプリケーション/システムの設定支援は提供できません。

外部コンポーネントを提供するためのハードウェア/ソフトウェア固有の技術的問題の解決は、当社のサポート範囲に含まれません。

要件

外部の中央データストレージ

Server Proのデータストレージは4つのデータストアに分割できます:

  • MongoDB

    • データの大部分はMongoDBに永続化されます。

    • ローカルインスタンスか、次のような外部インスタンスのいずれかをサポートします、 MongoDBarrow-up-right Atlas(AWSインフラ上で動作するフルマネージドMongoDBサービス)。

    注: 残念ながら、現時点ではCosmoDB/DocumentDBのようなMongoDB互換データベースに対する公式サポートはありません。Server Proをそれらでテストしていないためです。互換データベースでServer Proをデプロイすることは 可能 かもしれませんが、公式にサポートしているのはMongoDBを使用したデプロイのみです。

  • Redis

    • Redisは、一時的なデータ、例えばMongoDBにフラッシュされる前の保留中のドキュメント更新を格納します。

    • Redisは、異なるサービス間でドキュメント更新を伝達し、特定プロジェクトの状態変化をエディタに通知するために使用されます。

    • Redisはユーザーセッションの保存にも使用されます。

    • ローカルインスタンスか外部インスタンスのいずれかをサポートします。

    注: 残念ながら、KeyDB/ValkeyのようなRedis互換のキー/バリューストアについて公式サポートは現時点ではありません。Server Proでそれらをテストしていないためです。互換ストアでServer Proをデプロイすることは 可能 可能

  • かもしれませんが、公式にサポートしているのはRedisを使用したデプロイのみです。

    S3互換のデータストレージシステムをサポートします。 重要: 使用してはいけません NFS/Amazon EFS/Amazon EBSは 水平スケーリングでサポートされています。詳細はServer Proのストレージスケーリングに関する ハードウェアストレージ

  • の要件セクションを参照してください。

    • エフェメラルファイル

    • 最適なパフォーマンスのために、LaTeXのコンパイルは高速なローカルディスクで実行する必要があります。コンパイルの出力は永続化やバックアップを必ずしも必要としません。

triangle-exclamation

ローカルディスクの使用を強く推奨します。NFSやEBSのようなネットワークディスクを使用すると、予期せぬコンパイルエラーやその他のパフォーマンス問題が発生する可能性があります。

circle-info

Git-bridge

Git-bridgeはServer Pro 4.0.1から利用可能です。 Gitリポジトリはローカルディスクに保存されます。レプリケーションオプションはありません。Git-bridgeはシングルトン

として実行する必要があります。最適なパフォーマンスのため、git-bridgeデータにはローカルディスクの使用を推奨します。git-bridgeのデータディスクは定期的にバックアップする必要があります。

  • 水平スケーリングでのデータストレージには、次が必要です:

  • すべてのServer Proインスタンスからアクセス可能な中央のMongoDBインスタンス

  • すべてのServer Proインスタンスからアクセス可能な中央のRedisインスタンス

  • プロジェクトおよび履歴ファイル用の中央のS3互換ストレージバックエンド

  • 各インスタンスにおけるエフェメラルファイル用のローカルディスク

git-bridgeデータ用にgit-bridgeコンテナをホストするインスタンスのローカルディスク

chevron-rightX-Forwarded-Proto: httpshashtag

Server Proの設定

シークレット

  • Server Proインスタンスは共有シークレットに合意する必要があります: WEB_API_PASSWORD

  • (ウェブAPI認証) および STAGING_PASSWORD V1_HISTORY_PASSWORD

  • 同じ値(履歴認証) CRYPTO_RANDOM

  • (セッションクッキー用) OT_JWT_AUTH_KEY

(履歴認証)

これらすべてのシークレットはそれぞれ固有の値で設定され、インスタンス間で共有される必要があります。

設定されていない場合、ユーザーのリクエストが異なるServer Proインスタンスにルーティングされると認証チェックに失敗し、頻繁にログインページにリダイレクトされたり、UIでの操作が予期せず失敗したりします。 設定されていない場合、Server Proは各シークレットに対して新しいランダム値を /dev/urandom

MongoDB

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev | tr -d '\n+/' OVERLEAF_MONGO_URL (もしあなたが ポイント OVERLEAF_* バージョン

Redis

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev | tr -d '\n+/' OVERLEAF_REDIS_HOST (およびそれ以前)は中央のMongoDBインスタンスを指すようにしてください。 ポイント OVERLEAF_* SHARELATEX_REDIS_HOST REDIS_HOST およびそれ以前)および

中央のRedisインスタンスを指すようにしてください。

プロジェクトおよび履歴ファイル用のS3互換ストレージ S3 互換ストレージ 詳細についてはドキュメントの

の要件セクションを参照してください。

を参照してください。 /var/lib/overleaf (ローカルSSDのデフォルトのバインドマウント先は ポイント OVERLEAF_* /var/lib/sharelatex SANDBOXED_COMPILES およびそれ以前)で十分です。ホスト上のマウントポイントを必ず

triangle-exclamation

ローカルディスクの使用を強く推奨します。NFSやEBSのようなネットワークディスクを使用すると、予期せぬコンパイルエラーやその他のパフォーマンス問題が発生する可能性があります。

  • プロキシの設定 設定してください (OVERLEAF_BEHIND_PROXY=true ポイント OVERLEAF_* SHARELATEX_BEHIND_PROXY

  • プロキシの設定 およびそれ以前)は正確なクライアントIPのために。 TRUSTED_PROXY_IPS

ロードバランサのIPに設定してください(複数のCIDRはカンマで区切って指定できます)。

circle-info

Git-bridge

Git-bridgeの統合

git-bridgeコンテナは受信するgitリクエストを処理するための兄弟Server Proコンテナを必要とします。この兄弟コンテナは通常のユーザートラフィックも処理できます。サンプル構成では最初のインスタンスがgit-bridgeの兄弟コンテナとして働きますが、実際にはどのインスタンスでもその役割を果たせます。

なぜgit-bridgeのために1つのServer Proコンテナを兄弟として指定する必要があるのか?Server Proは履歴サービス用のダウンロードURLをgit-bridgeに渡します。これらの履歴URLがgit-bridgeコンテナからアクセス可能であるように設定する必要があります。

  • プロキシの設定 Server Proコンテナの設定: から GIT_BRIDGE_ENABLED

  • プロキシの設定 'true' から GIT_BRIDGE_HOST <git-bridgeコンテナ名> git-bridge

  • プロキシの設定 例: から 8000

  • プロキシの設定 GIT_BRIDGE_PORT から V1_HISTORY_URL.

    http://<server-proの兄弟コンテナ名>:3100/api

注:これはgit-bridgeコンテナの兄弟コンテナ上でのみ必要です。他のインスタンスはデフォルトのlocalhostのURLを使用できます。

  • プロキシの設定 git-bridgeコンテナの設定: から GIT_BRIDGE_API_BASE_URLで、例えば http://<server-proの兄弟コンテナ名>/api/v0

  • プロキシの設定 http://server-pro-ha-1/api/v0 から GIT_BRIDGE_OAUTH2_SERVERで、例えば http://<server-proの兄弟コンテナ名>

  • プロキシの設定 http://server-pro-ha-1 から GIT_BRIDGE_POSTBACK_BASE_URLで、例えば http://<git-bridgeコンテナ名>:8000

  • プロキシの設定 http://git-bridge:8000 GIT_BRIDGE_ROOT_DIR バインドマウントされたgit-bridgeデータディスクを指す、例えば

chevron-right/data/git-bridgehashtag

docker-compose.ymlのサンプル構成 OVERLEAF_SITE_URL (SHARELATEX_SITE_URL ポイント OVERLEAF_* 以下の構成は自己完結型のセットアップを示しています。デモを動作させるには有効なSSL鍵/証明書を用意し、

ipv4_address: 198.18.0.4

ハードウェア

水平スケーリングに参加するすべてのServer Proインスタンスで同じハードウェア仕様を使用することを推奨します。 一般的な推奨事項は Server Proインスタンス向けのハードウェア仕様

に適用されます。

Server Proのアップグレード 使用してはいけません アップグレードの一環として、Server Proは自動的にデータベースマイグレーションを実行します。これらのマイグレーションは

並列に複数インスタンスから実行されることを想定して設計されています。 マイグレーションは実際のウェブアプリケーションが起動する前に終了する必要があります。ログに Finished migrations

のエントリがあるかを確認するか、アプリケーションがトラフィックを受け入れるまで待つことができます。

  1. アップグレード手順は次のようになります:

  2. メンテナンス時間を予定する

  3. ドキュメント

  4. を参照してください。

  5. 新バージョンで単一のServer Proインスタンスを起動する。」「t393":"新しいインスタンスが期待通りに動作することを検証する。","t394":"他のインスタンスを新バージョンで起動する"}

最終更新