データベースオペレーションチーム
ミッション
GitLab のデータベースオペレーションチームのミッションは、GitLab.com 向けに PostgreSQL データベースエンジンのライフサイクル全体を構築・運用・所有・進化させることです。
チームはデータベースエンジンとそのサポートサービスの信頼性、スケーラビリティ、パフォーマンス、セキュリティの所有に注力しています。チームは複雑さを軽減し、効率を向上させ、新機能をより迅速に提供するために、適切な場合は Runway サービスやクラウドベンダーのマネージドプロダクトを活用してサービスを構築するよう努めています。
チームは エンジニアリング原則 を活用して、サービスに関する意思決定を行います。チームは明示的にはセルフホスト製品の責任を持ちませんが、大規模な本番環境で GitLab のデータベースエンジンを運用して得た教訓を、製品・開発・サポートチームにフィードバックし、GitLab の顧客体験全体を向上させ、またセルフマネージドの顧客が複雑なデータベースエンジンの Issue に直面した際にサポートチームと協力します。
チームメンバー
チームメンバー情報は 原文 (英語) を参照してください。
所有範囲
サービス
私たちが主に責任を持つシステムおよびサービス:
PostgreSQL コア(VM)
PostgreSQL コア(PGaaS)(近日公開)
PostgreSQL 高可用性とロードバランシング(例:Patroni、PGBouncer、consul、PostgreSQL レプリケーションなど)
PostgreSQL ディザスタリカバリ(バックアップ/リストアおよびその他の手法)
データベースオブザーバビリティ(Prometheus インストゥルメンテーション、ワークロード分析など)
GitLab アプリケーションのサポートおよびトラブルシューティング(特に PostgreSQL エコシステムとの使用・連携に関連するもの)
セルフホスト型 Clickhouse(近日公開)
私たちが所有しないシステムまたはサービス:
| システム名 | 説明 | オーナーおよびサポート担当 | 補足情報/未解決の質問 |
|---|---|---|---|
| Redis | キャッシング、レート制限、Sidekiq キューイングなど複数のユースケースがあります。 | Tenant Scale | Redis アーキテクチャ |
| データチームのシステム | データチーム | ||
| セルフマネージドデータベース | セルフマネージドサポート |
有用なリンク
| バックログ | DBO Status |
| ロードマップアイデア | Now-Next-Later |
| 連絡方法 | #g_database_operations@gitlab-org/data-access/dbo |
| 週次アジェンダ | Weekly APAC and EMEA/AMER |
チームへの連絡方法
- 障害および顧客の緊急事態: DBO エスカレーションプロセスをご利用ください
- 顧客の Issue: こちらから RFH Issue を作成してください
- プロジェクト作業およびその他のリクエスト: チームの Issue トラッカーに Issue を作成してください
パフォーマンス指標
私たちは パフォーマンス指標メトリクス を使用して貢献する価値を測定しています。
インフラストラクチャ部門の GitLab.com の 可用性 および パフォーマンス に関する KPI に加えて、データベースオペレーションチームは以下を追跡しています。
- バックアップおよびリカバリ SLO
- データベース全体の可用性(稼働時間)
主要な技術スキル
チームはさまざまなレベルの専門知識を持つデータベースオペレーションエンジニアで構成されています。
- 大規模な本番環境での PostgreSQL サポート。
- Chef、Ansible、Terraform などのツールを使用したインフラストラクチャの自動化および構成管理。
- PostgreSQL の内部構造、チューニング&最適化、SQL および PL/pgSQL。
共通リンク
以下に役立つリンクや重要なリンクを掲載しています。
モニタリング&パフォーマンス関連ツール
次のツールが役立ちます:
- Postgres Checkup: PostgreSQL データベースの状態に関する詳細レポート。
- Private Grafana: アプリケーションレベルおよびシステムレベルのパフォーマンスデータ。
- Performance Bar: GitLab で
pbと入力するとページ上部にパフォーマンスメトリクスのバーが表示されます。実行されたクエリとそのタイミングを確認するのに特に役立ちます。
Postgres のパフォーマンス問題を特定し、さらに詳しく調査したい場合は、以下のランブックとダッシュボードを推奨します。ランブックがダッシュボードの理解方法を説明しているため、これらは一緒に使用するのが最適です。
ダッシュボード:
ランブック:
- Postgres ノードの高レベルパフォーマンス分析とトラブルシューティング
- Postgres 待機イベント分析(別名 Active Session History; ASH ダッシュボード)
- Postgres 向け SQL クエリ分析と最適化
ダッシュボード
以下の(プライベート)Grafana ダッシュボードはデータベーススペシャリストにとって重要または有用です。
- PostgreSQL Overview
- Patroni Overview
- Patroni CI Overview
- PgBouncer Overview
- PgBouncer CI Overview
- GitLab Triage
- PostgreSQL Bloat
- PostgreSQL Disk IO
- Host stats
- Tuple Statistics
- Postgres ノードパフォーマンス概要(高レベル)
- Postgres 集計クエリパフォーマンス分析
- Postgres 単一クエリパフォーマンス分析
- Postgres 待機イベント分析
ドキュメント
- ダウンタイムが必要なものは何ですか?
- データベースインデックスの追加
- デプロイ後マイグレーション
- バックグラウンドマイグレーション
- SQL マイグレーションスタイルガイド
- SQL クエリガイドライン
- インフラストラクチャのランブックとドキュメント
