『継続的デリバリー』 第12章 学習メモ
データ管理の概観
1.はじめに
継続的デリバリーにおける、データ管理についての調査記録です。
継続的デリバリーの中での、データ管理についての概観を記載します。
『継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化』の第12章に対応します。
2.概要・目的
データを管理するとき、テストやデプロイメントのプロセスでいくつか問題が生じる。その理由は以下の2点である。
- データの量
- アプリケーションのデータとシステムの他の部分とではライフサイクルが異なる
データの構造や内容を変更する必要がある場合の問題に対応する。
混乱を最小化し、アプリケーションやデプロイメント処理の信頼性を最大化する仕組みのために、DBの移行プロセスを自動化する。
自動化した内容はスクリプトにして自動デプロイメントプロセスに組み込む。
3.対応概要
(1)DBのスクリプト処理
DBのスクリプト処理の観点は以下の通り。
- 初期化スクリプト、初期化の手順
- DBのバージョン管理
(2)データの管理とデプロイメントパイプライン
各テストステージにおけるデータの観点は以下の通り。
- コミットテストステージ
- テストヘルパーやフィクスチャによるデータ作成の再利用
- 受入テストステージ
- データの分類
- テストケース作成の再利用
- データへの依存の最小化
- アプリケーションのAPIの使用の作用
- キャパシティテストステージなど
- 受入テストのインタラクションを記録し、キャパシティテストなど以後のテストに使用する
- 手動テスト
- 空の状態で立ち上げるか、カスタマイズしたデータ群の使用がよい
4.対応詳細
(1)DBのロールバックとゼロダウンタイムリリース
DBのロールバックとゼロダウンタイムリリースの観点は以下の通り。
(2)テストデータ管理
テストデータの管理の観点は以下の通り。
- テストデータ管理の要件・機能
- パフォーマンス
- テストの分離
- ユニットテストにおけるDB
- テストとデータの関連の整理
5.影響・作用
以上の対応により、完全に自動化したプロセスでDBの作成やマイグレーションを行えるようにする。
6.おわりに
以上が、継続的デリバリーの中での、データの管理についての概観です。
7.参考文献
『継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化』 第12章 データを管理する