連載
» 2018年04月16日 05時00分 公開

クラウド、AIで開発、保守を「スピードアップ」(前編):クラウド、コンテナ、マイクロサービスが企業にとって重要なビジネス戦略となる理由

「デジタルIT」「エンタープライズIT」どちらにも求められる、アプリケーションの開発や保守に関わる「スピードアップ」をテーマに、2回に分けて解説する。前編となる今回は、スピードアップへの貢献が期待される、クラウド時代に沿ったモダナイゼーションの4つのアプローチを紹介する。

[山岸道明, 松谷和明, 高澤晃行, 楢原由美子, 渡海浩一, 八木沼剛,日本IBM]

「デジタルIT」「エンタープライズIT」に求められる「スピードアップ」

 「Two Speed IT」という言葉がある。企業の基幹システムのような、業務仕様と信頼性を重視し、ウオーターフォール型の堅実なアプローチで開発、保守を行う、どちらかというと「低速」な「エンタープライズIT」と、B2Cシステムのような、ユーザーからのフィードバックとそれに応えるための素早い開発とリリースサイクルを実現するアジャイル型のアプローチが適する「高速」な「デジタルIT」を指す言葉である。

 デジタルITでは、特にWeb系新興企業においては、クラウドの活用はもはや当たり前といっていいだろう。クラウドの持つスピードと柔軟性は、彼らのアプリケーション開発、実行基盤として非常にマッチするからだ。

 エンタープライズITにおいても、クラウド技術の活用は進みつつあるが、アプリケーション開発、実行基盤として見たとき、その多くはオンプレミスの仮想マシンをクラウド上に移設するアプローチである。もちろん、それによっても多くの恩恵は得られるが、アプリケーションの保守性という観点では、従来と大きく変わるところはない。

 その一方で、技術革新への追随やTime To Marketの短縮といった観点から、エンタープライズITにおいても、従来と比べて、より「短期サイクルでのアプリケーション開発、改修とリリース」つまり、プロジェクト全体の「スピードアップ」が求められてきている。よって、その要請に応えるための運用、保守体制の確立、クラウド技術を一層活用した新たなアーキテクチャの採用は急務であるといえる。

 アプリケーションの開発や保守に関わる「スピードアップ」という言葉には、幾つかの意味が含まれている。例えば、「新規開発のスピードアップ」「修正や改善のスピードアップ」「リソース拡張のスピードアップ」「障害対応のスピードアップ」などだ。これらに加えて昨今では「新技術取り込みのスピードアップ」も実行すべき取り組みとなった。

 本企画では、「デジタルIT」「エンタープライズIT」どちらにも求められる、アプリケーションの開発や保守に関わる「スピードアップ」をテーマに、2回に分けて解説する。

 前編では、スピードアップへの貢献が期待される、クラウド時代に沿ったモダナイゼーションの4つのアプローチを紹介する。その前に、なぜいまクラウドとデータが重要なのか、あらためて振り返ってみたい。

「デジタルIT」における「データ」と「クラウド」の重要性

 「デジタルIT」の実践に向けて、多くの企業がデジタルトランスフォーメーション(DX)への道を歩み始めている。

 その鍵を握るのは「データ」だ。データを、社内の業務システムとしてはもちろん、外部へのサービスとして柔軟かつタイムリーにビジネスに生かすことが求められている。

 デジタルマーケティングの領域で代表されるように、ITシステムから生成される業務データと人や機器から発生する「新しいデータ」の組み合わせ活用が、企業の競争力の源泉になりつつある。

 「新しいデータ」とは、個人の行動に伴うデータ(位置情報や行動履歴、ソーシャルネットワークなどの情報など)や、モバイルデバイス、センサー機器などから収集されるIoT(Internet of Things)データなどである。これらの新しいデータは、「ビッグデータ」という言葉で表される、大量データ、多様なデータであり、流れているデータを素早く処理するニーズから、レガシーシステムで扱うにはしばしば困難を伴う。

 こうしたデータにまつわる課題とクラウドが有効な理由を、幾つか個別に説明しよう。

データ収集、管理コストの最適化

 1つは「データ収集、管理コストの最適化」に役立つ点だ。ITシステムの外で発生するインターネット上の個人データ、IoTデータに加え、SaaSの業務アプリケーションや、クラウドネイティブアプリケーション、外部流通データなどクラウド上で発生するデータの増加に伴い、クラウド上にデータを収集、蓄積する方が効率的な場合が増えている。

 また、生データや長期履歴データの保管に必要なストレージを安価に確保し、一時的なデータ需要に迅速に対応できるのもクラウドの利点である。

AI技術活用に伴う処理性能コストの最適化

 もう1つ、クラウドが役立つ点は「AI技術活用に伴う処理性能コストの最適化」だ。AmazonやNetflixなどのレコメンデーションエンジンで活用されている予測解析の技術では、処理性能の確保が課題となる。データの関係性や傾向を導き出す機械学習の精度を上げるためには大量の非構造化データが必要となり、処理性能のスケーラビリティを経済的に確保できるクラウドがプラットフォームとして適しているといえる。

