ホワイトペーパー紹介|今日のDevOpsの課題とは
こんにちは!インサイトテクノロジーマーケティング本部です。
今や、弱肉強食ならぬ「遅肉速食」の時代と言われています。アプリケーション主導型のイノベーションがあらゆる業界で広がっており、開発におけるトランスフォーメーションには一刻の猶予もありません。そこで、あらゆる業界の企業が、アプリケーションの迅速な開発に、DevOpsを採用しています。「DevOps」は多くの方にとって聴き慣れた言葉ではありますが、その目標が、ビルド/テストサイクルを短縮し、高品質のリリースを事業部門に迅速に提供できる、継続的インテグレーション(CI)と継続的デリバリー(CD)の実現になります。
しかし、残念なことに、多くのチームが取り組んでいるCI/CDパイプラインでは、ソフトウェア開発ライフサイクルの最も重要な要素への対応が十分ではありません。それはデータです。運用チームがわずか3分で新しいアプリケーション環境をプロビジョニングすることができる場合でも、必要なデータが使えるようになるまでには、3週間もかかることがあるのではないでしょうか。つまり、データデリバリの自動化こそが、DevOpsの目標を実現する鍵となることが分かります。
今回ご紹介するホワイトペーパーでは、従来型の開発手法とCI/CDを比較した上で、如何にデータデリバリの自動化を通じてDevOpsワークフローの課題を解消するのを解説します。また、それを実現するためのテクノロジーであるDelphix Dynamic Data Platformをご紹介します。
CI/CDとは
CI/CDパイプラインでは、開発の変更が共通リポジトリにマージされ、ソフトウェアビルドにパッケージ化されて、自動的にテストが行われます。従来の方法では、それぞれの開発者が、長期にわたる開発サイクル中に、機能を個別に作成し、最後にそれらを提出しなければならないのですが、CI/CDでは、常に1日に数回コードを提出できます。変更を継続的に統合することによって、より早く、より頻繁にソフトウェアのテストを実行でき、統合コストを削減できます。
従来型の開発手法 | 継続的インテグレーション/継続的デリバリー(CI/CD) |
少ない開発サイクルで、大きな単位で、アプリケーションを開発する | 反復的な開発サイクルで、小さな単位で、アプリケーションを開発する |
相当な量のコードを開発した後に、ソフトウェア開発ライフサイクル(SDLC)内の長期にわたる1つの局面で、テストを実施する | 開発者は、SDLC全体にわたって、開発とテストを実行する(開発のごく初期から行う) |
コード変更のマージの頻度は少なく、少ない回数の大規模かつ複雑な統合を行ってから、アプリケーションがリリースされる | 変更は既存のコードベースと高い頻度でマージされ、開発者はコードを1日1回または複数回コミットする |
新しいリリースを本番環境にデプロイするには、手動プロセスと承認ワークフローが必要 | 新しいリリースをデプロイするには、自動化、オーケストレーション、コラボレーション、監視のツールへの高レベルの投資が必要 |
従来型の開発手法とCI/CDの相違点は上記の表でまとめております。CI/CDプロセスでは、変更がコードベースにコミットされ、集中デプロイメントパイプラインによって、新しいソフトウェアビルドが作成され、段階的テストセットに送信されます。ビルドがパイプラインの各段階に進行し、クリティカルテストに失敗した場合には、進行が停止し、アラートが発行されます。成功した場合には、テストパイプラインの次の段階に進行します。最終的には、ソフトウェアの本番環境へのデプロイ準備が完了となるポイントに到達します。
DevOpsツールチェーンにおけるデータの課題
十分に完成されたCI/CDプロセスでは、コードベースは常にデプロイ可能となります。このレベルに達するためには、さまざまなSDLCの要素(インフラ、コード、データなど)をすばやく準備できるツールチェーンが必要となります。またこれを、パイプラインのすべてのステージで行える必要があります。
さらに、ツールチェーンは、これらの要素のオーケストレーションを行って、あらゆる点で本番環境に忠実なテスト環境を作成できる必要があります。ソフトウェアがデプロイされるライブ設定で発生する可能性がある条件に対してテストと検証を実行することにより、実際のリリースの本番環境での動作予見性を高めることができます。
自動化と迅速化は、SDLCの多くの部分に及んでいますが、多くのチームでツールチェーンから外れているものは、データです。テストデータのプロビジョニングは、はるかに時間がかかる手動のタスクです。特に、アプリケーションの元となる本番データベースの忠実なフルコピーが必要な場合はなおさらです。本番システムから開発/テスト環境への、データの抽出、コピー、移動という、時間のかかる非効率的なプロセスが、DevOpsチームの大きな制約となります。新しいデータ環境のプロビジョニングに、1週間以上もかかることもあります。
今日のCI/CDパイプラインで求められる速さでテストデータをプロビジョニングすることが困難なため、多くの場合、プロビジョニングのスピードを取るか、テストデータの品質を取るかの、悩ましい選択を迫られます。
本番データのフルコピーを待つ代わりに、手動またはツールによって作成された合成データを使うこともあります。合成データセットは、短時間で生成できる場合もありますが、そのテストデータでは本番環境を十分正確に反映できず、品質保証チームがエッジケースやコーナーケースのシナリオへの対応を見逃す可能性があります。
一方、本番データのサブセットを使用する場合には、ストレージ容量の心配は軽減できますが、やはりデータ品質の問題が発生します。さらに実際には、データプロビジョニングのプロセスにかなりの時間がかかることもあります。つまり、多くのDevOpsチームでは、本番環境と同質のテストデータを迅速かつ自動的にプロビジョニングできるソリューションを備えていないのです。
テクノロジーの概要:Delphix Dynamic Data Platform
上記の問題を解決するためのソリューションはDelphixより提供されています。Delphix Dynamic Data Platformは、ソフトウェア開発ライフサイクルの各ステージで、データをプロビジョニングするための堅牢なプラットフォームです。仮想化による効率的なデータの保存や提供と、データマスキングによるリスク軽減とコンプライアンスを実現し、さまざまなクラウドやデータソースにわたって、APIを使った自動化をサポートします。
Delphixは、データソースに影響を及ぼすことなく、継続的に同期を行い、変更履歴を継続的に維持するほか、圧縮とインテリジェントブロック共有を活用して、仮想データコピーをプロビジョニングします。これにより、物理ストレージを最適化しながら、履歴内の任意の時点に対応することができます。わずかなストレージで、複数の仮想データコピーをサポートでき、物理コピーのための専用ストレージの必要がなくなります。
ここまでは、CI/CDプロセスの特徴、ツールチェーンにおけるデータプロビジョニングの問題およびDelphix Dynamic Data Platformの概要を紹介しましたが、本資料では、下記で挙げられた課題の詳細内容も記載されています。貴社の開発/テスト環境においてDevOpsの迅速化と自動化に課題を抱えている方は、ぜひこちらからホワイトペーパーをダウンロードしてご一読ください。
- ソフトウェアパイプラインの制約の変化
- CI/CDにおけるデータプロビジョニングの自動化を図るための主な要件と考慮すべき点
- データプロビジョニングへのプラットフォームベースのアプローチ
- Delphix Dynamic Data Platformの機能に関して
- 1. セキュアでセルフサービス型のデータアクセスと制御
- 2. さまざまなユースケースにわたってデプロイの柔軟性と迅速なデータデリバリーを実現
- 3. データ環境の迅速なプロビジョニングによる本番サポート