フィーチャー開発のためのデータ保持ガイドライン
概要
データ保持は GitLab におけるフィーチャー開発の重要な側面です。フィーチャーを構築・保守するにあたって、収集・保存するデータのライフサイクルを考慮する必要があります。このドキュメントでは、フィーチャー開発の最初からデータ保持の考慮事項を組み込むためのガイドラインを概説します。
データ保持が重要な理由
- システムパフォーマンス: 時間ベースのデータ整理により、クエリの最適化とデータアクセスパターンの効率化が可能になり、応答時間の短縮とシステムスケーラビリティの向上につながります。
- インフラコスト: データライフサイクルポリシーによる戦略的なストレージ管理は、プライマリストレージ、バックアップ、ディザスタリカバリシステムのインフラコストを削減します。
- エンジニアリングの効率化: 最初からデータ保持を考慮してフィーチャーを設計することで、明確なデータライフサイクルを確立し、技術的負債を削減し、データ移行を迅速化することで、開発がより速くより信頼性の高いものになります。
フィーチャー開発のガイドライン
1. 早期計画
新しいフィーチャーを設計する際、初期計画フェーズでデータ保持要件を検討してください:
- 永続化されるデータの種類を文書化する。ユーザー向けデータか?処理を効率化するために内部で生成されるデータか?派生/キャッシュデータか?
- 各データタイプのビジネス目的と必要な保持期間を特定する。
- 古いデータの製品上の正当性と顧客利用パターンを定義する。新しいデータと比較して、古いデータとどのように関わるか?時間の経過とともに価値はどのように変化するか?
- データ保持に影響を与える可能性のある規制要件を考慮する(個人識別情報など)。
- データ削除またはアーカイブのメカニズムを計画する。
2. データライフサイクルを考慮した設計
フィーチャーはデータが永続的ではないという理解の下に設計すべきです:
- データが無限に利用可能であるという前提を避ける。
- 欠損またはアーカイブされたデータの優雅な処理を実装する。
- データの利用可能期間を明確に伝えるユーザーインターフェースを設計する。
- 長期的な文脈での閲覧に最適化された長期ストレージ用データ構造を設計する。
- 特に、オンデマンドで優雅に再現できる派生/キャッシュデータに対して、必要に応じて「TTL(Time to Live)」メカニズムの実装を検討する。
3. ドキュメント推奨事項
各フィーチャーの実装には以下を含める必要があります:
- データ保持期間(GitLab.com およびデフォルト値がある場合)とビジネス上の理由/正当性の明確なドキュメント
- データ削除/アーカイブメカニズムの説明。
- データ削除が依存フィーチャーに与える影響の分析。
実装チェックリスト
新しいフィーチャーのマージリクエストを提出する前に:
- データ保持要件を文書化する。
- データ削除を念頭に置いてデータモデルを設計する。
- データ削除/アーカイブメカニズムを実装する。
- 欠損/アーカイブされたデータを使用したフィーチャーの動作をテストする。
- ユーザードキュメントに保持期間を含める。
- 依存フィーチャーへの影響を考慮する。
- バックアップ/リストアおよびエクスポート/インポートへの影響を考慮する。
- レプリケーション(例: Geo)への影響を考慮する。
