Help us understand the problem. What is going on with this article?

データ管理の概観

1.はじめに

継続的デリバリーにおける、データ管理についての調査記録です。
継続的デリバリーの中での、データ管理についての概観を記載します。
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化』の第12章に対応します。
メモ:以下、文中はである調になります。

2.概要・目的

データを管理するとき、テストやデプロイメントのプロセスでいくつか問題が生じる。その理由は以下の2点である。

  • データの量
  • アプリケーションのデータとシステムの他の部分とではライフサイクルが異なる

データの構造や内容を変更する必要がある場合の問題に対応する。
混乱を最小化し、アプリケーションやデプロイメント処理の信頼性を最大化する仕組みのために、DBの移行プロセスを自動化する。
自動化した内容はスクリプトにして自動デプロイメントプロセスに組み込む

3.対応概要

(1)DBのスクリプト処理

DBのスクリプト処理の観点は以下の通り。

  • 初期化スクリプト、初期化の手順
  • DBのバージョン管理
    • アプリケーションとDBのバージョンをひもづける
    • ロールフォワード・ロールバックスクリプト
    • 制約の追加や削除の困難さ
    • 共有DBの変更への対応
    • アプリケーションがDBの複数のバージョンを許容

(2)データの管理とデプロイメントパイプライン

各テストステージにおけるデータの観点は以下の通り。

  • コミットテストステージ
    • テストヘルパーやフィクスチャによるデータ作成の再利用
  • 受入テストステージ
    • データの分類
    • テストケース作成の再利用
    • データへの依存の最小化
    • アプリケーションのAPIの使用の作用
  • キャパシティテストステージなど
    • 受入テストのインタラクションを記録し、キャパシティテストなど以後のテストに使用する
  • 手動テスト
    • 空の状態で立ち上げるか、カスタマイズしたデータ群の使用がよい

4.対応詳細

(1)DBのロールバックとゼロダウンタイムリリース

DBのロールバックとゼロダウンタイムリリースの観点は以下の通り。

  • ロールバック時のデータ保持の方法
    • キャッシュの取得
    • ブルーグリーンデプロイメント
  • アプリケーションのデプロイをDBのマイグレーションから分離
    • アプリケーションがDBのバージョンに互換性を持つ

(2)テストデータ管理

テストデータの管理の観点は以下の通り。

  • テストデータ管理の要件・機能
    • パフォーマンス
    • テストの分離
  • ユニットテストにおけるDB
    • リポジトリパターンのテストダブル
    • インメモリRDB
  • テストとデータの関連の整理
    • テストの分離:テストデータを他のテストから隠す
    • アトミックなテスト
      • トランザクションの管理
      • データの機能分割
    • 準備と後始末
    • 〇疎結合なテスト/×一貫したテストシナリオ

5.影響・作用

以上の対応により、完全に自動化したプロセスでDBの作成やマイグレーションを行えるようにする。

6.おわりに

以上が、継続的デリバリーの中での、データの管理についての概観です。

7.参考文献

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
第12章 データを管理する

sh0623k
エンジニア3年目です。 未熟者ですが、前向きに解決力をつけていきたいです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした