正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab Self-ManagedにおけるGitLab Orbit

  • プラン: Premium、Ultimate
  • 提供形態: GitLab Self-Managed
  • ステータス: ベータ版

GitLab Self-ManagedにおけるGitLab Orbitは ベータ版です。 この機能はテスト目的で利用可能ですが、本番環境での使用には対応していません。

GitLab.comでは、GitLab OrbitはGitLabのインフラストラクチャ上で動作します。 GitLab Self-Managedでは、GitLab Orbitをインスタンスの隣で実行します。

GitLab Orbitのデプロイは2つの部分で構成されます。

  • GitLabデータベースをClickHouseにコピーするデータパイプライン。
  • そのコピーをクエリ可能なグラフに変換するGitLab Orbit。

データパイプラインはGitLab Orbitに依存しないため、GitLab Orbitをインストールする前にパイプラインを検証できます。

GitLab OrbitはKubernetes向けのHelmチャートとしてのみ配布されています。Linuxパッケージには含まれていません。 GitLabを実行しているクラスター、またはインスタンスの隣にある別のクラスターにチャートをインストールしてください。

GitLab Self-ManagedにおけるGitLab Orbitはベータ版であるため、デプロイを計画する前に担当のアカウントチームに連絡して現在の制限事項を確認してください。

アーキテクチャ

flowchart LR
    accTitle: GitLab Orbit on GitLab Self-Managed
    accDescr: GitLab writes to PostgreSQL, Siphon reads the PostgreSQL write-ahead log and replicates rows through NATS JetStream into the ClickHouse data lake, the GitLab Orbit dispatcher watches the same NATS stream and creates the graph schema in ClickHouse, the GitLab Orbit indexer takes indexing tasks from NATS and builds the property graph from the data lake and from source code fetched over the GitLab internal API, and GitLab queries the GitLab Orbit webserver over gRPC.

    subgraph GitLab["GitLab instance"]
        PG[(PostgreSQL)]
        Rails[GitLab Rails]
    end

    subgraph K8s["Kubernetes cluster"]
        Siphon[Siphon]
        NATS[NATS JetStream]
        Dispatch[GitLab Orbit dispatcher]
        Indexer[GitLab Orbit indexer]
        Web[GitLab Orbit webserver]
    end

    CH[(ClickHouse)]

    PG -- logical replication --> Siphon
    Siphon <--> NATS
    Siphon -- writes data lake --> CH
    NATS -- change events --> Dispatch
    Dispatch -- indexing tasks --> NATS
    Dispatch -- creates schema --> CH
    NATS -- indexing tasks --> Indexer
    CH -- reads data lake --> Indexer
    Indexer -- internal API --> Rails
    Indexer -- writes graph --> CH
    CH -- reads graph --> Web
    Web -- internal API --> Rails
    Rails -- gRPC --> Web
コンポーネント機能
SiphonNATSを経由してPostgreSQLからClickHouseデータレイクに行をコピーします。
Dispatcher同じNATSストリームを監視し、グラフスキーマを管理し、インデックス作成タスクをNATSに発行します。
IndexerNATSからインデックス作成タスクを受け取り、データレイクを読み取り、GitLab内部APIを経由してソースコードをフェッチし、プロパティグラフを書き込みます。
Webserverグラフからのクエリに応答し、クエリで必要な場合は内部APIを経由してファイルコンテンツをフェッチします。

GitLabはgRPCを経由してWebserverにアクセスします。

このセクションの内容

ページ説明
はじめに前提条件、インストール順序、および共通設定値
データレプリケーションのセットアップPostgreSQL論理レプリケーションとSiphon
GitLab OrbitのセットアップClickHouseデータベースとID、GitLab接続、GitLab Orbitチャートおよびグループのインデックス作成

既知の制限事項

GitLab OrbitはGitLab GeoのセカンダリサイトでFIPSに準拠したビルドは利用できません。

GitLab Orbitの冗長性とリカバリーについてはドキュメント化されていません。GitLab Orbitは独自のデータを保持しないため、グラフデータベースが失われた場合は、再度インデックス作成を行うことで再構築できます。

ベータ版期間中に適用されるサポートについては、 ベータ版および サポートに関する声明を参照してください。