Database Excellence ステージ
ミッション
GitLab.com と GitLab を自ら運用するお客様の両方で、GitLab のデータベースの信頼性と運用上の余力を維持します。GitLab.com では、Postgres 群の運用、ハードウェアの追加だけに頼らずデータの増加を制御して飽和を未然に防ぐこと、Cells を含むすべてのプロダクトデータベース向けに単一の管理された経路を構築することを意味します。Self-Managed のお客様には、実行の可否を判定する整合性チェック、すべてのマイグレーションが実行されることを保証するテストフレームワーク、より短いアップグレード経路によって、信頼できるアップグレードを提供します。これらすべてを通じて、私たちはコードベースの拡大に合わせてデータベースレビューをスケールさせ、少人数のレビュアーがボトルネックにならずに、チームがデータを使って持続可能な形で構築できるようにします。
ステージのリーダーシップ
| Name | Role |
|---|---|
Alex Ives | Backend Engineering Manager, Database |
Raghu Sontam | Principal Database Engineer, Database |
グループ
このステージは以下のグループで構成されています。
Database Architecture
Database Architecture グループは、データ配置のための意思決定フレームワーク、データ増加のコントロール、すべてのデータストアにわたるデータベースレビュープロセスの調整を提供することで、チームがデータを使って持続可能な形で構築できるようにします。
優先事項:
- チームが持続可能なデータアーキテクチャの意思決定を行えるようにする
- データベースのパフォーマンス問題が本番環境に到達する前に防止する
- データライフサイクルのベストプラクティスを確立し維持する
Self-Managed Database Experience
Self-Managed Database Experienceグループは、Self-Managed のお客様に、データベースの状態の可視性、より高速なデータベースマイグレーション、明確なアップグレード経路を提供します。
優先事項:
- アップグレード前にデータベースの整合性を、アップグレードの間にデータベースの健全性をチェックする
- すべてのマイグレーションを、お客様に届く前にデータを使ってテストする
- 管理者自身のインスタンスのデータに基づき、アップグレード経路を示す
- マイグレーションを依存関係の順序で実行し、中間バージョンで停止することなくアップグレードを短縮する
Database Automation
Database Automation グループは、GitLab の Postgres データベースをスケールで運用しやすくする自動化フレームワーク、ツール、テンプレートを所有しており、手動の個別プロセスを標準化された反復可能な自動化に置き換えます。3 つのチームすべてが自動化に貢献しますが、Database Automation がフレームワークを所有し、インフラ変更の計画負荷を管理します。
優先事項:
- 手動のデータベース運用を標準化された自動化プロセスに置き換える
- データベースのプロビジョニング、設定、アップグレードのための再利用可能なツールを構築する
- デプロイメントタイプを横断して信頼性が高く反復可能なデータベース運用を実現する
以前のチーム
以前は、このステージは Database Frameworks と Database Operations の 2 つのチームで構成されていました。これらのチームは本番データベースシステムをカバーする非常に大きく重複した範囲を持っていましたが、自由に使えるツールが異なっていました。これにより、チームは 2 つの点で困難を抱えていました。同じ目標に対して異なるツールで異なるプロジェクトを進めてしまうことと、各チームが合理的に計画したり達成したりできる以上の範囲を抱えていたことです。
FY27 の Q1 に、私たちはいくつかのことを達成するためにチームを現在の構造に再編成しました。
- プロジェクトや領域の間を行き来することによる疲労を防ぐために、チームの範囲を狭める
- チームが現在のサイズの制限を超えて成長できるように、より多くのマネジメントサポートを提供する
- Self-Managed のお客様に影響を与えるトピックを含めるように、部門全体の範囲を拡大する
Database Frameworks
Database Frameworks グループは、データベースシステムとインターフェースして通信する Rails アプリケーションコードを管理していました。
Database Operations
Database Operations グループは、GitLab.com の PostgreSQL データベースを支えるインフラと自動化を管理していました。
Database Health
Database Health グループは FY27-Q1 の再編成から 2026 年 9 月まで活動し、その時点で Self-Managed のヘルスに関する業務は Self-Managed Database Experience に、GitLab.com の飽和に関する業務は Database Automation に移管されました。
私たちの働き方
Database Excellence 内の各チームは、バックエンドエンジニアとリライアビリティエンジニア(SRE/DBRE)の混成で構成されています。バランスはチームによって異なります。Database Architecture と Self-Managed Database Experience は主にバックエンドエンジニア、Database Automation は主にリライアビリティエンジニアで構成されています。すべてのチームに両方の専門分野が含まれています。
各チームは明確な重点領域を持っていますが、いくつかの責任はステージ全体で共有されています。データベースレビューは Database Architecture が調整しますが、3 つのチームすべてのメンバーが担当します。オンコールのローテーションはステージ全体のリライアビリティエンジニアから編成されます。飽和の緩和やインシデント対応といったオペレーション上のニーズは、単一のグループが所有するのではなく、すべてのチームに分散されています。インフラ管理とデータベースのアップグレードもチーム間で共有されています。3 つのグループの地域分布(AMER、EMEA、APAC にまたがる)により、フォロー・ザ・サンのカバレッジが可能になるためです。この共有モデルにより、オペレーションの知識が幅広く保たれ、単一のチームがボトルネックになることがありません。
支援の依頼
緊急事態、サポートのエスカレーション、責任を持つチームの特定を含む、データベースの問題に関する支援を得るための完全なガイドについては、データベースの問題に関する支援を得るを参照してください。
インシデントのエスカレーション
データベースインシデントのエスカレーションは、オンコールのルーティングに incident.ioを使用します。
- 範囲: Incident Manager On Call、Engineer On Call、Security チームが提起した GitLab.com の S1 および S2 本番インシデント。GitLab Dedicated のサポートはコンサルティング的です。Self-Managed のサポートは裁量的で、ケースバイケースで評価されます。
- エスカレーション: インシデントの Slack チャンネルで
/inc escalateを使用します。緊急でない問題については、トリアージローテーションを使用するか、#s_database_excellenceに投稿します。 - 対応: ベストエフォート、現地タイムゾーン、平日のみのカバレッジ(24/5)。オンコールエンジニアは、コンサルティング的な立場で主題の専門家として参加します。
- プロセスの詳細: 対応手順とシャドーイングの指示については、完全なエスカレーションプロセスを参照してください。
リライアビリティ関連の依頼
未定
Tier-2 オンコール
Database Excellence オンコールは Tier-2 ローテーションです。
24x5 のカバレッジ体制で、チームのキャパシティにより 05:00 - 07:00 および 22:00 - 23:00 がローテーションにおける既知のギャップです。
長期的な Stable Counterpart またはレビュアーの依頼
Stable Counterpart やレビュアーといった長期的な依頼は、ステージレベルで処理されます。これらの依頼は カウンターパート依頼として提出してください。
トリアージローテーション
Database Excellence には毎週のトリアージ Issueがあり、この Issue は自動化によって毎週自動的に作成され、Database Excellence の入力と継続的なモニタリングが必要なさまざまなセクション(例: DB の飽和、テーブルサイズのモニタリングなど)を構築します。
これは Database Excellence ステージのバックエンドエンジニアと SRE が担当します。 責任を分担し、必要に応じて適切な担当者(つまり、アプリケーション関連の項目は BE、インフラ関連の項目は SRE)をタグ付けします。
注記
次のステップ: トリアージ Issue 内のセクションはbackend、infra、shared に分類されます。これにより、アサインされた DRI が同じ Issue をトリアージする必要がなくなります。計画プロセス
後日発表
Database Architecture チーム
Database Automation チーム
Database Health チーム
データベース関連の問題でヘルプを得る
Database Operations チーム
Database Framework グループ
データベースステークホルダー
5d840611)
Alex Ives
Raghu Sontam
Alexander Sosna
Amrita Sinha Mohapatra
Leonardo da Rosa
Matt Kasa
Maxime Orefice
Panos Kanellidis
Prabakaran Murugesan
Vamshidhar Poralla
Niko Belokolodov
Amandeep Singh
Imanpal Singh
Krasimir Angelov
Manager, Infrastructure
Biren Shah
Jon Jenkins
Mei Yang
Prashans Mistry
Rafael Henchen