データ活用ユーザーの拡大

 最後は「データ活用ユーザーの拡大」だ。近年、匿名化された個人の行動や属性に関する情報の活用や企業間でのデータの提供、利用のためのマーケットプレースなどの新しい流通モデルが関心を集めている。新しいデータのエコシステムの実現により、データ活用シーンはますます拡大すると考えられる。場所や時間を選ばず、多くのユーザーがデータにアクセス可能な環境としてクラウドが選択肢となる。

クラウド移行の有用性は分かった。だが「ただ移行する」だけでは足りない

 これらを実現するためには、ビジネスの変化に合わせて柔軟かつ俊敏に対応するシステムの実現と、そのITコストを捻出するためにこれまでに開発された莫大なアプリケーション資産に対する運用、保守のコストダウンが喫緊の課題となっている。

 だが多くの企業においては、クラウドをその解決策として検討しているものの、単なるプラットフォームの刷新やマネージドサービスによるインフラ運用コストの低減の取り組みにとどまっている。アプリケーションレベルでの仮想化技術を使用したリソース集約化や新しい開発ツール、アジャイル/DevOpsによる開発、運用全体でのTCO(Total Cost of Ownership)削減ならびにスピードアップを考慮した取り組みまでは、まだ十分実施、実現できていないのが現状である。

 そこで着目されるのが、既存アプリケーションのモダナイゼーションの推進だ。

 市場や外部環境の急激な変化に対して、企業は新規事業の創出だけではなく、他社と差別化した既存事業の拡大を目指していくことが求められる。しかしながら、その事業の大部分を支える「エンタープライズIT」において、現状はTCOの約8割を占める運用保守費用が足かせとなり、多くの企業が「デジタルIT」のための「IT変革費」に、十分に投資できない状況に置かれている。

 この経営レベルの課題に対して、既存アプリケーションのモダナイゼーションを通じて、企業が投じるIT費用全体の体質改善を図り、IT変革費を通じて企業がより戦略的な事業へ投資できるよう、そして、ITがより一層、事業の拡大に貢献することが期待される。

 既存アプリケーションの運用、保守では、アプリケーションに関わる情報収集やレポーティングなどの定常的な作業の他にも、既存アプリケーションへの機能追加や、アプリケーションの品質に関わる機能改善、さらには法規制や制度対応など、アプリケーションの開発や改修、テスト、リリースを伴うアプリケーションの保守作業が発生する。これらの対応によりITシステム部門は多大な作業工数を要しており、現行の運用保守費用の増大を招いている。

 その解決策の1つとして、注目される技術的アプローチがアプリケーションのモダナイゼーション(ITテクノロジーによるアプリケーションの近代化)だ。アプリケーション自身の変革や開発、保守体制の変革を行うことで、運用保守費用の削減、ならびにアプリケーション開発、保守のスピードアップを目指す。

クラウド時代に沿ったモダナイゼーション、4つのアプローチ

 アプリケーションのモダナイゼーションの定義はさまざまだが、ここからはクラウド技術を最大限に活用した、クラウド時代に沿ったモダナイゼーションのアプローチを4つ紹介する。

【1】既存アプリケーションデータのAPI公開

 既存アプリケーションの構造を大きく変更することなく、企業や消費者を含む社外向けや、社内、パートナー企業向けに、API(Application Programming Interface)を通じて企業内に眠る価値あるデータを公開する。

 FinTechの潮流に後押しされた、金融機関におけるAPIエコノミーの形成を目指した変革も、昨今では業界によらず多くの企業で取り組まれている。これにより、企業は新たなビジネスやサービスを展開する際、市場への投入スピードを圧倒的に改善できるため、最小のコストでモダナイゼーションを実現できる。

 API化はクラウドプラットフォームの特性と高い親和性があるため、アプリケーションのモダナイゼーションの第一歩として取り組みやすく、既に多くの企業で検討および導入が開始されている。

【2】クラウドへの既存アプリケーションのコンバージョン(変換)

 既存アプリケーションを必要最小限の費用と期間でクラウドプラットフォームへマイグレーションする。

 基本的には、アプリケーションの機能(仕様)は移行後も変えず、アプリケーションのプログラムコードのみを移行先のクラウドプラットフォームに合わせ、ツールなどを活用した上で変換する。

 アプリケーションは、独立したサービスに分割してAPIで連携するような保守性の高い構造に変更できないことが多く、アプリケーションの保守作業費用の大幅な削減は期待できない。

 一方で、インフラの構築や運用に関わる作業は、クラウドプラットフォームへの移行に伴い、集約化や標準化、さらには自動化が図れるため、インフラの運用保守作業費用の低減は期待できる。

