Video
新鮮でコンプライアンスに準拠したデータを用いてアプリケーションテストを実施することは、アプリケーションリリースの迅速化やテストを効率化するうえで重要の要素です。従来型のテストデータ準備は、チーム全体をスローダウンさせ開発遅延が生じボトルネックとなることがありました。Perforce Delphixは軽量で本番同等の品質を持ったデータ環境をオンデマンドかつセルフサービスに運用できる機能を提供することで、これらの障壁を排除することができます。
このビデオでは、Delphixがテストデータ管理をどのように変革できるかを紹介します。 Principal Solutions EngineerのCarlos Cuellarが、仮想データベースの迅速な作成やブックマーク作成や巻き戻しおよびデータ状態の保存と戻し、加えてDelphix APIとJenkinsを用いたテスト自動化といった主要な機能を紹介します。
このビデオは以下をどのように実現するか紹介します:
- 軽量な仮想データベースのプロビジョニング: コンプライアンスに準拠した本番データ由来のテストデータを、非本番環境にストレージのオーバーヘッドなしに迅速に提供できます
- データのブックマーク活用: アプリケーションテストの仮定の任意の時点で永続的なスナップショットを作成することで、データの特定の状態を保持したりテスト開始時点をベースラインとして保持することができます
- 独立したテスト実行: 他の開発やQAテスト作業に影響をあたえることなく、独立したテストデータの複製を用いて複数・並行してテストを実行できます
- データの即時巻き戻し: 1分以内に以前の状態にデータベースを戻すことで、障害テスト後の戻しやテストの再実行のためのデータ状態回復を迅速に行えます。
- データ運用の自動化: デモ動画の様にDelphixと既存のCI/CDパイプラインを連携することで、テストデータのライフサイクルを完全自動化することができます。
- リリースサイクルの短縮: テストの時間を短縮し不具合を早期に検出し開発業務全体の生産性の向上が可能です。
テストデータ管理を変革したいですか?
Delphixがアプリケーションのビルドやテスト,リリースをどのように強化するか確認ください。Delphixのデータ仮想化が貴社のDevOpsのゴール達成にどのように貢献できるか確認するために、個別のデモをリクエストしてください。
デモビデオの文字起こし
みなさんこんにちは、私の名前はCarlos Cuellarです。Perforce DelphixでPrincipal Solutions Engineerとして働いています。本日は、Delphixが持つブックマーク作成やテスト、巻き戻しの機能についてご紹介します。
まず最初にDelphixがどういうものかについて簡単に説明します。Delphixはテストや開発を目的に、本番データを非本番環境へ仮想データベースと呼ぶ軽量な複製データ形式で提供するDevOpsデータプラットフォームです。
これらのプロセスの過程において、どこに機密データが存在するかを検出しそれらをリアルかつ匿名化/架空化したデータとしてマスキングを行いながら、複数のデータソース間での整合性を維持するといった機能も提供しています。
プロビジョニングされた仮想データベースに対しては、アプリケーション開発やQAテストなどの局面で、各チームが自身の仮想データベースを最新の本番データを用いてリフレッシュさせたり、スナップショットを作成したり、以前記録した任意の時点のデータへロールバックしたりすることができます。
もう少し詳しくどのように仮想データベースが動作するか説明します。まず、Delphixは本番環境のデータに接続されています。
Delphixはバックアップやデータを取り込む仕組みを用いているため、本番環境を大きく変更するするものではありません。継続的にデータを取り込むことでデータのタイムラインを構築します。これにより、任意のバックアップ取得/データ取り込み地点を用いたデータの複製を複数作成することを可能にします。
Delphixはこれら取り込んだデータを約1/3にデータ圧縮し、そこから軽量な複製である仮想データベースを作成します。
この仮想化の仕組みはデータブロックを全て複製するのではないため、仮想データベース作成直後は非常に少ない容量しか消費しません。
Delphixは作成した各々の仮想データベース(VDB)に対してもタイムラインを作成し、最新の本番データと同期させたり、スナップショットを作成したり、以前記録した任意の時点のデータへロールバックなどのデータ操作機能を提供します。これらの機能は、Delphixがこれらの仮想データベースに対する変更を全てトラックすることで実現しています。
セルフサービス機能を用いると、先のデータ操作全てがユーザー自身で可能となり、この様なデータ操作権限をアプリケーションチームに付与することで、チームは開発やテスト作業中に必要なデータ操作全てをオンデマンドで実施することができます。
簡単な事例を用いて説明してみます。まず初期状態を保持するためにブックマークを作成します。その後いくつかのテストを実行しデータが更新されますが、ブックマーク時点に簡単に戻すことができます。このようなデータ操作機能によりテストのサイクルを早め、不具合の早期に検出やリリースサイクルの短縮貢献し、開発チームの生産性向上に繋がります。
それではデモ環境へ移動して、どのように動作するか説明します。
Oracle masterという名前のOracleデータベースからデータ取り込みが行われたデータソースがここにあり、VDEMO1という名称でこのOracle masterから仮想データベースを作成済みです。
VDEMO1はこちらの画面で確認でき、これを用いてテストを行います。
データの内容を確認します。3つのテーブルが存在しこれらに対して様々なデータ操作をデモしたいと思います。
本番データソースへ接続します。
これらのクエリを実行してデータの中身を確認します。
CLUBSテーブル内には30行格納されています。PLAYERSテーブルには950行, NATIONAL_TIEAMSテーブルには20行格納されています。
VDEMO1仮想データベースへ移動します。フルコピーなので本番データと同じ量のデータが存在するはずです。このようにCLUBSには30行が格納されています。
PLAYERSには950, NATIONAL_TEAMSには20行確認できます。それではこの状態ベースラインとしたいと思います。
そのためにはどうすればよいでしょうか?
次のスライドで具体的なプロセスを説明します。
Delphixを使用しながら、3つのテストを実行すると仮定します。
Delphixでブックマークを作成すると、テスト後にそのブックマーク時点に戻すことが出来るようになります。ということで、まずテストを開始する前にブックマークを作成します。
1つめのテストを実行しデータがいくつかのテーブルに追加されました。その後再度ブックマークを作成します。ここでブックマークを作成する理由は後ほどわかります。
2番目のテストを実行します。ここでテーブルを1つドロップします。
この時点を保存したいので、ここでも再びブックマークを作成します。その後3番目のテストを実行し再びいくつかのテーブルを更新します。
しかし、1つのテーブルがドロップされているため、このデータ更新は失敗します。したがって、1番目のテスト終了時点に戻る必要があります。ロールバックして1番目のテスト後の状態に問題がなければ、3番目のテストに進むことができます。その後3番目のテスト終了後にもブックマークを作成し検証します。これが全体のワークフローです。
それではデモ環境へ戻りデモを進めます。このようにソースとVDBが確認できます。この画面から全てのオペレーションは可能ですが、今回はAPIを用いた実行をお見せしたいと思います。
ここに全てのフェーズの操作を組み込んだパイプラインがあります。このパイプラインの実行の様子をこの画面とDelphixのGUIの両方から確認します。
それではパイプラインを実行しました。このようにワークフローが進んでいることが確認できます。今まさに、テストを実行する前の最初のブックマークを作成しているので、Delphix側の画面に切り替え実行の様子を確認します。
そろそろdelphix上で確認できるはずですので、VDEMO1データベースへ移動します。この様にワークフロー内で作成されたブックマークが確認できました。
Jenkinsの画面にもどり、この先の動作をステップ毎に確認します。
テスト前の最初のブックマーク作成が完了した後に、1つめのテストが実行されます。PLAYERSとCLUBSテーブルにレコードが追加されたことが確認できます。PLAYERSは950, CLUBSは30レコードの状態でしたが、それぞれに5レコード追加されたことが確認できるはずです。
そのあとに、1つめのテスト終了後のブックマーク作成が始まります。これは1つめのテスト実行結果をデータベース上で確認するためです。加えて、この状態のデータを3番目のテストで使用する必要もあります。
Delphix画面に戻ると、そのブックマークが確認できます。
Jenkins画面上で「Create Bookmark」が実行されていますが、これは実際にはDelphix側で動作しています。
ブックマーク作成が完了し、2番目のテスト完了後のブックマークも得られました。しかし、3番目のテストを実行する前に、1番目のテスト完了後の状態に戻る必要があります。このロールバックオペレーションは今実行中で、Delphix画面上からもこのように確認できます。
その後3番目のテストを実行し、このように実際に何が行われているか確認できます。
PLAYERSテーブル内のアップデート対象のレコードを検証しています。
アップデート対象のレコードが正しいデータ状態か実行前に確認する動作です。そのあと、特定のPlayerレコードのCLUB_ID値を変更します。
テストが完了したら、完了時状態を保存するためにブックマークを作成します。
最後に一連のワークフローに対する検証処理を実行し、これが完了しました。
パイプラインは完了しました。全てのステップは正常に動作し、プロセスが問題無いことが検証されました。Delphix画面に戻り、該当のVDBのブックマークの状態を確認します。
ここに全テスト実行前と実行後の全て状態がブックマークとして存在します。このように、Delphixは各テストの状態や開発の過程など必要なタイミングを保持し確認できる非常にパワフルなツールで、全てのテストや開発プロセスを加速することができます。
お時間を頂きありがとうございました。