「Time to Market」の短縮がビジネス価値、競争優位性につながる
変化の激しい市場においてビジネス価値を向上し、競争優位性を獲得するには、品質の高いアプリケーションを開発することはもちろん、リリースサイクルを高速化することが必須である。「Time to Market」(市場投入までの時間)を短縮するためにアジャイルやDevOpsに取り組む企業が増えているが、最近では開発・テストで本番データを利用することでリリースサイクルの高速化と品質の向上を両立させる事例が増えている。
開発・テストには、テストデータが必要だ。特にテストでは、単体、結合、システム、受け入れなど、テストごとにデータを用意しなければならない。開発・テストの現場では、開発者やテスト担当者が独自にデータを生成することがほとんどだと思われるが、データに起因する問題が発生し、品質やリリースサイクルを大きく阻害することも少なくない。本番環境で運用中のデータベースからデータを流用できればよいが、残念ながらそれが簡単にはできないというのが開発現場での現状ではないだろうか。
開発・テスト工程で発生するデータ起因の問題
開発・テストでは、テストデータに起因する問題が発生する。たとえば、本番環境で運用を開始した後にデータベースに想定外のデータが入り込み、アプリケーションに不具合が発生するといった問題がある。開発者やテスト担当者が開発時に想定したデータと、実際にアプリケーションの利用者が入力したデータの差から発生する問題であるが、リリース後に見つかったときの影響は決して小さくない。
また、システムの性能障害につながる不具合も発生し得る。開発・テスト環境では問題ないが、大量のデータを抱える本番環境ではアプリケーションの応答速度が遅延するというのもよく聞く話である。
本番環境と開発・テスト環境で利用するデータが異なると、問題の原因を特定できず解決までに時間がかかってしまうケースもある。あるプロジェクトでは、本番環境で発生した性能障害を開発・テスト環境で再現できず、半年以上も解決できずにいた。ハードウェアベンダーの検証ラボに、本番環境と同じストレージを用意し、本番データベースのバックアップテープを輸送して、検証ラボの環境に展開し、問題となったSQLを動かしてみると、すぐにその現象が再現され、わずか数時間で原因が突き止められたとのことだ。
また、テストデータでは十分なユーザ体験が得られないことも問題視される。"TestTestTest"といったデータでは、アプリケーション画面の各項目の意味が直感的に伝わらず、画面デザインが適切かどうかの判断も難しい。特に受け入れテストでは、実際の利用者に混乱を与えかねず、テストが成立しない事態にもなりかねない。
開発・テストでの本番データ利用を阻む高い壁
開発・テスト環境で本番データを利用できないのはなぜだろうか。
まず、現在の技術では、大容量のデータベースを開発・テスト環境にコピーするのに非常に長い時間がかかる。たとえば、5TBバイトを1Gbpsのネットワークを介してコピーする場合、ネットワークの伝送時間だけでも19時間(伝送効率が65%の場合)かかる計算だ。さらに、コピーするにはストレージ容量も必要になる。開発、単体テスト、結合テストなど複数の環境に用意すると、その分だけストレージのコストがかかってしまう。
また通常は、本番データが厳密に管理されており、開発者やテスト担当者が任意のタイミングで自由にコピーできないことが多い。大抵は、システム管理者などに利用申請をし、いくつかの手続きを経て利用可能になる。企業によっては、実際にデータが手元に用意できるまでに、数日間、ときには数週間を要することもあるようだ。
セキュリティ上の制約もある。データベースに個人情報を特定するデータが含まれている場合、そのまま利用すると情報漏えいにつながりかねない。一部のデータを見えないようにマスキングを施すとなると、準備にさらに時間がかかってしまう。
「Delphix」を体感できる無料ハンズオンセミナー開催
「Delphix」の国内販売を手掛ける株式会社アシストでは、定期的にハンズオンセミナーを実施している。直近では、2017年1月20日(金)、2月28日(火)に開催される。この機会に「本番データによるテスト」を実際に体感し、業務における活用イメージを掴んで欲しい。
Delphixの導入による本番データの活用
Delphixは、本番データベースを仮想データベースとして瞬時に利用可能にすることで、アプリケーションの品質の向上、プロジェクト工数の削減、開発期間の短縮などを支援するソリューションだ。具体的には次のようなことが可能になる。
特定の時点のデータを持つ仮想データベースをすぐに利用できる
本番データベースをもとに、開発環境やテスト環境に仮想データベースを数分で生成できる。煩雑で時間がかかる準備が不要で、必要なときにすぐに本番データを利用できるため、データ準備の待ち時間の短縮が可能になる。また、本番データを利用することで、本番環境のユーザ体験を得られるほか、データ起因の不具合の早期検出、アプリケーションの品質向上を期待できる。
複数の仮想データベースを利用し、並行作業が可能に
仮想データベースを生成しても、その環境に物理的にデータベースが生成されるわけではなく、ストレージ容量を追加する必要がない。また、仮想データベースはそれぞれ独立しており、他のデータベースに影響しないため、環境ごとに生成して開発やテストを並行して進めることができる。
タイムライン上の任意の時点のデータに巻き戻すことが可能
条件を変えてテストシナリオを再実行する場合、テストの実行後にデータを元に戻す作業に時間がかかり、テスト工程が停滞することがある。Delphixでは、仮想データベースを最新状態にリセットするリフレッシュ機能、任意の時点を記録するブックマーク機能、任意の時点にデータを巻き戻すリワインド機能を使い、必要に応じてデータを特定の時点の状態にすぐに戻すことができる。
ルール設定によりマスキングを自動的に適用
あらかじめ、どのデータをマスキングするかルールを設定しておくと、仮想データベースの生成時およびリフレッシュ時にマスキング処理が自動適用される。データのフォーマットの一貫性を保ったまま、開発者やテスト担当者が個人情報を参照できない状態で本番データを利用できるため、セキュリティを確保できる。
仮想データベースから別の仮想データベースを生成するブランチ機能
テストの実行結果を別のテストに引き継ぎたい場合や、アプリケーションのバージョンごとにデータベースを管理したい場合などに、ブランチにより仮想データベースから別の仮想データベースを生成することができる。
GUI画面で簡単操作
開発者やテスト担当者は、Delphixの利用者画面から仮想データベースのリフレッシュ、リワインド、ブックマーク、ブランチを簡単に操作できる。データベースに関する知識は必要ない。
「Delphix」を体感できる無料ハンズオンセミナー開催
「Delphix」の国内販売を手掛ける株式会社アシストでは、定期的にハンズオンセミナーを実施している。直近では、2017年1月20日(金)、2月28日(火)に開催される。この機会に「本番データによるテスト」を実際に体感し、業務における活用イメージを掴んで欲しい。
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日(火)に開催される。この機会に「本番データによるテスト」を実際に体感し、業務における活用イメージを掴んで欲しい。