リアルタイム ワーキンググループ
GitLab リアルタイム ワーキンググループは、セルフマネージドのお客様にリアルタイム機能を1つ提供することを目的としています。詳細はこちら!
属性
| プロパティ | 値 |
|---|---|
| 作成日 | 2020年3月12日 |
| クローズ日 | 2021年11月1日 |
| Slack | #wg_real-time(社内からのみアクセス可能) |
| Google Doc | リアルタイム ワーキンググループ アジェンダ(社内からのみアクセス可能) |
| Epic & 設計書 | リアルタイム機能に ActionCable を使用 |
| 機能 Issue | Issue / マージリクエストのサイドバーでアサイニーのリアルタイム更新を表示 |
| 関連 OKR | Plan: 段階的な ACV の支援 |
ビジネス目標
セルフマネージドのお客様にリアルタイム機能を1つ提供します。
完了基準 - フェーズ1
(✅ 完了、✏️ 進行中)
リアルタイム機能1つ、シングルインスタンス / 小規模クラスターのセルフホスティングのお客様が利用可能 => 100%
- Action Cable の組み込みモードでの起動をサポート ✅
- Omnibus が config/cable.yml で組み込み Action Cable を起動する機能を追加 ✅
- GDK が Action Cable の設定をサポート ✅
- Workhorse が Action Cable リクエストをプロキシ ✅
- アサイニーが Issue で更新された際に WebSocket 接続をアップグレードしシグナルをプッシュするバックエンドの作業が完了 ✅
- WebSocket に応答してサイドバーを更新するフロントエンドの作業が完了 ✅
- Action Cable の設定を Prometheus にエクスポート ✅
- ActionCable の設定を Usage Ping で追跡 ✅
- 小規模デプロイメントでの機能利用方法をお客様に案内するドキュメントを整備 ✅
- Action Cable が有効な場合に条件付きで機能を利用可能 ✅
完了基準 - フェーズ2
(✅ 完了、✏️ 進行中)
リアルタイム機能1つ、大規模デプロイメントで利用可能 => 100%
- Omnibus が config/cable.yml でスタンドアロンの Action Cable Puma Server を起動する機能を追加 ✅
- GDK がスタンドアロンの Action Cable 設定を許可し Puma サーバーを起動 ✅
- Workhorse が Action Cable リクエストをプロキシ ✅
- 大規模な WebSocket 接続をサポートするリファレンスアーキテクチャの確立 ✅
- Helm チャートが
webserviceサービスでの組み込み Action Cable 設定を許可 ✅ - 初期機能テストのための QA 作業完了 ✅
- フィーチャーフラグをデフォルトでオンに設定し、適切なフォールバックを実装 ✅
.com で動作するリアルタイム機能が利用可能 => 100%
- Action Cable および Puma を含むリアルタイム機能のコンテナ化 ✅
- 複数の Redis インスタンスの使用を可能にする Helm チャートの更新 ✅
- Kubernetes での WebSocket リクエストのサポート ✅
- 手動でのフルスタックテストのための非本番環境へのデプロイ ✅
- ステージング環境の Kubernetes Pod が Action Cable リクエストを処理 ✅
- Canary 環境の Kubernetes Pod が Action Cable リクエストを処理 ✅
- 可観測性の確保とリスク抑制のためのレディネスレビュー完了 ✅
- 本番環境の Kubernetes Pod が Action Cable リクエストを処理 ✅
- 組み込み Action Cable をデフォルトで有効化 ✅
設計書
技術的な決定とその根拠はこの設計書に記録されています。
役割と責任
| ワーキンググループの役割 | 担当者 | 職位 |
|---|---|---|
| エグゼクティブスポンサー | Christopher Lefelhocz | VP of Development |
| ファシリテーター | John Hope | Engineering Manager, Plan |
| 機能リード | Heinrich Lee Yu | Senior Backend Engineer, Plan |
| 機能リード | Gabe Weaver | Senior Product Manager, Plan |
| 機能リード | Sean McGivern | Staff Backend Engineer, Scalability |
| メンバー | Scott Stern | Frontend Engineer, Plan |
| メンバー | Ben Kochie | Site Reliability Engineer |
| メンバー | Natalia Tepluhina | Staff Frontend Engineer, Plan |
| メンバー | Matthias Käppler | Senior Engineer, Memory |
| メンバー | Jake Lear | Engineering manager, Plan |
ミーティング
ミーティングは録画され、YouTube の リアルタイム ワーキンググループ プレイリスト で公開されています。