【3】クラウドでのアプリケーション再構築

 企業のビジネス戦略上、他社との差別化が必要な業務は、アプリケーションとして変化対応力が求められるため、新たにクラウドプラッフォーム上で、最新技術を活用した上で再構築するのが望ましい。

 現行アプリケーションの分析から始まり、時には業務変革も伴うことで、企業の目指すべきITシステム像を具現化するアプリケーションを開発する。その際、できるだけ初期開発コストや構築コストを抑え、スピードアップを図るために、クラウドの「PaaS(Platform As a Service)」として提供されるサービスや最新テクノロジーを最大限に活用する。

 同時に、開発プロセスに対しては、DevOpsのツールチェーン(連鎖的に使われるツールの集合体)を組み入れるなど、開発、テスト、リリースの効率化や生産性の向上を図ることで、現行の開発環境から、より保守性を高めた環境へとシフトする。これにより、アプリケーション開発から運用保守に至るまで、一貫して自動化、省力化およびリードタイムの短縮が図られることで、スピードアップはもちろん、アプリケーションの運用保守費用の低減まで含めたROI(Return On Investment)を実現できる。

【4】「コンテナ」を使用したアプリケーション実行基盤の構築と「MSA」によるアプリケーションアーキテクチャの変革

 【3】に一歩踏み込んで、アプリケーションの再構築において、「MSA(MicroServices Architecture:マイクロサービスアーキテクチャ)」を採用したモダナイゼーションを試行することにより、アジリティや柔軟性をより高めたアプリケーションの再構築が可能となる。

 さらには、プラットフォームとして「コンテナ」を活用することで、保守性を最大限まで高めたアプリケーションの変革を実現できる可能性がある。特に、コンテナを使用したアプリケーション実行基盤の採用は、「エンタープライズIT」の領域においても、よりアジリティ(機敏性)を持った開発、保守体制への変革、スピードアップを促せるだろう。

・「コンテナを使用したアプリケーション実行基盤の構築」

 まず「コンテナを使用したアプリケーション実行基盤の構築」として、昨今急速に採用が広がっているのがDockerに代表されるコンテナ型仮想化技術だ。

 「コンテナ型仮想化」とは、従来使われてきた「ハイパーバイザー型仮想化」とは異なり、プログラムとそれを実行するために必要な最低限のファイルをイメージファイル化し、ホストOS上の単なるプロセスとして実行する仕組みである。それ自体は新しい技術ではないが、それを本番システムで運用するために必要不可欠となる、冗長化や資源配置の仕組みを行うオーケストレーションツールが整備されたことが大きい。

 その代表であるKubernetesは、現在の主要クラウドベンダーの多くが、採用を表明したり、既にマネージドサービスの提供を開始したりしている。また、Kubernetesをオンプレミス上で運用可能な製品もリリースされ始めている。これにより、オンプレミスからパブリッククラウドまで、同一のアーキテクチャでアプリケーションが開発、実行可能となった。

IBM Cloud PrivateやRed Hat OpenShift Container Platformなど

・MSAによるアプリケーションアーキテクチャの変革

 一方、コンテナ型仮想化の浸透とともに、MSAの採用も着実に広がっている。

 従来、Webアプリケーションは、単一のアプリケーションモジュール上に多くの機能を実装する傾向にあった。肥大化したアプリケーションは、わずかな変更であっても、影響分析やテストに多くの工数を要し、リリース作業においても、システムの停止を伴うか、ローリングアップデートのために多くの人手を伴う作業を行ってきた。

 しかし、コンテナを活用することで、これらのワークロードを軽減できる新しいアーキテクチャの適用が期待できる。それがMSAである。

 MSAは、ThoughtWorksのJames Lewis氏とMartin Fowler氏が提唱した、ベストプラクティスベースのアーキテクチャスタイルである。具体的には、従来のように1つのアプリケーションに全ての機能を実装するのではなく、個々の機能を、機能単体で独立して開発、テスト、リリース、実行が可能な「サービス」と呼ばれる小さなプログラムに分割し、サービスが公開するAPIを組み合わせることで、アプリケーションを開発するものである。

 サービスと他サービスやアプリケーションとの関係はAPI仕様のみがコントラクト(契約)であるため、API仕様を変更しない修正は、他のサービスに影響を与えない。そして、コンテナの持つポータビリティー(可搬性)は、マイクロサービスの実行基盤として最適であるといえる。

 開発、保守対象が小さいということは、多くのメリットをもたらす。まず、コード全体の見通しが良くなることで、影響分析や改修箇所の特定が容易になる。次に、コードに変更を加えた場合、テスト対象も該当サービスに限定される。そして、他のサービスの状態を気にすることなくリリースすることが可能になる。

後編は「AIを活用した次世代超高速開発」について

 このようにクラウド時代に沿ったモダナイゼーションは、過去の単なるデータセンター移転やインフラ刷新などとは異なり、企業が自社で抱える膨大なIT運用、保守費用の低減を図り、次の攻めの一手となるIT変革費への投資ならびにスピードアップを可能とする、企業にとって重要なビジネス戦略として捉えることが必要である。

 次回、後編では、アプリケーション開発、保守プロジェクト全体のスピードアップを目指した取り組みである「AIを活用した次世代超高速開発」を紹介する。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。