JetBrains Fleet 1.46 ヘルプ

アーキテクチャの概要

Fleet は、スタンドアロンインスタンスの使いやすさを目的とした分散アーキテクチャを使用し、同時に次のシナリオをサポートします。

  • 共同開発 – 複数のクライアントが同じ開発環境で作業し、相互に対話します。

  • リモート / クラウドエディター – リモートマシン、クラスター、クラウドなど、他の場所でホストされている開発環境。

  • 複数のターゲットファイルシステム – 複数のマシンまたはコンテナーを含むプロジェクト (マイクロサービスベースのアプリなど) を開発および実行します。

説明した柔軟性は、ファイルシステムの操作やコードインテリジェンスの提供など、特定のタスクを処理するコンポーネントを分離することで実現します。このような関心の分離が、Fleet を IntelliJ IDEA などの従来のツールと異なるものにしています。一方、Fleet は、統合が必要な場合に既存のソリューションと互換性があるように設計されています。

Fleet アーキテクチャは、次の主要コンポーネントで構成されます。

Architecture diagram
  • フロントエンド – UI を提供し、ファイルを解析し、サポートされているファイルタイプを限定的にハイライトします。ワークスペースには複数のフロントエンドを接続でき、共同開発が可能になります。

  • ワークスペース – フロントエンドが複数ある場合に、フロントエンドの共有状態を維持することを主な目的とするコンポーネント。また、他のコンポーネントも登録して、利用可能なサービスと API に関する情報を提供します。

  • バックエンド – インデックス作成、静的分析、高度な検索、ナビゲーションなどの重労働を行うヘッドレスサービス。このような操作はすべてワークスペースからのリクエストによって開始され、ワークスペースはその応答を処理して、データを必要とするコンポーネントにデータをディスパッチします。

    バックエンドとして、ヘッドレス IntelliJ IDEA または言語サーバーを使用できます。バックエンドには異なる要件がある場合があることに注意してください。たとえば、ダイアグラムに示すように、言語サーバーは、ソースコードが配置されている同じマシン上で実行する必要があります。

  • FSD (Fleet システムデーモン) – Fleet エージェントは通常、ソースコードと SDK が存在するシステムに接続されます。これは、プロジェクトのビルド、コードの実行、ターミナルコマンドの実行、および Fleet に代わってターゲット環境でその他のアクションを実行するために使用されます。