CodeZine(コードジン)

特集ページ一覧

【夏サミ2014】A4セッションレポート
いざ環境は整った!クラウドとCIツールを連携して、エンタープライズJava開発で自動化にチャレンジ

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/09/05 14:00

 15年以上エンタープライズの世界で使用されているJavaにも大きな変化が訪れようとしている。クラウドやCI(継続的インテグレーション)ツールの登場により、従来のウォーターフォール型開発から、変化への柔軟な対応を目的としたアジャイル開発へ移行する環境が整ってきた。本セッションでは、Java EE開発に利用できるツール群や、最新の開発スタイルに対応したIBMのJava EEランタイムである「Libertyプロファイル」が紹介され、それらを組み合わせた新しいエンタープライズJavaの開発スタイルが提案された。

目次
日本アイ・ビー・エム株式会社 ソフトウェア事業本部 WebSphere 事業部 テクニカル・セールス 田中 孝清 氏
日本アイ・ビー・エム株式会社 ソフトウェア事業本部 WebSphere 事業部 テクニカル・セールス 田中 孝清 氏

Java EEにおけるDevOpsに適した開発・実行環境を提供

 田中孝清氏は「ビジネスのスピード変化に伴い、情報システムの軸足は『記録中心』から『つながり中心』に移りつつある」と語る。つながり重視の世界では、一般ユーザーに使ってもらうシステムは、非常に頻繁に毎日のように更新され、統合が行われる。

 さらに「モノのインターネット」という考え方がある。従来のPCブラウザ経由だけでなく、多種多様のデバイスからの情報収集が可能になっていることも、開発に対して様々な高速化を求める背景となっている。

 ところがJava EEに限らず、最近のアプリケーション開発、運用では「環境の複雑性への対応」「マニュアル作業削減」「運用担当者の作業負荷軽減」という課題がある。

 これらの課題について田中氏は「対処法はツールによる自動化の導入」と語る。しかし、特にベンダー系のJavaアプリケーションサーバーを使っている企業では、なかなか導入が進んでいない。実際、挙手で行われた会場アンケート調査では、まずApache Antを使ったことがある人は大体6割。Mavenは3割。Jenkinsは3割強。IBM UrbanCode Deployはごく少数だった。

 導入が進んでいない第1の理由として、田中氏は「Java EEのアプリケーションサーバーが、必ずしもDevOpsに適したものになっていない」ことを挙げる。

 まず従来のJava EEサーバーは信頼性と高性能を追求した結果、導入が大がかりになり、管理にも多くの手間がかかるのは避けられない。

 一方、ツールを使って自動化したい場合、なるべく少ないフットプリント、ファイルの展開による導入、特別のツールを使わないフラットファイルによる構成、短い起動時間などが求められる。

 それらの条件を満たしたものとして、オープンソースのTomcatやJettyという実行環境が多用されている。ただ、Tomcatなどでは、本番で実行するにあたって、色々と足りない機能があることが難点。

 そうした課題に対応するため、IBMでは一昨年「Libertyプロファイル」というまったく新しいランタイムを出している。Java EE実行環境(コンテナ)は、従来のWebSphere Application Server(WAS) Fullプロファイル版と同じ実装が使われている。

WASの新しいランタイム:Libertyプロファイル
WASの新しいランタイム:Libertyプロファイル

 Libertyプロファイルの第1の特長はまず軽量であり、起動が早いことだ。Javaヒープに関しても、従来の200~300MBから、TradeLiteでも60MB程度で稼働する。コアの部分の起動でも、50MB程度のファイルをダウンロードして展開するだけで使用できるし、展開した状態でも100MB程度。そのため身軽に転送などができる。

 機能も十分で、Java EE 6のWeb Profile標準に準拠したアプリを完全にサポート。Web Profile以外のJava EE 6仕様もJMS、JAX-RS、JAX-WSをサポートしている。

 田中氏が特に面白い特長として紹介したのが、「API・サーバー機能をFeatureという形でバラバラに利用可能」ということだ。ユーザーが必要なFeatureだけを自由に組み合わせ、使うことができ、Featureの依存関係も自動的に解決される。

 また新しいFeatureを順次提供する「Liberty Repository」というWebサイトがあり、ここからダウンロードして追加できるようになっている。Java EE 7を構成するような仕様も順次公開予定だ。

 また新バージョンのFeatureは「置き換え」ではなく「追加」になる。たとえばservlet-3.1を追加してもservlet-3.0は引き続き使用可能だ。「なるべくお客様のアプリケーションのマイグレーションを不要にするような形にしている」(田中氏)。

 続く特長は「開発ツールと運用ツールとの統合」になる。IBMではEclipse向けに統合ツール、WAS Liberty Profile Developer Toolsを無償提供している。これによりWAS固有の構成ファイルの編集、テストサーバーへのアプリケーション自動デプロイ、アプリケーションのデバッグ、ステップ実行などが可能になる。

 続いて「簡単な構成と動的な変更」という特徴がある。Libertyプロファイルの構成ファイルは、server.xmlという単一ファイルになっている。基本的にすべての設定項目がデフォルトの値を持っており、変更する場合にのみ記述する。手で編集することができるし、バージョン管理システムでの履歴管理も容易となっている。

 この構成ファイルの変更を「今までのようにGUIでやりたい」というニーズにも対応するため、EclipseのDeveloper Toolsでは、GUIでserver.xmlを編集する機能も提供している。

 さらに「Unzipによる導入とデプロイ」という特徴がある。Libertyプロファイルは、開発環境、Eclipse上でのLibertyプロファイルと構成ファイル、アプリケーションを丸ごとZipファイルとしてパッケージすることが可能だ。構成パッケージングしたZipは、他の環境に持っていって展開することで、アプリケーションサーバーがプログラムを実行する環境がすべて出来上がる。

 さらに使用するFeatureだけをパッケージすることで、さらに小さな導入イメージを作成することができる。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

バックナンバー

連載:【夏サミ2014】セッションレポート
All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5