データベースエンジニアリング
このページはデータベースアプリケーションエンジニアリングに関するページであり、このトピックに関するリソースへの入り口となっています。
Enablement の Database Team も参照してください。
GitLab の開発
データベースに関するガイドラインは データベースガイドラインの開発ドキュメント を参照してください。
GitLab におけるデータベースの役割
データベースに特化した主要なジョブロールが 2 つあります:
- バックエンドエンジニア(データベース) - Development 所属
- Database Reliability Engineer - Infrastructure 所属
バックエンドエンジニア(データベース)は、GitLab コードベースにおけるアプリケーション側の改善および基盤となるデータベース作業に集中するソフトウェアエンジニアリングロールです。
Database Reliability Engineer は、Reliability Engineering チーム内から GitLab.com のデータベースインフラを対象として運用するオペレーショナルロールです。
データベースメンテナー
GitLab コードベース において、データベースメンテナーはデータベース関連の変更をレビューし、データベースレビューガイドライン を適用することで コードレビュープロセス に貢献します。彼らは通常、データベースクエリとそのパフォーマンス、データベーススキーマ設計、データベースマイグレーションについての議論に参加します。
データベースメンテナーのロール:
- バックエンドエンジニアの追加ロールとして設定されることが多いです。
- 他の GitLab メンテナー と同じ定義に従います。
- GitLab.com およびそのデータベースインフラに対する運用責任を伴いません。この責任は Database Reliability Engineer に属します。
- インシデント管理 Issue への参加は期待されません。
- レビュー所要時間 として 2 営業日を遵守します。
データベースレビューへの参加に興味がある場合は、まず データベースメンテナープロセス を確認してください。レビュワーのためのすべてのリソースが含まれています。
推奨リンクとリファレンス資料
GitLab リソース
- データベースオフィスアワーは隔週で開催され、GitLab チームミーティングカレンダー で確認できます。
- GitLab Unfiltered の Database Office Hours プレイリスト でデータベースオフィスアワーの動画を視聴できます。
書籍
(順不同)
- I. Ahmed, G. Smith 他: “PostgreSQL 10 High Performance: Expert techniques for query optimization, high availability, and efficient database maintenance.” (2018)
- Hans-Jürgen Schönig: “Mastering PostgreSQL 11” (2018)
- Markus Winand: “SQL Performance Explained”
- Dimitri Fontaine: “The Art of PostgreSQL” - GitLab チームメンバー向けに仮想トレーニングが利用可能です。
- Alex Petrov: “Database Internals”
その他のリソース
- 公式 PostgreSQL メーリングリスト、特に
pgsql-general - Postgres Weekly
- Planet PostgreSQL
- SQL Indexing and Tuning e-Book(“Use The Index Luke” としても知られています)
- Scaling PostgreSQL の週次ショー
- PostgreSQL EXPLAIN クエリプラン の操作とフィールドの詳細ドキュメント
- PostgreSQL に関するあらゆることを扱う週次ポッドキャスト postgres.fm
