Delphixの仕組み~スナップショット技術により仮想データベースを生成
Delphixを利用する際にはまず、データベースの標準のバックアップ機能(OracleのRMANなど)により本番データベースをDelphixが動作するサーバに取り込む。その後は、変更履歴ログや増分バックアップを定期的に取得して、本番データベースと同期したマスターコピーを保持する。
マスターコピーから、仮想データベースを生成する際に、ストレージやファイルシステムで実装されているようなスナップショット技術と、DBMSのリカバリ技術が使われている。スナップショットは、データそのものではなく、データを格納するブロックを指し示すポインター情報のみを扱うため、仮想データベースに必要なディスク容量はわずかで済む。さらに、物理コピーではないため、瞬時に仮想データベースを生成できる。このスナップショット技術で生成した仮想データベースに対して、DBMSのリカバリ技術を利用して特定時点のデータを再現している。また、開発環境やテスト環境では、Delphixサーバ上で生成された仮想データベースをNFSやiSCSIでマウントして利用する。したがって、開発環境やテスト環境で仮想データベース用にディスク容量を追加する必要はない。
Delphixの導入事例
Delphixは、世界中の数多くの企業で利用されている。その一例を紹介しよう。
オンラインチケット販売企業StubHubは、モバイルアプリケーションのリリースサイクル遅延という課題を抱えていた。その原因として、100人以上の開発者やQA担当者で5つのデータベースを共有しているために複数の作業を同時並行的に進められなかったこと、マスキング済みのテストデータの準備に時間がかかり、古いデータでテストした結果、バグが頻出してアプリケーションの品質が低下したこと、システムテストの後期で不具合が発覚して開発プロジェクトのスケジュールが遅延したことなどが考えられた。
そこでDelphixを導入し、①開発者とQA担当者ごとに仮想データベースを用意して開発の並列度を高める、②開発やテストで発生するデータのリフレッシュ、データの巻き戻しの処理時間を短縮する、③最新状態のデータベースからマスキング済みのテストデータを素早く準備する、④複数アプリケーションが連携するシステムテストのテストデータ準備プロセスを合理化する、ことで開発現場で本番データをすぐに活用できる環境を整備。結果としてアプリケーションのリリースサイクルが月次から日次へ早められ、売上の大幅アップに貢献した。
①StubHub事例:開発、QAの並行環境の提供
②StubHub事例:データ準備時間の短縮
③StubHub事例:マスキング済みデータの提供時間を短縮
④StubHub事例:システムテストのプロセスを合理化
DevOpsを推進するDelphix
近年、アプリケーションのリリースサイクルを短縮化するために、アジャイルやDevOpsに取り組む企業が増えている。しかし、開発、テスト、デプロイの一連の流れにおいてデータの準備・生成に時間がかかり、効率化、自動化を阻むボトルネックとなってしまう例も少なくない。Delphixによる仮想データベースの活用は、DevOpsを推進するうえでも重要な意味を持つ。実際、自動化ツールのJenkinsはDelphix用のプラグインを提供しており、JenkinsからDelphixを呼び出して仮想データベースの生成などの操作を自動化することができる。今後は、他のDevOpsツールとともにDelphixをいかに活用していくかがDevOps推進のカギとなるだろう。
「Delphix」を体感できる無料ハンズオンセミナー開催
「Delphix」の国内販売を手掛ける株式会社アシストでは、定期的にハンズオンセミナーを実施している。直近では、2017年1月20日(金)、2月28日(火)に開催される。この機会に「本番データによるテスト」を実際に体感し、業務における活用イメージを掴んで欲しい。