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