金融、産業、流通、公共の各業界トップ ユーザー向けに、大規模かつ先進的な業務アプリケーションの設計/開発を行っている、株式会社日立製作所 (日立) アプリケーションサービス事業部。ここでは統合アプリケーション構築基盤である「Justware」を、米レッドハット社の Docker コンテナ基盤である「OpenShift Container Platform」に対応させたうえで、Microsoft Azure 上で利用可能にしています。それではなぜ同社は Justware のコンテナ化/クラウド化を進めているのでしょうか。サービスソリューション本部 サービス統括部 担当部長の広瀬 雄二 氏と、サービスソリューション本部 技術統括部 部長の立川 茂 氏に、お話をお聞きしました。
写真左より、株式会社日立製作所 ICT事業統括本部 アプリケーションサービス事業部 サービスソリューション本部 サービス統括部 担当部長 広瀬 雄二 氏、株式会社日立製作所 ICT事業統括本部 アプリケーションサービス事業部 サービスソリューション本部技術統括部 部長 立川 茂 氏
Justware の概要と注目すべき特長
―― 御社は 2016 年 10 月に、日立アプリケーション フレームワーク「Justware」の Azure 対応を発表しました。まずはこの Justware とはどのようなものか、簡単にお教えいただけますか。
広瀬 Justware は、オープン プラットフォーム環境でミッション クリティカル システムを構築するための統合アプリケーション構築基盤であり、大きく 4 つの要素で構成されています。第 1 はランタイム ライブラリ。これは JavaEE 最新バージョンである JavaEE7 に対応し、JavaEE7 で提供される JSF、JPA、JAX-RS、jBatch などの仕様に準拠したフレームワークとライブラリ群を提供するものです。これによってミッション クリティカル システムに求められる性能や信頼性、拡張性を実現する豊富な部品群と制御ロジックが利用でき、開発者は業務ロジックの開発に集中できるようになります。第 2 は開発支援ツールであり、プログラムの設計/製造を支援する各種ツール群を提供します。プログラムの設計情報は統合リポジトリで一元管理でき、ソース コードやテスト コードの自動作成、テスト エビデンスの取得支援、エラー解析支援、プログラム変更時の影響分析、既存コードから設計情報を抽出するリバース エンジニアリングなどの機能も用意されています。第 3 は開発ガイドラインであり、Justware を適用した開発手法を標準化した開発ガイドラインを提供。第 4 は統合開発環境で、いまご説明したランタイム ライブラリや開発支援ツール群に加え、オープン ソースの開発ツールも組み合わせたアプリケーション統合開発環境を提供しています。これらを組み合わせたフレームワークをご活用いただくことで、JavaEE をベースにした大規模エンタープライズ アプリケーションを、効率的に開発できるようになります。
―― 他の開発フレームワークに対する強みは。
広瀬 大規模プロジェクトでのアプリケーション開発において、品質のばらつきを最小化できる点です。日立は 1964 年に座席予約システムを開発し、1969 年に私どもが所属するアプリケーション サービス事業部の元となる組織を発足、1988 年には第 3 次オンライン システムを開発するなど、さまざまな大規模アプリケーション開発に携わってきました。Justware はそのノウハウを集約したフレームワークであり、金融業界を中心とした大規模なミッション クリティカル システムの構築で、数多くの実績があります。
―― 大規模なミッション クリティカル システムの構築には、だいたいどのくらいの数の開発者が関わるものなのですか。
広瀬 ケース バイ ケースですが、1 プロジェクトで数百人/月程度の規模になります。この規模になると開発フェーズによってプロジェクト体制が大きく変化し、引き継ぎが頻繁に発生します。また参加者が増えればオーバー ヘッドも大きくなります。大規模プロジェクトではこの部分をいかにしてカバーし、ロスを最小化するかが重要なポイントになります。また人手を介することで発生するタイム ラグやヒューマン エラー、品質のばらつきも抑えなければなりません。
―― これまでどのくらいの数の開発者が、Justware を使ってきたのでしょうか。
広瀬 延べ数で言えば、1 万人は下らないはずです。
OpenShift と Azure を選択した理由
―― その Justware を 2016 年 4 月に刷新し、レッドハットの Docker コンテナ基盤である「OpenShift Container Platform」へと対応させました。この構想はいつごろからお持ちだったのでしょうか。
立川 コンテナ対応は 2015 年から考えていました。お客様からの環境変化に対するニーズが高くなっており、開発プラットフォームとしても新技術に対応する必要があると考えていたからです。
―― その新技術として、なぜコンテナに着目したのですか。
立川 業務アプリケーションの構築は高度化かつ複雑化しており、ビジネス ニーズにタイムリーに対応するためには、既存のリソースを有効活用しながら、変化に柔軟に対応できる開発基盤が必要だからです。コンテナ技術を活用すれば、チームごとに必要なバージョンで構築されたテスト環境を簡単にデプロイでき、変化に対応しやすくなります。またプロジェクトに必要な機能をコンテナ ベースで提供すれば、開発プロセスの標準化や自動化も進めやすくなります。プロダクション システム (業務で利用されるアプリケーションの本番環境) がどうなるかはまだ明言できませんが、開発環境に限れば今後、間違いなくコンテナへの移行が進んでいくはずです。テスト環境をすばやく構築するには、仮想マシンよりもコンテナの方が、はるかに使い勝手がいいからです。
―― そのコンテナ基盤として、OpenShift を採用した理由は。
広瀬 第 1 はレッドハットが提供する製品だからです。企業が導入する時には、知名度や実績のない会社の製品は選びにくく、導入ハードルが上がってしまいます。これに対してレッドハットであれば、RHEL (Red Hat Enterprise Linux) が企業ユースで高い実績を持っており、十分な知名度と信頼感があります。レッドハット製品を採用したコンテナ基盤であれば、お客様も導入の判断を下しやすくなるはずです。第 2 はサポートが提供されていることです。Docker の機能をそのまま使いたい開発者は、企業の業務アプリケーション開発の現場では限られています。彼らの本業はビジネスを支える業務ロジックを IT で実現することであり、最新テクノロジーを自力で使いこなすことではないからです。サポートが提供されていれば、業務ロジックの実装に専念できます。
―― コンテナに対応した Justware を、Azure で利用可能にしたわけですが、これはなぜですか。
立川 実は 2015 年の夏ごろには Azure の採用に向けた検討を開始しており、マイクロソフトとも何度かミーティングを繰り返してきました。これが現実的になったのは、マイクロソフトとレッドハットとの包括提携が発表されたからです。パブリック クラウドへの対応は以前から必要になると考えており、Azure にはセキュリティ面や FISC の対応など、数多くの優位性があると評価していました。そこに RHEL のサポートが、正式に発表されることになったわけです。マイクロソフトであればレッドハットと同じ拠点で一緒にサポートしてくれる体制があり、エンタープライズのお客様へのサポート実績も豊富です。技術的に見れば以前から、RHEL を Azure 上で動かすことは可能だったのですが、正式サポートによってエンタープライズでも安心して利用できるようになりました。
Azure の活用方法と得られるメリット
―― 現在 Azure をどのようにお使いですか。
立川 IaaS として動かし、その上で RHEL と OpenShift を動かしています。
広瀬 次のステップでは PaaS として使うことも考えています。Azure が提供する機能を直接的に活用することで、Azure 採用の旨味がもっと出てくるはずです。
―― 具体的に活用を検討している機能は。
広瀬 Mobile App Services と Azure Functions です。特に Azure Functions が実現するサーバー レス アーキテクチャは、今後の開発環境整備において、重要な役割を果たすと思います。
―― Justware を Azure 上で動かすことで、どのようなメリットが得られますか。
立川 プロジェクトによってベース ラインが異なりますし、同じお客様でも開発者の考え方によって効果が変化するため、定量化はなかなか難しいといえます。しかし単純にデプロイ時間を比較すれば、物理環境で 3 ~ 4 日かかっていたものが、IaaS 上での仮想マシン立ち上げも含めて 20 分程度にまで短縮できます。既に仮想マシンが立ち上がっており、その上でコンテナを追加するだけなら数秒で対応可能です。テスト環境の立ち上げは、大幅に効率化できるはずです。
広瀬 属人性が排除しやすくなるのもメリットの 1 つです。手順書を厳格に作成したとしても、担当者が異なればやはり同じような結果にはなりません。しかし Azure と OpenShift を組み合わせた環境であれば、かなりの作業を自動化できるため、何度やっても同じ結果が得られる「冪等性」が得られます。「Don’t make a guru」という言葉がありますが、決まった操作をすれば同じ結果が得られるのであれば、担当者の技術力に依存する必要はなくなります。
―― 開発ツールをクラウド上で動かせれば、開発場所などの物理的制約も解消しやすくなりますね。
広瀬 そうですね。OpenShift を Azure 上で動かせば、どこからでも利用可能になります。これによって開発チームのポータビリティが高まり、より柔軟なチーム編成も可能になるでしょう。
立川 実は Justware はもともと、日立のアプリケーションサービス事業部が自ら使うために開発されたものであり、現在でも日立の開発チームが関係する受託開発での利用が多いという状況です。しかしこれを Azure で提供すれば、日立が直接関係しない開発案件でも利用しやすくなるはずです。
―― クラウド化に対するお客様の反応はいかがですか。
広瀬 パブリック クラウド採用の心理的なハードルは間違いなく下がっています。最近では開発環境をクラウドで構築してほしいというお客様も増えており、日立からの提案でも開発環境をどのように構築するか、提案書の中に明記するようにしています。提案段階でお客様に認めていただきながら「Justware on Azure」の利用を広げていきたいと考えています。
今後の展望について
―― 今後の展望は。
広瀬 Azure を活用することで、お客様に開発環境という切り口から新しい価値、選択肢を提供できます。また、よりタイムリーに開発環境を提供でき、従来に無いレベルでのサービス展開が可能です。アプリケーションサービス事業部では、これまで受託開発の比率が非常に高く、いわば一本足打法のビジネスだったのですが、今後は Justware on Azure をはじめとしたサービス事業を拡大していきたいと考えています。そのためには日本国内の SIer など、より多くのお客様にリーチしなければなりません。日立だけではアクセスできないお客様も多いと思いますので、ここはぜひマイクロソフトに協力していただきたいと思います。
立川 機能の高度化も進めていく計画ですが、ここでもマイクロソフトと協業が必要です。私どもは SI を得意としていますが、ここにぜひともマイクロソフトの最新テクノロジーを取り込んでいきたいと考えています。先程サーバー レスの話が出ましたが、近い将来には Justware の各種サービスを API 化し、Justware の一部分だけを Azure 上で利用可能にすることも検討しています。これは Azure Functions と同様の考え方ですが、既に開発環境をお持ちのお客様に対しては、このようなアプローチが効果的です。マイクロソフトとも話を進めており、技術的には実現可能だという手応えを得ています。
広瀬 これまで大規模システムはクラウド化が難しいという認識でしたが、最近では開発環境だけではなく、プロダクション システムもクラウドへ、という考え方が生まれつつあります。2017 年にはクラウドでプロダクション システムを動かす可能性もあります。提案の前提として、クラウドが含まれるケースは今後さらに増えていくはずです。
―― 本日はありがとうございました。
株式会社日立製作所 ICT事業統括本部 アプリケーションサービス事業部
日本を代表する電機メーカー。その中でアプリケーションサービス事業部は、大規模アプリケーションの開発を担当しており、三菱東京UFJ銀行、みずほ銀行などのメガバンク システムや、東京証券取引所、東京金融取引所などの取引所システムなど、数多くの大規模システム開発に携わっています。「Justware」はそのノウハウから生まれたアプリケーション開発フレームワークであり、JavaEE ベースのオープン プラットフォーム環境で、ミッション クリティカル システムを効率的に構築することが可能です。2016 年 4 月にコンテナに対応し、同年 10 月には「Justware on Azure」の提供も始まっています。