企業はDevOpsを導入することで、コラボレーションの改善、迅速なイノベーションの推進、品質の向上、デリバリーサイクルの短縮などを実現することができます。その一方で、IDC Japanの調査によると日本企業におけるDevOpsの実践率は2019年時点で35.7%と、拡大傾向にはあるもののいまだ低水準です。この背景には、従来のウォーターフォールモデルがもたらした正確性や完璧主義を求める日本の企業文化との対立があると考えられます。

またIDC Japanは2020年、DevOpsソフトウェアの投資における優先分野として、バージョン管理、CI(Continuous Delivery:継続的デリバリー)/CD(Continuous Deployment:継続的デプロイメント)、テスト自動化、アプリケーションのパフォーマンス管理を挙げ、リモートでのアプリケーション開発や運用を容易にするクラウドに対する需要が高まっていると報告しています。

さらにDevOpsソフトウェア市場は、2019-2024年の期間で、20%を超える年平均成長率で成長すると予測されています。DX(デジタルトランスフォーメーション)の取り組みの一環として、DevOpsなどの新しいプロセスを採用して、ソフトウェアの俊敏性、生産性、開発力を向上させる企業がますます増えています。

一方で、DevOpsのプロセスをデータレイヤーにまで展開していない企業も散見されます。データの扱いは難しいと言われますが、アプリケーションで生成・処理されるデータは、アプリケーションよりも重要です。それでは、なぜこのデータは、アプリケーションと同様にDevOpsの恩恵を受けられないのでしょうか。

その理由の一つは、データを扱うことは、慣れていないアプリケーション開発者やデータ担当者にとって憂慮すべきことだからです。アプリケーション開発者はデータベースとデータ管理に慣れていない、また、データ担当者はDevOpsの速いペースに慣れていない可能性があります。こうした懸念はもっともなことです。

俊敏性は通常、データプラットフォームにはあまり要求されない性質で、データベースのスキーマ(または実際の値)の更新には時間がかかります。スキーマの更新時に不具合が生じると、データの損失や論理的破損が発生する可能性があるため、データ更新には固有のリスクも伴います。こうしたリスクを軽減するには、特別な対策を講じる必要があります。

DevOpsにデータを組み込むという課題は非常に重要です。これは、「データDevOps」と呼ばれるデータに特化したコミュニティが存在するほどです。こうしたコミュニティでは、どうすればDevOpsの技術とツールをデータに適用できるかを意見交換しています。

しかし、データとDevOpsは切り離して考えるべきではありません。DevOpsの取り組みにおいてデータを重要視しなければ、企業はメリットを十分に享受することができません。以下、データをDevOpsに組み込む主なメリットを整理してみます。

デリバリーサイクルの短縮

DevOpsは継続的なインテグレーションとデリバリーに重点を置いているため、エンドユーザーが機能を迅速に提供でき、価値を生み出すまでの時間を短縮できます。ただし、実装にデータが含まれていない場合は、データの変更、スキーマの更新など、新機能がデータレイヤーに影響を与えるたびに、ビジネスが停滞してしまいます。

デリバリーサイクルを短縮するには、アプリケーションのすべての部分の納品を迅速化する必要があります。もちろん、これにはデータレイヤーも含まれます。そうしないと、データやスキーマの変更の度に、開発作業やリリースが遅れる可能性があります。

品質の向上

DevOpsにより提供される機能の品質が向上する理由としては、CI/CDパイプラインにおけるテストの自動化が進んでいる点が挙げられます。アプリケーション開発において、テストの自動化は標準的なプロセスですが、データのテストと検証の自動化も重要です。

データ品質を向上する上で重要なポイントは、上級管理者向けのダッシュボード、運用管理者向けのレポート、予測分析など、最初に作成されたアプリケーション以外にもさまざまな形でデータが使われているという点です。

データ統合、分析、レポートなど、データを中心としたプロセスは、モダンアプリケーション開発にとって重要であり、アプリケーション機能と同様に、自動テストでそれらをカバーする必要があります。

