Webポータルサイトをクラウドネイティブに作り変えた事例を紹介する。アプリの構造が複雑でサービスをタイムリーにリリースできないという課題に対し、マイクロサービスアーキテクチャーを取り入れた。組織体制などを工夫しアジャイル開発のプロジェクトを成功に導いた。

 本連載の最終回です。これまでSystems of Engagement(SoE)に求められる要件に始まり、マイクロサービスやクラウドプラットフォームなどの技術ノウハウを解説してきました。総まとめとして顧客事例を取り上げ、分析・設計手法やチーム体制を含め、クラウドネイティブの考え方に基づいたシステム開発と運用の進め方を解説します。

リノベーションからビジネス革新へ

 ビジネスのトランスフォーメーションやICTシステムのリノベーションは重要ですが、いざ実行するとなると様々なハードルが待ち受けており、なかなか進まないものです。しかし、企業の生き残りをかけて、従来のやり方を見直し、新たな手法に果敢にチャレンジせざるを得ません。今回取り上げるX社も、厳しいビジネス競争で相手に打ち勝つために、ICTシステムのリノベーションからビジネス革新を始めました。

 X社は、運輸・流通業を手掛ける大手グローバル企業で、法人からコンシューマーまで、幅広いニーズをカバーしています。コンシューマーを獲得・維持するには、使いやすいUIを備えたWebアプリを用意し、魅力的なコンテンツを継続的に提供することが不可欠です。X社もWebポータルサイトを持っていましたが、競合他社と比較すると、リニューアルの頻度が低く、魅力的なサービスをタイムリーにリリースできないという課題を抱えていました。

 新たなサービスをWebアプリとして素早くリリースし、より多くのコンシューマーから契約を獲得すべく、コンシューマー向け販売管理システムの再構築が必要と考えました。このような背景の下、IBMはX社と共にコンシューマー向けWebアプリをクラウドネイティブコンピューティング技術を用いてリノベーションしました。プロジェクトは既存Webアプリの移行という側面もありますが、マイクロサービスに基づいたアーキテクチャー見直しに加えて新たなサービスも実装しており、実質的にはスクラップ&ビルドになりました(図1)。

図1●X社クラウドネイティブコンピューティング事例の概要
図1●X社クラウドネイティブコンピューティング事例の概要
[画像のクリックで拡大表示]

 プロジェクトの発端は、ハードウエア機器の更改でした。従来のWebアプリは、X社のデータセンターにある100台弱のApache HTTPサーバーやTomcatサーバー上で運営されていました。サーバー機器の置き換えに伴って目指したのは、コスト削減とアプリの素早いリリース、および柔軟なメンテナンスの実現です。当初はIaaSの採用を想定していましたが、検討の結果、PaaS基盤上でWebアプリも含めてシステム全体をクラウドネイティブ化する方針を選択しました。

 IaaSへの移行では、基盤構築・維持費用を中心に手っ取り早くコスト削減を実現できるものの、アプリは手付かずのままです。スピーディーかつ高頻度でアプリをリリースするには、アプリ構造の見直しが避けられません。PaaSの採用により基盤構築と運用工数の大幅な削減も見込めます。これがPaaS上でのクラウドネイティブ化を方針とした理由です。

開発から半年で本番リリース

 クラウドネイティブ化を進めるに当たり、X社の経営陣によるトップダウンの方針決定が重要でした。それまでX社の情報システム部門はウォーターフォール型プロセスに基づいたシステム開発の経験しかなく、アジャイル開発は未知の領域だったからです。

 製品ソリューションとしては、IBM Cloud PaaSを開発および本番のクラウドプラットフォームとして採用しました。IBM Cloud PaaSは、Dockerコンテナ、Kubernetes、Cloud Foundry、Apache OpenWhiskといったオープンスタンダードテクノロジーに基づいたPaaSです。本案件では、Cloud Foundryベースの軽量Java EEサーバー「WebSphere Liberty」上で、マイクロサービスアーキテクチャー(MSA)に基づいてリファクタリングしたサービスを配置しました。Cloud Foundryのコンテナ技術を採用し、コンテナ、オーケストレーション、MSAというクラウドネイティブコンピューティングの3要素を押さえた構成となっています。

 設計・開発は「IBM Garageメソッド」と呼ぶ手法を用いました。システムのクラウド化を支援するために、設計・開発手法を局面ごとに整理・体系化し、システムの特性や要件に応じた手法を適用します。IBM Garageメソッドを活用したX社のシステム開発の流れを図2に示しました。まず、2~5日のDesign Thinking(デザイン思考)で新たなビジネスのアイデア出しを行います。次にドメイン駆動設計の手法を用いてビジネス要件をICTシステム化につながるようにモデル化し、それに基づいて、アプリを開発します。フィードバックやレビューを受けて、開発、設計、あるいはDesign Thinkingから適宜繰り返します。最後にストラングラーパターンと呼ばれるステップ・バイ・ステップの方式に基づいてアプリをリリース。プロジェクト開始から半年で、最初の本番リリースを迎えました。以降で、各局面を振り返り、主要なポイントを解説します。

図2●X社クラウドネイティブコンピューティング事例の流れ
図2●X社クラウドネイティブコンピューティング事例の流れ
[画像のクリックで拡大表示]