Database Operations チーム
ミッション
GitLab の Database Operations チームのミッションは、GitLab.com 用の PostgreSQL データベースエンジンのライフサイクル全体を構築、運用、所有、進化させることです。
チームは、データベースエンジンとそのサポートサービスの信頼性、スケーラビリティ、パフォーマンス、セキュリティの所有に焦点を当てています。チームは、複雑さを減らし、効率を改善し、新しい機能をより速く提供するために、適切な場合に Runway サービスとクラウドベンダーマネージド製品の上にサービスを構築することを目指すべきです。
チームは、サービスに対して行う決定を導くために エンジニアリング原則 を使用します。チームは明示的にセルフホスト製品の責任を持っていませんが、本番で GitLab のためにデータベースエンジンを実行することから学んだ教訓を、製品、開発、サポートチームに還元して、GitLab での全体的なお客様体験を改善する、またセルフマネージドのお客様が複雑なデータベースエンジンの Issue に遭遇したときにサポートチームと協業する必要があります。
チームメンバー
| Name | Role |
|---|
オーナーシップ
サービス
私たちが主に責任を持つシステムとサービス:
PostgreSQL Core (VM)
PostgreSQL Core (PGaaS) (近日中)
PostgreSQL High Availability および Load Balancing (例: Patroni、PGBouncer、consul、PostgreSQL Replication など)
PostgreSQL Disaster Recovery (バックアップ/リストアおよびその他の手法)
Database Observability (Prometheus インストルメンテーション、ワークロード分析など)
GitLab アプリケーションのサポートとトラブルシューティング、特に PostgreSQL エコシステムの使用および相互作用に関連するもの。
Self-Hosted Clickhouse (近日中)
私たちが明示的に所有していないシステムまたはサービス:
| システム名 | 説明 | オーナーとサポート | 追加情報/オープンな質問 |
|---|---|---|---|
| Redis | キャッシング、レートリミット、sidekiq キューイングなどのユースケースがいくつかある。 | Tenant Scale | Redis アーキテクチャ |
| Data チームシステム | Data チーム | ||
| セルフマネージドデータベース | セルフマネージドサポート |
便利なリンク
| バックログ | DBO Status |
| ロードマップアイデア | Now-Next-Later |
| 私たちに連絡 | #g_database_operations@gitlab-org/data-access/dbo |
| 週次アジェンダ | 週次 APAC および EMEA/AMER |
チームへの連絡方法
- 障害と顧客の緊急事態: エスカレーションプロセス を使用してください
- 顧客の Issue: こちら で RFH Issue を開いてください
- プロジェクト作業やその他のリクエスト: チーム Issue トラッカー で Issue を開いてください
パフォーマンス指標
パフォーマンス指標メトリクス を使って、私たちが貢献する価値を測定します。
GitLab.com の 可用性 と パフォーマンス に関する Infrastructure 部門の KPI に加えて、Database Operations チームは以下を追跡しています:
- バックアップとリカバリの SLO
- 一般的なデータベース可用性 (アップタイム)
主要な技術スキル
チームは以下のさまざまなレベルの専門知識を持つ Database Operations エンジニアで構成されています:
- 大規模本番環境での PostgreSQL のサポート。
- Chef、Ansible、Terraform などのツールを使ったインフラ自動化と構成管理。
- PostgreSQL の内部、チューニングと最適化、SQL と PL/pgSQL。
共通リンク
道を見つけやすくするために、便利または重要なリンクのリストを以下で見つけることができます。
モニタリングおよびパフォーマンス関連ツール
以下のツールが役立つ場合があります:
- Postgres Checkup: PostgreSQL データベースのステータスに関する詳細なレポート。
- Private Grafana: アプリケーションとシステムレベルのパフォーマンスデータの両方のため。
- Performance Bar: GitLab で
pbと入力すると、ページの上部にパフォーマンスメトリクスを含むバーが表示されます。このツールは、実行されたクエリとそのタイミングを表示するのに特に便利です。
Postgres パフォーマンス問題を特定し、より深く掘り下げたい場合は、これらの runbook とダッシュボードをお勧めします。これらは、ダッシュボードの理解方法を説明する runbook とともに、一緒に使用するのが最適です。
ダッシュボード:
Runbook:
- 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 待機イベント分析
ドキュメント
- 何にダウンタイムが必要か?
- データベースインデックスの追加
- Post Deployment Migrations
- Background Migrations
- SQL Migration Style Guide
- SQL Query Guidelines
- Infrastructure runbook とドキュメント
c955a93f)