自動化されたデータテストが重要であるもう1つの理由は、データが揮発性であり、実際のシステムにおいて最も不安定な部分だからです。DevOpsパイプラインはアプリケーションコードを制御しますが、データはいくつかの個別のチャネルからビジネスに流れ込みます。多くの組織では、レガシーアプリケーション、パートナー、ユーザーによる直接入力、第三者組織のアプリケーションが、すべてのデータソースとなります。チームは、アプリケーションが複数のソースから収集されたデータを処理できるかどうかを確認する必要があります。

最後に、おそらく最も重要なこととして、データの寿命は最初にデータを作成したアプリケーションよりもはるかに長くなることがあります。クライアントサーバ時代に始まり、Web 1.0時代に最新のフロントエンドテクノロジーにアップグレードし、現在はWeb 2.0やクラウドネイティブなアプリケーション開発モデルに移行しているデータベースを見るのは珍しいことではありません。

しかし、元のデータベースは、エッジにいくつかの変更が加えられていますが、基本的には最初に作成されたものと同じです。今日、自動化されたデータテストをDevOpsのベストプラクティスに追加することで、今後数十年間にわたって使用される可能性のある高品質なデータを確保することができます。

迅速なイノベーションを推進

企業は常に新しいサービスや機能を導入する必要に迫られていますが、DevOpsを導入することで、迅速にイノベーションを推進できます。また、追加の更新を頻繁に行うため、最も必要とされる機能を容易に提供することができます。ただし、このメリットは以下の2つの要素に依存します。

  • 品質:データのテストと検証により品質を確認でき、開発者が迅速に変更を加え、不用意にシステムの別の部分に影響を与えないようにするためのセーフティネットが提供されます。
  • 復元可能性:期待通りに動作しない機能や不適切なデプロイメントからの復元が可能です。

アプリケーションコードの復元は簡単です。必要なのは、更新されたバージョンを展開して、必要に応じて動作していないコードを置き換えることです。

一方、データの復旧はもう少し複雑で、スキーマの復元やデータ変更のロールバックなどが必要になります。DevOps環境では、データの復旧に対処する計画を立てることが重要です。これは、不具合が生じた時点でそれを認識できるということでもあり、デリバリー・パイプライン全体を通してテスト、可視化、監視を行う必要があります。

コラボレーションの向上

DevOpsの導入で得られるもう1つのメリットは、コラボレーションの向上です。DevOpsの導入における重要な要素の1つは、アプリケーションを本番環境に実装する担当者間のコラボレーションを強化することです。

こうしたコラボレーションにより、デリバリー・プロセスのどの部分も省略されずに済みます。また、チームがアプリケーション・デリバリーを成功させるためのあらゆる側面を検討することができます。データの作成や保守をするデータ担当者は、アプリケーションがデータとどのように相互作用し、組織全体における一連のデータの流れを知る手助けをします。データ系統を理解することで、変更に伴う潜在的な影響を全員に周知することができます。

データの優先順位付け

DevOpsが提供する価値を最大限に引き出したい場合、アプリケーションに優先順位を付けるのと同様に、DevOpsプロセスにおいてデータに優先順位を付けることが重要です。データを組織の盲点にしてはいけません。ビジネスにはデータやアプリケーションの自動化、可視化、透明性が必要です。

DevOpsの専門知識やベストプラクティスが増えるにつれて、多くの企業がDevOpsへの投資から価値を得られるようになるでしょう。

著者プロフィール


SolarWinds Head Geek、Kevin Kline(ケビン・クライン)

SolarWindsのHead Geekとして、エンタープライズアーキテクチャ、ITリーダーシップスキル、トラブルシューティング、オンプレミスおよびクラウドでの最適なデータベースパフォーマンス監視のためのベストプラクティスの採用など、各分野で顧客をサポートしている。

また、Serverプロフェッショナル協会(PASS)の創設ボードメンバーおよび前会長であり、ブログやデータベースコラムを積極的に執筆している。