SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
© 2014 IBM Corporation
#natsumiA4	
クラウドとCIツールで変わる
エンタープライズJava開発
2014年 7月 31日
日本アイ・ビー・エム株式会社	
ソフトウェア事業本部 WebSphere 事業部
© 2014 IBM Corporation
#natsumiA4	
ビジネスのスピードに伴い,変化するワークロード	
2
クラウドベース

のサービス
システム・オブ・エンゲージメント

(つながり中心のシステム)
システム・オブ・レコード

(記録中心のシステム)
CRM HR
DB ERP
対話中心のシステム	
モノのインターネット	
ワークロードの変化により,
システムデリバリーへの要件も変化	
ü より頻繁なリリース
(数ヶ月おき à 数日おき)
ü より頻繁な統合
(数週間 à 継続的)
ü フィードバック・ループ
(定期的 à 顧客との継続的な対話)
高まるDevOpsへのニーズ
© 2014 IBM Corporation
#natsumiA4	
Java EE環境の開発から運用までの流れ	
3
        開発        構成管理理                ビルド                統合テスト環境      ステージング環境    本番環境
開発	
 運用 	
マニュアル作業
環境の複雑性 運⽤用担当者の
作業負荷
© 2014 IBM Corporation
#natsumiA4	
よくある開発→運用環境の課題	
4
基幹システムの構築中で,
開発環境に対するリリースの頻度度が⾮非常に多い。
担当者が残業/徹夜で対応することもある。
運⽤用チームにお願いしても
開発・テスト環境構築の時間が⻑⾧長く,
開発チーム側で“待ち時間”が⽣生じて開発⽣生産性が上がらない。
リリース・プロセスが複雑で,⼤大量量にスクリプトを⼿手作りし,
メンテナンスコスト増加や属⼈人化が起こっている。
本番環境含めて5環境を有しており,設定ミスが多い。
また,環境毎にスクリプトを作成し,
マニュアル(⼿手作業)で実⾏行行している。
© 2014 IBM Corporation
#natsumiA4	
対処方法は明らか	
→ ツールによる自動化の導入	
5
© 2014 IBM Corporation
#natsumiA4	
自動化ツール 使ってますか?	
§ Apache Ant	
§ Maven	
§ Jenkins	
§ IBM UrbanCode Deploy	
6
© 2014 IBM Corporation
#natsumiA4	
ベンダー系のJava EEサーバーとDevOpsツール	
必ずしも相性がいいとはいえなかった	
	
§ 製品の導入	
– 大きな導入イメージ	
– 専用のインストーラーがファイルの展開以外にも多くの導入後処理を実行	
•  OSの構成情報を編集	
•  サーバーのアドレス・ホスト名等の環境情報のとりこみ 	
等	
§ 製品の管理	
– GUIや専用ツールによる構成	
– 専用の管理コマンドによるサーバーの起動・停止,アプリのデプロイ	
§ 製品の動作	
– 起動にかかる時間・停止操作にかかる時間	
– 使用するリソースの多さ	
7
© 2014 IBM Corporation
#natsumiA4	
8 WebSphere Software
Java EEサーバーと自動化ツール	
ツールにとって
理想的な
Java EEサーバー	
従来の
Java EEサーバー	
少ないフットプリント	
ファイルの展開による導入
フラットファイルによる構成
短い起動時間	
大きな導入イメージ
独自のインストーラー
GUI・専用ツールによる構成
長い起動時間
© 2014 IBM Corporation
#natsumiA4	
開発用途として多用されるOSS	
§ これらの条件を満たすOSSアプリケーションサーバーとして

TomcatやJettyが多用されているが・・・	
§ 機能がServlet/JSPに限定	
– その他の機能を使用するためには

多数の追加コンポーネントが必要	
§ 可用性機能の不足	
– トランザクション・マネージャーの品質等	
§ 高い負荷のかかる環境での

パフォーマンス不足	
§ JDK/JREのサポートが別途必要	
9
© 2014 IBM Corporation
#natsumiA4	
10
WASの新しいランタイム:Libertyプロファイル	
WAS V8.5.5 Liberty & WDT
Web Profile準拠	
Java EE 6のWeb Profile標準に

準拠したアプリを完全サポート	
JAX-WS, JAX-RS, JMSもサポート	
Unzipによる導入とデプロイ	
パッケージをした

サーバー + アプリ + 構成情報を

Unzipでデプロイ可能	
簡単な構成と動的変更	
最低限必要な構成ファイルは

server.xmlひとつだけ

デフォルトベースで簡単構成

構成変更は再起動なしに反映	
軽量ランタイム	
メモリー使用量が小さい: 60MB程度~

ディスク使用量も100MB以下	
起動が速い	
起動時間: 5秒程度	
統合ツール(WDT)
高機能なEclipse用の連携ツールを無償で提供

Eclipseから簡単に使用可能	
自動化ツールとの連携	
多くのOSSツールに
無償でプラグインを提供
© 2014 IBM Corporation
#natsumiA4	
11
Libertyプロファイルの特長	
WAS V8.5.5 Liberty & WDT
Web Profile準拠	
Java EE 6のWeb Profile標準に

準拠したアプリを完全サポート	
JAX-WS, JAX-RS, JMSもサポート	
Unzipによる導入とデプロイ	
パッケージをした

サーバー + アプリ + 構成情報を

Unzipでデプロイ可能	
簡単な構成と動的変更	
最低限必要な構成ファイルは

server.xmlひとつだけ

デフォルトベースで簡単構成

構成変更は再起動なしに反映	
軽量ランタイム	
メモリー使用量が小さい: 60MB程度~

ディスク使用量も100MB以下	
起動が速い	
起動時間: 5秒程度	
統合ツール(WDT)
高機能なEclipse用の連携ツールを無償で提供

Eclipseから簡単に使用可能	
自動化ツールとの連携	
多くのOSSツールに
無償でプラグインを提供
© 2014 IBM Corporation
#natsumiA4	
12
軽量ランタイム ・ 高速起動	
§  数秒で起動	
§  わずかなJavaヒープサイズで稼働	
•  TradeLite でも60M バイト程度 	
§  50Mバイト程度のダウンロードファイル	
–  展開した状態でも100Mバイト程度の実行環境	
Raspberry Piのような

資源が限られた環境ですら稼働	
クラウド環境での

高密度集約に最適な実行環境
© 2014 IBM Corporation
#natsumiA4	
13
Libertyプロファイルの特長	
WAS V8.5.5 Liberty & WDT
Web Profile準拠	
Java EE 6のWeb Profile標準に

準拠したアプリを完全サポート	
JAX-WS, JAX-RS, JMSもサポート	
自動化ツールとの連携	
多くのOSSツールに
無償でプラグインを提供
Unzipによる導入とデプロイ	
パッケージをした

サーバー + アプリ + 構成情報を

Unzipでデプロイ可能	
簡単な構成と動的変更	
最低限必要な構成ファイルは

server.xmlひとつだけ

デフォルトベースで簡単構成

構成変更は再起動なしに反映	
軽量ランタイム	
メモリー使用量が小さい: 60MB程度~

ディスク使用量も100MB以下	
起動が速い	
起動時間: 5秒程度	
統合ツール(WDT)
高機能なEclipse用の連携ツールを無償で提供

Eclipseから簡単に使用可能
© 2014 IBM Corporation
#natsumiA4	
14
Java EE 6 Web Profile準拠+α	
Web Services Technologies	
JSR 311: JAX-RS: The Java API	
for RESTful Web Services 1.1	
JSR 224: Java API for XML-Based	
Web Services (JAX-WS) 2.2	
JSR 222: Java Architecture	
for XML Binding (JAXB) 2.2	
JSR 109: Implementing Enterprise Web Services 1.3	
JSR 181: Web Services Metadata	
for the Java Platform	
JSR 101: Java APIs for XML based RPC 1.1	
JSR 67: Java APIs for XML Messaging 1.3	
JSR 93: Java API for	
XML Registries 1.0 (JAXR) 1.0	
	
Management and Security Technologies	
JSR 196: Java Authentication Service Provider	
Interface for Containers 1.0	
JSR 115: Java Authorization	
Contract for Containers 1.3	
JSR 88: Java EE Application Deployment 1.2	
JSR 77: J2EE Management 1.1	
Web Profile	
Web Application Technologies	
JSR 315: Java Servlet 3.0	
JSR 314: JavaServer Faces (JSF) 2.0	
JSR 245: JavaServer Pages 2.2	
and Expression Language (EL) 1.2	
JSR 52: A Standard Tag Library for JavaServer Pages 1.2	
JSR-45: Debugging Support for Other Languages 1.0	
	
Enterprise Application Technologies	
JSR 299: Contexts and Dependency Injection

for the Java EE Platform 1.0	
JSR 330: Dependency Injection for Java	
JSR 318: Enterprise JavaBeans 3.1 (EJB Lite)	
JSR 317: Java Persistence API 2.0	
JSR 250: Common Annotations for the Java Platform 1.1	
JSR 907: Java Transaction API (JTA) 1.1	
JSR 303: Bean Validation 1.0	
	
JSR 914: Java Message Service (JMS) API 1.1	
JSR 318: Enterprise JavaBeans 3.1	
JSR 322: Java EE Connector Architecture 1.6	
JSR 919: JavaMail 1.4	
Java EE full Profile	
Libertyプロファイル	
Libertyプロファイル	
Libertyプロファイル	
Libertyプロファイル	
Libertyプロファイル
© 2014 IBM Corporation
#natsumiA4	
15
必要な機能(Feature)だけを組み合わせて利用	
Java EEなどの標準仕様に定義されたAPIや

サーバーが提供する多くの機能のうち	
Servlet JSP JSF SSL
JAX-RS JSON JPA
JAX-WS JAX-B JDBC JTA
JMS CDI JNDI
EJB lite EJB MDB Blueprint WAB
ユーザーが必要な機能だけを

自由に組み合わせることができる
© 2014 IBM Corporation
#natsumiA4	
API・サーバー機能をFeatureとして定義	
16
•  必要なものだけを構成 	
–  設定されたものだけがメモリにロード・初期化される

→ 最小限の起動時間・メモリー使用	
ServletJSPJDBCSSL
JAX-RS
sessionDatabase
<featureManager>	
  
	
  	
  	
  	
  <feature>jsp-­‐2.2</feature>	
  
	
  	
  	
  	
  <feature>jdbc-­‐4.0</feature>	
  
	
  	
  	
  	
  <feature>jaxrs-­‐1.1</feature>	
  
	
  	
  	
  	
  <feature>sessionDatabase-­‐1.0</feature>	
  
	
  	
  	
  	
  <feature>ssl-­‐1.0</feature>	
  
</featureManager>	
  
構成ファイル server.xml	
 依存関係も

自動的に解決	
JSON
© 2014 IBM Corporation
#natsumiA4	
新しいFeatureを,順次Liberty Repositoryで提供	
§ Liberty Repositoryで新しいFeatureを入手可能	
– Java EE 7を構成する

仕様も順次公開予定	
– GUI管理画面や

z/OS Connectなど	
§ 新バージョンのFeatureは

「置き換え」ではなく「追加」	
– 例) 

servlet-3.1を追加しても

servlet-3.0は

引き続き使用可能	
– マイグレーション不要	
17
https://developer.ibm.com/wasdev/downloads/
© 2014 IBM Corporation
#natsumiA4	
18
Libertyプロファイルの特長	
WAS V8.5.5 Liberty & WDT
Web Profile準拠	
Java EE 6のWeb Profile標準に

準拠したアプリを完全サポート	
JAX-WS, JAX-RS, JMSもサポート	
プラットフォーム拡充
開発用として

Mac OS Xを追加サポート
Unzipによる導入とデプロイ	
パッケージをした

サーバー + アプリ + 構成情報を

Unzipでデプロイ可能	
簡単な構成と動的変更	
最低限必要な構成ファイルは

server.xmlひとつだけ

デフォルトベースで簡単構成

構成変更は再起動なしに反映	
軽量ランタイム	
メモリー使用量が小さい: 60MB程度~

ディスク使用量も100MB以下	
起動が速い	
起動時間: 5秒程度	
開発ツールや運用ツールとの統合
高機能なEclipse用の連携ツールを無償で提供

各種ツールとの連携機能も提供
© 2014 IBM Corporation
#natsumiA4	
19
Eclipse向けに統合ツール

Liberty Profile Developer Toolsを無償提供	
WebSphere Application Server
Developer Tools
Eclipse (Luna / Kepler)	
Web Tools Platform
WAS V8.5.5
Libertyプロファイル

for Developer
連携	
•  Libertyプロファイル 実行環境の自動ダウンロード	
•  サーバー構成の作成・GUIによる編集	
•  テストサーバーへのアプリケーションの自動デプロイ	
•  アプリケーションのデバッグ・ステップ実行	
•  サーバー構成・アプリケーションのパッケージング	
Java EEアプリケーションの開発・テスト環境を無償で構築
© 2014 IBM Corporation
#natsumiA4	
20
Eclipse Marketplaceから簡単導入	
•  メニューの「ヘルプ」→「Marketplace」から

「websphere liberty」で検索してインストールするだけ
© 2014 IBM Corporation
#natsumiA4	
21
Libertyプロファイルの特長	
WAS V8.5.5 Liberty & WDT
Web Profile準拠	
Java EE 6のWeb Profile標準に

準拠したアプリを完全サポート	
JAX-WS, JAX-RS, JMSもサポート	
Unzipによる導入とデプロイ	
パッケージをした

サーバー + アプリ + 構成情報を

Unzipでデプロイ可能	
簡単な構成と動的変更	
最低限必要な構成ファイルは

server.xmlひとつだけ

デフォルトベースで簡単構成

構成変更は再起動なしに反映	
軽量ランタイム	
メモリー使用量が小さい: 60MB程度~

ディスク使用量も100MB以下	
起動が速い	
起動時間: 5秒程度	
統合ツール(WDT)
高機能なEclipse用の連携ツールを無償で提供

Eclipseから簡単に使用可能	
自動化ツールとの連携	
多くのOSSツールに
無償でプラグインを提供
© 2014 IBM Corporation
#natsumiA4	
シンプルで柔軟な構成	
§ 基本はserver.xmlという単一のファイル	
§ 全ての構成項目がデフォルトの値をもつ	
– デフォルトから変更する場合にのみ記述	
– 簡潔な構成ファイル	
22
<server	
  description="new	
  server">	
  
  <!-­‐-­‐	
  Enable	
  features	
  -­‐-­‐>	
  
  <featureManager>	
  
    <feature>jsp-­‐2.2</feature>	
  
  </featureManager>	
  
</server>	
  
Libertyプロファイルの最小構成ファイルの例	
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"?>	
  
<security:Security	
  xmi:version="2.0"	
  xmlns:xmi="http://www.omg.org/XMI"	
  
xmlns:orb.securityprotocol="http://www.ibm.com/websphere/appserver/schemas/5.0/
orb.securityprotocol.xmi"	
  xmlns:security="http://www.ibm.com/websphere/appserver/schemas/5.0/
security.xmi"	
  xmi:id="Security_1"	
  useLocalSecurityServer="true"	
  useDomainQualifiedUserNames="false"	
  
enabled="true"	
  cacheTimeout="600"	
  issuePermissionWarning="true"	
  activeProtocol="BOTH"	
  
enforceJava2Security="false"	
  enforceFineGrainedJCASecurity="false"	
  appEnabled="false"	
  
dynamicallyUpdateSSLConfig="true"	
  allowBasicAuth="true"	
  activeAuthMechanism="LTPA_1"	
  
activeUserRegistry="WIMUserRegistry_1"	
  defaultSSLSettings="SSLConfig_1">	
  
	
  	
  <authMechanisms	
  xmi:type="security:KRB5"	
  xmi:id="KRB5_1"	
  OID="oid:1.2.840.113554.1.2.2"	
  
authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.Krb5WSSecurityContextImpl"	
  
authConfig="system.KRB5"	
  simpleAuthConfig="system.KRB5"	
  authValidationConfig="system.KRB5"	
  
krb5Realm=""	
  krb5Config=""	
  krb5Keytab=""	
  krb5Spn="WAS/${HOST}"	
  trimUserName="true"	
  
enabledGssCredDelegate="true"/>	
  
	
  	
  <authMechanisms	
  xmi:type="security:LTPA"	
  xmi:id="LTPA_1"	
  OID="oid:1.3.18.0.2.30.2"	
  
authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.WSSecurityContextLTPAImpl"	
  
authConfig="system.LTPA"	
  simpleAuthConfig="system.LTPA"	
  authValidationConfig="system.LTPA"	
  
timeout="120"	
  keySetGroup="KeySetGroup_1">	
  
	
  	
  	
  	
  <trustAssociation	
  xmi:id="TrustAssociation_1"	
  enabled="false">	
  
	
  	
  	
  	
  	
  	
  <interceptors	
  xmi:id="TAInterceptor_1"	
  
interceptorClassName="com.ibm.ws.security.web.TAMTrustAssociationInterceptorPlus"/>	
  
	
  	
  	
  	
  	
  	
  <interceptors	
  xmi:id="TAInterceptor_2"	
  
interceptorClassName="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"/>	
  
	
  	
  	
  	
  </trustAssociation>	
  
	
  	
  	
  	
  <singleSignon	
  xmi:id="SingleSignon_1"	
  requiresSSL="false"	
  domainName=""	
  enabled="true"/>	
  
	
  	
  </authMechanisms>	
  
	
  	
  <authMechanisms	
  xmi:type="security:SPNEGO"	
  xmi:id="SPNEGO_1"	
  OID="oid:1.3.6.1.5.5.2"	
  
authContextImplClass="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"	
  
allowAppAuthMethodFallback="false"/>	
  
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"?>	
  
<security:Security	
  xmi:version="2.0"	
  xmlns:xmi="http://www.omg.org/XMI"	
  
xmlns:orb.securityprotocol="http://www.ibm.com/websphere/appserver/schemas/5.0/
orb.securityprotocol.xmi"	
  xmlns:security="http://www.ibm.com/websphere/appserver/schemas/5.0/
security.xmi"	
  xmi:id="Security_1"	
  useLocalSecurityServer="true"	
  useDomainQualifiedUserNames="false"	
  
enabled="true"	
  cacheTimeout="600"	
  issuePermissionWarning="true"	
  activeProtocol="BOTH"	
  
enforceJava2Security="false"	
  enforceFineGrainedJCASecurity="false"	
  appEnabled="false"	
  
dynamicallyUpdateSSLConfig="true"	
  allowBasicAuth="true"	
  activeAuthMechanism="LTPA_1"	
  
activeUserRegistry="WIMUserRegistry_1"	
  defaultSSLSettings="SSLConfig_1">	
  
	
  	
  <authMechanisms	
  xmi:type="security:KRB5"	
  xmi:id="KRB5_1"	
  OID="oid:1.2.840.113554.1.2.2"	
  
authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.Krb5WSSecurityContextImpl"	
  
authConfig="system.KRB5"	
  simpleAuthConfig="system.KRB5"	
  authValidationConfig="system.KRB5"	
  
krb5Realm=""	
  krb5Config=""	
  krb5Keytab=""	
  krb5Spn="WAS/${HOST}"	
  trimUserName="true"	
  
enabledGssCredDelegate="true"/>	
  
	
  	
  <authMechanisms	
  xmi:type="security:LTPA"	
  xmi:id="LTPA_1"	
  OID="oid:1.3.18.0.2.30.2"	
  
authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.WSSecurityContextLTPAImpl"	
  
authConfig="system.LTPA"	
  simpleAuthConfig="system.LTPA"	
  authValidationConfig="system.LTPA"	
  
timeout="120"	
  keySetGroup="KeySetGroup_1">	
  
	
  	
  	
  	
  <trustAssociation	
  xmi:id="TrustAssociation_1"	
  enabled="false">	
  
	
  	
  	
  	
  	
  	
  <interceptors	
  xmi:id="TAInterceptor_1"	
  
interceptorClassName="com.ibm.ws.security.web.TAMTrustAssociationInterceptorPlus"/>	
  
	
  	
  	
  	
  	
  	
  <interceptors	
  xmi:id="TAInterceptor_2"	
  
interceptorClassName="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"/>	
  
	
  	
  	
  	
  </trustAssociation>	
  
	
  	
  	
  	
  <singleSignon	
  xmi:id="SingleSignon_1"	
  requiresSSL="false"	
  domainName=""	
  enabled="true"/>	
  
	
  	
  </authMechanisms>	
  
	
  	
  <authMechanisms	
  xmi:type="security:SPNEGO"	
  xmi:id="SPNEGO_1"	
  OID="oid:1.3.6.1.5.5.2"	
  
authContextImplClass="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"	
  
allowAppAuthMethodFallback="false"/>	
  
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"?>	
  
<security:Security	
  xmi:version="2.0"	
  xmlns:xmi="http://www.omg.org/XMI"	
  
xmlns:orb.securityprotocol="http://www.ibm.com/websphere/appserver/schemas/5.0/
orb.securityprotocol.xmi"	
  xmlns:security="http://www.ibm.com/websphere/appserver/schemas/5.0/
security.xmi"	
  xmi:id="Security_1"	
  useLocalSecurityServer="true"	
  useDomainQualifiedUserNames="false"	
  
enabled="true"	
  cacheTimeout="600"	
  issuePermissionWarning="true"	
  activeProtocol="BOTH"	
  
enforceJava2Security="false"	
  enforceFineGrainedJCASecurity="false"	
  appEnabled="false"	
  
dynamicallyUpdateSSLConfig="true"	
  allowBasicAuth="true"	
  activeAuthMechanism="LTPA_1"	
  
activeUserRegistry="WIMUserRegistry_1"	
  defaultSSLSettings="SSLConfig_1">	
  
	
  	
  <authMechanisms	
  xmi:type="security:KRB5"	
  xmi:id="KRB5_1"	
  OID="oid:1.2.840.113554.1.2.2"	
  
authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.Krb5WSSecurityContextImpl"	
  
authConfig="system.KRB5"	
  simpleAuthConfig="system.KRB5"	
  authValidationConfig="system.KRB5"	
  
krb5Realm=""	
  krb5Config=""	
  krb5Keytab=""	
  krb5Spn="WAS/${HOST}"	
  trimUserName="true"	
  
enabledGssCredDelegate="true"/>	
  
	
  	
  <authMechanisms	
  xmi:type="security:LTPA"	
  xmi:id="LTPA_1"	
  OID="oid:1.3.18.0.2.30.2"	
  
authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.WSSecurityContextLTPAImpl"	
  
authConfig="system.LTPA"	
  simpleAuthConfig="system.LTPA"	
  authValidationConfig="system.LTPA"	
  
timeout="120"	
  keySetGroup="KeySetGroup_1">	
  
	
  	
  	
  	
  <trustAssociation	
  xmi:id="TrustAssociation_1"	
  enabled="false">	
  
	
  	
  	
  	
  	
  	
  <interceptors	
  xmi:id="TAInterceptor_1"	
  
interceptorClassName="com.ibm.ws.security.web.TAMTrustAssociationInterceptorPlus"/>	
  
	
  	
  	
  	
  	
  	
  <interceptors	
  xmi:id="TAInterceptor_2"	
  
interceptorClassName="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"/>	
  
	
  	
  	
  	
  </trustAssociation>	
  
	
  	
  	
  	
  <singleSignon	
  xmi:id="SingleSignon_1"	
  requiresSSL="false"	
  domainName=""	
  enabled="true"/>	
  
	
  	
  </authMechanisms>	
  
	
  	
  <authMechanisms	
  xmi:type="security:SPNEGO"	
  xmi:id="SPNEGO_1"	
  OID="oid:1.3.6.1.5.5.2"	
  
authContextImplClass="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"	
  
allowAppAuthMethodFallback="false"/>	
  
従来のWASの構成ファイルの例	
バージョン
管理システムでの
履歴管理も
容易
© 2014 IBM Corporation
#natsumiA4	
管理ツールによる構成ファイルの編集	
§ Eclipse上のDeveloper Toolsでは

GUIでserver.xmlを編集する機能も提供	
§ 省略されている

デフォルト値も

GUI上では

項目と値を表示	
23
© 2014 IBM Corporation
#natsumiA4	
24
Libertyプロファイルの特長	
WAS V8.5.5 Liberty & WDT
Web Profile準拠	
Java EE 6のWeb Profile標準に

準拠したアプリを完全サポート	
JAX-WS, JAX-RS, JMSもサポート	
Unzipによる導入とデプロイ	
パッケージをした

サーバー + アプリ + 構成情報を

Unzipでデプロイ可能	
簡単な構成と動的変更	
最低限必要な構成ファイルは

server.xmlひとつだけ

デフォルトベースで簡単構成

構成変更は再起動なしに反映	
軽量ランタイム	
メモリー使用量が小さい: 60MB程度~

ディスク使用量も100MB以下	
起動が速い	
起動時間: 5秒程度	
統合ツール(WDT)
高機能なEclipse用の連携ツールを無償で提供

Eclipseから簡単に使用可能	
自動化ツールとの連携	
多くのOSSツールに
無償でプラグインを提供
© 2014 IBM Corporation
#natsumiA4	
サーバー環境のパッケージ化	
25
•  開発環境のLibertyプロファイル+構成ファイル+アプリケーションを

丸ごとZipファイルとしてパッケージすることが可能	
–  Zipを展開するだけで本番環境に導入	
–  Libertyプロファイルの実行環境や

構成情報なども開発環境で変更管理	
•  使用するFeatureだけをパッケージすることにより

さらに小さな導入イメージを作成可能	
–  Servlet/JSP/JDBCのみを使用する

アプリケーションをパッケージすると

20数Mバイトの導入イメージも
© 2014 IBM Corporation
#natsumiA4	
パッケージ作成による複数環境の導入	
§ 開発環境でテストしたアプリケーションだけでなく

製品の構成・Fixpackレベルまでふくめて

そのまま本番環境へ移行することが可能	
– 複数環境を確実に同期	
– アプリケーションの更新と製品の更新を同じレベルで管理	
26
開発環境	
Java SDK
Liberty Profile
サーバー構成	
アプリ	
①インストール	
ディスク	
②サーバー構成	
③アプリ開発	
テスト・本番環境	
Java SDK
Liberty Profile
サーバー構成	
アプリ	
ディスク	
ZIPファイル	
④パッケージ ⑤展開
© 2014 IBM Corporation
#natsumiA4	
パッケージを利用したJava EE環境のDevOps	
§ 開発者がアプリケーションだけでなく,

サーバーの構成・リソースも作成	
§ サーバー構成なども含めて

バージョン管理システムに登録	
§ ビルドツールがアプリ+サーバー構成を

チェックアウトして環境を作成・テスト	
§ テストが完了した成果物を

実行環境ごとZIPして本番環境にデプロイ	
27
© 2014 IBM Corporation
#natsumiA4	
28
WASの新しいランタイム:Libertyプロファイル	
WAS V8.5.5 Liberty & WDT
Web Profile準拠	
Java EE 6のWeb Profile標準に

準拠したアプリを完全サポート	
JAX-WS, JAX-RS, JMSもサポート	
Unzipによる導入とデプロイ	
パッケージをした

サーバー + アプリ + 構成情報を

Unzipでデプロイ可能	
簡単な構成と動的変更	
最低限必要な構成ファイルは

server.xmlひとつだけ

デフォルトベースで簡単構成

構成変更は再起動なしに反映	
軽量ランタイム	
メモリー使用量が小さい: 60MB程度~

ディスク使用量も100MB以下	
起動が速い	
起動時間: 5秒程度	
統合ツール(WDT)
高機能なEclipse用の連携ツールを無償で提供

Eclipseから簡単に使用可能	
自動化ツールとの連携	
多くのOSSツールに
無償でプラグインを提供
© 2014 IBM Corporation
#natsumiA4	
各種ツールとの連携	
各種CI・Buildツールとの

連携機能をGitHubで公開	
29
h"ps://github.com/wasdev
© 2014 IBM Corporation
#natsumiA4	
Apache Maven	
§ Java用プロジェクト管理ツール	
– 統一したビルドプロセスの提供	
– 依存関係の管理	
– 必要なファイルの自動ダウンロード	
•  Mavenセントラルリポジトリ	
•  各種の公開リポジトリ	
•  プロジェクトのリポジトリ	
•  ローカルリポジトリ	
– プラグインによる柔軟な拡張が可能	
•  テストの実行や成果物の配布なども	
30
© 2014 IBM Corporation
#natsumiA4	
MavenからのLibertyプロファイルの利用	
§ pom.xmlにRepositoryとPluginを登録	
31
<project>	
...	
<pluginRepositories>	
<!-- Configure WASdev repository -->	
<pluginRepository>	
<id>WASdev</id>	
<name>WASdev Repository</name>	
<url>http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/maven/repository/</url>	
<layout>default</layout>	
<snapshots><enabled>false</enabled></snapshots>	
<releases><enabled>true</enabled></releases>	
</pluginRepository>	
</pluginRepositories>	
...	
<build>	
<plugins>	
<!-- Enable liberty-maven-plugin -->	
<plugin>	
<groupId>com.ibm.websphere.wlp.maven.plugins</groupId>	
<artifactId>liberty-maven-plugin</artifactId> 	
<version>1.0</version>	
<!-- Specify configuration, executions for liberty-maven-plugin --> 	
... 	
</plugin>	
</plugins>	
</build> 	
... 	
</project>	
IBMがレポジトリを提供
© 2014 IBM Corporation
#natsumiA4	
Mavenで利用できるLibertyプロファイルのGoal	
§ liberty:create-server	
– サーバーを作成	
§ liberty:start-server	
– サーバーを始動	
§ liberty:stop-server	
– サーバーを停止	
§ liberty:deploy	
– アプリケーションをサーバーにデプロイ	
§ liberty:undeploy	
– サーバーからアプリケーションを削除	
§ liberty:install-apps	
– サーバーのdropinsディレクトリにアプリケーションをコピー	
§ liberty:package-server	
– サーバーをパッケージ	
32
© 2014 IBM Corporation
#natsumiA4	
Mavenのビルド・ライフサイクルへの組み込み	
33
validate	
compile	
test-compile	
test	
package	
pre-integration-test	
integration-test	
post-integration-test	
verify	
install	
deploy	
$ cd my-project
$ mvn packate
...	
$ cd my-project
$ mvn install
...	
<plugin>

<groupId>com.ibm.websphere.wlp.maven.plugins</groupId>

<artifactId>liberty-maven-plugin</artifactId>

<executions>

<execution>

<phase>pre-integration-test</phase>

<goals>

<goal>create-server</goal>

</goals>

...

</execution>

</executions>

</plugin>	
<goals>

<goal>start-server</goal>

</goals>	
<goals>

<goal>install-apps</goal>

</goals>	
<phase>post-integration-test</phase>

<goals>

<goal>stop-server</goal>

</goals>	
サーバーの作成	
サーバーの起動	
アプリケーションのインストール	
サーバーの停止
© 2014 IBM Corporation
#natsumiA4	
Jenkins: Continuous Integration Server	
§ Javaで書かれたオープンソース継続的インテグレーションツール	
– 継続的な、ソフトウェアプロジェクトのビルドとテスト	
– ユーザーからの操作や

ファイル監視などをトリガーに処理を実行	
– 複数サーバーで

分散ビルド・テストを実行	
§ プラグインによる拡張で

さまざまな操作を自動化	
– WASのプラグインも提供	
34
© 2014 IBM Corporation
#natsumiA4	
Jenkinsによるアプリケーション管理の自動化	
§ バージョン管理システム(VCS)や

ビルドツールとの連携が容易	
– プラグインを使用すると

管理画面で設定するだけで

処理を自動化できる	
– コーディングやスクリプトが不要に	
§ 処理の完了をJenkinsがモニター	
– ビルドが終わったら配布,

テストが完了したら通知など

一連の処理を自動化できる	
35
1. 処理のキック
2. コードの
Checkout
3. ビルド
パッケージ
テスト環境	
VCS	
本番環境	
4. 配布
5. テスト
6. 結果の通知
7. 本番へのデプロイ
© 2014 IBM Corporation
#natsumiA4	
プロジェクトでOSSを使用するのが難しい場合	
§ もちろんIBM製品によるDevOpsの実現も可能です	
36
DevOps Foundation (Jazz)
Open Lifecycle and Service Management Integration Platform
DevOps ライフサイクル
運用/本番	
開発/テスト	
お客様	
 事業部門	
継続的なイノベーション、フィードバック、改善
SmarterCloud Application
Performance Management
SmarterCloud Orchestrator
IBM Pure Application System
Openstack
Rational Focal Point
Rational
Requirements
Composer
Rational Team Concert
Rational Quality Manager
Rational Test Workbench
Rational Test Virtualization
Server
© 2014 IBM Corporation
#natsumiA4	
urban{code} プログラミング不要な容易なプロセス定義	
37
事前定義された部品
(インストール、アンインストール、
ロールバックなど)	
ドラッグ&ドロップによるビジュアルな定義	
(順番1) Javaアプリケー
ションのインストール	
(順番2) Webアプリケーションの
インストール	
(順番2) DBデータの追加
© 2014 IBM Corporation
#natsumiA4	
Bluemix: IBMの次世代クラウドプラットフォーム	
§ PaaS環境	
– ランタイムや

アプリケーションから

利用可能な

サービスを事前定義	
– データベースをはじめ

認証・分散キャッシュ

ビジネスプロセス等を

利用することができる	
§ Cloud Foundryベース	
– OSSのPaaSツール	
– ビルドパックにより

アプリ実行環境を

可搬性を持って実装	
38
Liberty
Profile
IBM Bluemix PaaS
© 2014 IBM Corporation
#natsumiA4	
BluemixのJavaランタイムはLibertyプロファイル	
§ Eclipse/Libertyプロファイル上で開発しているJava EEコードを

そのままBlumix上で実行・テストすることが可能	
§ Cloud Foundryのツールを使用すれば,

開発したアプリケーションをBlumixやVMware上の仮想環境へ

自動でデプロイ	
39
cf push app.war
IBM Bluemix
独自に構築した
Cloud Foundry
© 2014 IBM Corporation
#natsumiA4	
まとめ	
§ IBMのJava EE実行環境であるWebSphere Application Serverは

新しいランタイムとしてLibertyプロファイルを提供	
§ Libertyプロファイルは軽量・シンプルなランタイムで

多くのツールに対してプラグインが提供されているため

クラウド対応やDevOpsの実現に最適	
§ 各種OSSやベンダー製品が充実してきた今は

開発・テストと運用の自動化に再チャレンジする最適のタイミング	
40
© 2014 IBM Corporation
#natsumiA4	
参考資料	
§  WAS V8.5.5 最新情報ワークショップ資料	
– http://www.ibm.com/developerworks/jp/websphere/library/was/was855liberty_ws/

Libertyプロファイルについて日本語で一番詳細な情報	
§  Redbooks: Configuring and Deploying Open Source 

	
with WebSphere Application Server Liberty Profile	
– http://www.redbooks.ibm.com/abstracts/sg248194.html

各種OSSとLibertyプロファイルの連携方法

まもなく日本語化されたものがでます。	
§  Codezine: 軽量・高速・安価で、安定性と信頼性も兼ね備えた

	
WebSphere Application Serverの「Liberty Core」を使ってみた	
– http://codezine.jp/article/detail/7697

とりあえずLibertyプロファイルを試してみたい方に最適の記事	
§  Codezine: Jenkinsで実現するJava EEアプリケーションの自動ビルドと自動デプロイ	
– http://codezine.jp/article/detail/7929

JenkinsとLibertyプロファイルの連携について	
§  IBM developerWorks 日本語版: WebSphere Application Server	
– http://www.ibm.com/developerworks/jp/websphere/category/was/

日本語によるWASの各種技術情報はこちらから	
41

Mais conteúdo relacionado

Mais procurados

書籍を執筆して気づいた Windows Server 2012 R2 過去のサーバーOSとの違い
書籍を執筆して気づいた Windows Server 2012 R2 過去のサーバーOSとの違い書籍を執筆して気づいた Windows Server 2012 R2 過去のサーバーOSとの違い
書籍を執筆して気づいた Windows Server 2012 R2 過去のサーバーOSとの違い
wintechq
 
Active directory の移行 (2011年6月の資料)
Active directory の移行 (2011年6月の資料)Active directory の移行 (2011年6月の資料)
Active directory の移行 (2011年6月の資料)
wintechq
 
Azure reliability v0.1.21.0422
Azure reliability v0.1.21.0422Azure reliability v0.1.21.0422
Azure reliability v0.1.21.0422
Ayumu Inaba
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
Akihiro Kuwano
 
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
Masayuki Ozawa
 
Windows Server 2012 で管理をもっと自動化する
Windows Server 2012 で管理をもっと自動化するWindows Server 2012 で管理をもっと自動化する
Windows Server 2012 で管理をもっと自動化する
junichi anno
 

Mais procurados (20)

書籍を執筆して気づいた Windows Server 2012 R2 過去のサーバーOSとの違い
書籍を執筆して気づいた Windows Server 2012 R2 過去のサーバーOSとの違い書籍を執筆して気づいた Windows Server 2012 R2 過去のサーバーOSとの違い
書籍を執筆して気づいた Windows Server 2012 R2 過去のサーバーOSとの違い
 
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
 
Active directory の移行 (2011年6月の資料)
Active directory の移行 (2011年6月の資料)Active directory の移行 (2011年6月の資料)
Active directory の移行 (2011年6月の資料)
 
Azure reliability v0.1.21.0422
Azure reliability v0.1.21.0422Azure reliability v0.1.21.0422
Azure reliability v0.1.21.0422
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new features
 
Ws2003からws2012 r2へのマイグレーション指南 140217
Ws2003からws2012 r2へのマイグレーション指南 140217Ws2003からws2012 r2へのマイグレーション指南 140217
Ws2003からws2012 r2へのマイグレーション指南 140217
 
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
 
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
 
Windows Server 2012 R2 のすべて
Windows Server 2012 R2 のすべてWindows Server 2012 R2 のすべて
Windows Server 2012 R2 のすべて
 
Application Platform としての Windows Server 2019
Application Platform としての Windows Server 2019Application Platform としての Windows Server 2019
Application Platform としての Windows Server 2019
 
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tipsde:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
 
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
 
Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版
 
Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順
Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順
Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順
 
TFセミナー マイクロソフト製品で作る Web インフラ 基本編
TFセミナー マイクロソフト製品で作る Web インフラ 基本編TFセミナー マイクロソフト製品で作る Web インフラ 基本編
TFセミナー マイクロソフト製品で作る Web インフラ 基本編
 
Wsfc basic 130720
Wsfc basic 130720Wsfc basic 130720
Wsfc basic 130720
 
汎用性の高い大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善
汎用性の高い大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善汎用性の高い大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善
汎用性の高い大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
 
Windows Server 2012 で管理をもっと自動化する
Windows Server 2012 で管理をもっと自動化するWindows Server 2012 で管理をもっと自動化する
Windows Server 2012 で管理をもっと自動化する
 

Semelhante a 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発

M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
 
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Masayuki Ozawa
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
Akio Katayama
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
Amazon Web Services Japan
 

Semelhante a 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 (20)

SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版
 
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をApp012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
 
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をApp012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
 
20200118 scugj goodbye_ws2008-slide
20200118 scugj goodbye_ws2008-slide20200118 scugj goodbye_ws2008-slide
20200118 scugj goodbye_ws2008-slide
 
RedHat MW 2015
RedHat MW 2015RedHat MW 2015
RedHat MW 2015
 
Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary
 
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
 
2014年12月04日 ヒーロー島 Azureスペシャル
2014年12月04日 ヒーロー島 Azureスペシャル2014年12月04日 ヒーロー島 Azureスペシャル
2014年12月04日 ヒーロー島 Azureスペシャル
 
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
 
[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション
 
SQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain JapaneseSQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain Japanese
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
[Japan Tech summit 2017] DAL 003
[Japan Tech summit 2017] DAL 003[Japan Tech summit 2017] DAL 003
[Japan Tech summit 2017] DAL 003
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
 
Microsoft Azure Update 20151112
Microsoft Azure Update 20151112Microsoft Azure Update 20151112
Microsoft Azure Update 20151112
 

Mais de Takakiyo Tanaka

Mais de Takakiyo Tanaka (12)

Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere Liberty
 
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
 
OutOfMemoryErrorとは
OutOfMemoryErrorとは OutOfMemoryErrorとは
OutOfMemoryErrorとは
 
MicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open LibertyMicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open Liberty
 
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについてオープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
 
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
 
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
 
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
 
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界
 

Último

Último (12)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発

  • 1. © 2014 IBM Corporation #natsumiA4 クラウドとCIツールで変わる エンタープライズJava開発 2014年 7月 31日 日本アイ・ビー・エム株式会社 ソフトウェア事業本部 WebSphere 事業部
  • 2. © 2014 IBM Corporation #natsumiA4 ビジネスのスピードに伴い,変化するワークロード 2 クラウドベース
 のサービス システム・オブ・エンゲージメント
 (つながり中心のシステム) システム・オブ・レコード
 (記録中心のシステム) CRM HR DB ERP 対話中心のシステム モノのインターネット ワークロードの変化により, システムデリバリーへの要件も変化 ü より頻繁なリリース (数ヶ月おき à 数日おき) ü より頻繁な統合 (数週間 à 継続的) ü フィードバック・ループ (定期的 à 顧客との継続的な対話) 高まるDevOpsへのニーズ
  • 3. © 2014 IBM Corporation #natsumiA4 Java EE環境の開発から運用までの流れ 3        開発        構成管理理                ビルド                統合テスト環境      ステージング環境    本番環境 開発 運用 マニュアル作業 環境の複雑性 運⽤用担当者の 作業負荷
  • 4. © 2014 IBM Corporation #natsumiA4 よくある開発→運用環境の課題 4 基幹システムの構築中で, 開発環境に対するリリースの頻度度が⾮非常に多い。 担当者が残業/徹夜で対応することもある。 運⽤用チームにお願いしても 開発・テスト環境構築の時間が⻑⾧長く, 開発チーム側で“待ち時間”が⽣生じて開発⽣生産性が上がらない。 リリース・プロセスが複雑で,⼤大量量にスクリプトを⼿手作りし, メンテナンスコスト増加や属⼈人化が起こっている。 本番環境含めて5環境を有しており,設定ミスが多い。 また,環境毎にスクリプトを作成し, マニュアル(⼿手作業)で実⾏行行している。
  • 5. © 2014 IBM Corporation #natsumiA4 対処方法は明らか → ツールによる自動化の導入 5
  • 6. © 2014 IBM Corporation #natsumiA4 自動化ツール 使ってますか? § Apache Ant § Maven § Jenkins § IBM UrbanCode Deploy 6
  • 7. © 2014 IBM Corporation #natsumiA4 ベンダー系のJava EEサーバーとDevOpsツール 必ずしも相性がいいとはいえなかった § 製品の導入 – 大きな導入イメージ – 専用のインストーラーがファイルの展開以外にも多くの導入後処理を実行 •  OSの構成情報を編集 •  サーバーのアドレス・ホスト名等の環境情報のとりこみ 等 § 製品の管理 – GUIや専用ツールによる構成 – 専用の管理コマンドによるサーバーの起動・停止,アプリのデプロイ § 製品の動作 – 起動にかかる時間・停止操作にかかる時間 – 使用するリソースの多さ 7
  • 8. © 2014 IBM Corporation #natsumiA4 8 WebSphere Software Java EEサーバーと自動化ツール ツールにとって 理想的な Java EEサーバー 従来の Java EEサーバー 少ないフットプリント ファイルの展開による導入 フラットファイルによる構成 短い起動時間 大きな導入イメージ 独自のインストーラー GUI・専用ツールによる構成 長い起動時間
  • 9. © 2014 IBM Corporation #natsumiA4 開発用途として多用されるOSS § これらの条件を満たすOSSアプリケーションサーバーとして
 TomcatやJettyが多用されているが・・・ § 機能がServlet/JSPに限定 – その他の機能を使用するためには
 多数の追加コンポーネントが必要 § 可用性機能の不足 – トランザクション・マネージャーの品質等 § 高い負荷のかかる環境での
 パフォーマンス不足 § JDK/JREのサポートが別途必要 9
  • 10. © 2014 IBM Corporation #natsumiA4 10 WASの新しいランタイム:Libertyプロファイル WAS V8.5.5 Liberty & WDT Web Profile準拠 Java EE 6のWeb Profile標準に
 準拠したアプリを完全サポート JAX-WS, JAX-RS, JMSもサポート Unzipによる導入とデプロイ パッケージをした
 サーバー + アプリ + 構成情報を
 Unzipでデプロイ可能 簡単な構成と動的変更 最低限必要な構成ファイルは
 server.xmlひとつだけ
 デフォルトベースで簡単構成
 構成変更は再起動なしに反映 軽量ランタイム メモリー使用量が小さい: 60MB程度~
 ディスク使用量も100MB以下 起動が速い 起動時間: 5秒程度 統合ツール(WDT) 高機能なEclipse用の連携ツールを無償で提供
 Eclipseから簡単に使用可能 自動化ツールとの連携 多くのOSSツールに 無償でプラグインを提供
  • 11. © 2014 IBM Corporation #natsumiA4 11 Libertyプロファイルの特長 WAS V8.5.5 Liberty & WDT Web Profile準拠 Java EE 6のWeb Profile標準に
 準拠したアプリを完全サポート JAX-WS, JAX-RS, JMSもサポート Unzipによる導入とデプロイ パッケージをした
 サーバー + アプリ + 構成情報を
 Unzipでデプロイ可能 簡単な構成と動的変更 最低限必要な構成ファイルは
 server.xmlひとつだけ
 デフォルトベースで簡単構成
 構成変更は再起動なしに反映 軽量ランタイム メモリー使用量が小さい: 60MB程度~
 ディスク使用量も100MB以下 起動が速い 起動時間: 5秒程度 統合ツール(WDT) 高機能なEclipse用の連携ツールを無償で提供
 Eclipseから簡単に使用可能 自動化ツールとの連携 多くのOSSツールに 無償でプラグインを提供
  • 12. © 2014 IBM Corporation #natsumiA4 12 軽量ランタイム ・ 高速起動 §  数秒で起動 §  わずかなJavaヒープサイズで稼働 •  TradeLite でも60M バイト程度 §  50Mバイト程度のダウンロードファイル –  展開した状態でも100Mバイト程度の実行環境 Raspberry Piのような
 資源が限られた環境ですら稼働 クラウド環境での
 高密度集約に最適な実行環境
  • 13. © 2014 IBM Corporation #natsumiA4 13 Libertyプロファイルの特長 WAS V8.5.5 Liberty & WDT Web Profile準拠 Java EE 6のWeb Profile標準に
 準拠したアプリを完全サポート JAX-WS, JAX-RS, JMSもサポート 自動化ツールとの連携 多くのOSSツールに 無償でプラグインを提供 Unzipによる導入とデプロイ パッケージをした
 サーバー + アプリ + 構成情報を
 Unzipでデプロイ可能 簡単な構成と動的変更 最低限必要な構成ファイルは
 server.xmlひとつだけ
 デフォルトベースで簡単構成
 構成変更は再起動なしに反映 軽量ランタイム メモリー使用量が小さい: 60MB程度~
 ディスク使用量も100MB以下 起動が速い 起動時間: 5秒程度 統合ツール(WDT) 高機能なEclipse用の連携ツールを無償で提供
 Eclipseから簡単に使用可能
  • 14. © 2014 IBM Corporation #natsumiA4 14 Java EE 6 Web Profile準拠+α Web Services Technologies JSR 311: JAX-RS: The Java API for RESTful Web Services 1.1 JSR 224: Java API for XML-Based Web Services (JAX-WS) 2.2 JSR 222: Java Architecture for XML Binding (JAXB) 2.2 JSR 109: Implementing Enterprise Web Services 1.3 JSR 181: Web Services Metadata for the Java Platform JSR 101: Java APIs for XML based RPC 1.1 JSR 67: Java APIs for XML Messaging 1.3 JSR 93: Java API for XML Registries 1.0 (JAXR) 1.0 Management and Security Technologies JSR 196: Java Authentication Service Provider Interface for Containers 1.0 JSR 115: Java Authorization Contract for Containers 1.3 JSR 88: Java EE Application Deployment 1.2 JSR 77: J2EE Management 1.1 Web Profile Web Application Technologies JSR 315: Java Servlet 3.0 JSR 314: JavaServer Faces (JSF) 2.0 JSR 245: JavaServer Pages 2.2 and Expression Language (EL) 1.2 JSR 52: A Standard Tag Library for JavaServer Pages 1.2 JSR-45: Debugging Support for Other Languages 1.0 Enterprise Application Technologies JSR 299: Contexts and Dependency Injection
 for the Java EE Platform 1.0 JSR 330: Dependency Injection for Java JSR 318: Enterprise JavaBeans 3.1 (EJB Lite) JSR 317: Java Persistence API 2.0 JSR 250: Common Annotations for the Java Platform 1.1 JSR 907: Java Transaction API (JTA) 1.1 JSR 303: Bean Validation 1.0 JSR 914: Java Message Service (JMS) API 1.1 JSR 318: Enterprise JavaBeans 3.1 JSR 322: Java EE Connector Architecture 1.6 JSR 919: JavaMail 1.4 Java EE full Profile Libertyプロファイル Libertyプロファイル Libertyプロファイル Libertyプロファイル Libertyプロファイル
  • 15. © 2014 IBM Corporation #natsumiA4 15 必要な機能(Feature)だけを組み合わせて利用 Java EEなどの標準仕様に定義されたAPIや
 サーバーが提供する多くの機能のうち Servlet JSP JSF SSL JAX-RS JSON JPA JAX-WS JAX-B JDBC JTA JMS CDI JNDI EJB lite EJB MDB Blueprint WAB ユーザーが必要な機能だけを
 自由に組み合わせることができる
  • 16. © 2014 IBM Corporation #natsumiA4 API・サーバー機能をFeatureとして定義 16 •  必要なものだけを構成 –  設定されたものだけがメモリにロード・初期化される
 → 最小限の起動時間・メモリー使用 ServletJSPJDBCSSL JAX-RS sessionDatabase <featureManager>          <feature>jsp-­‐2.2</feature>          <feature>jdbc-­‐4.0</feature>          <feature>jaxrs-­‐1.1</feature>          <feature>sessionDatabase-­‐1.0</feature>          <feature>ssl-­‐1.0</feature>   </featureManager>   構成ファイル server.xml 依存関係も
 自動的に解決 JSON
  • 17. © 2014 IBM Corporation #natsumiA4 新しいFeatureを,順次Liberty Repositoryで提供 § Liberty Repositoryで新しいFeatureを入手可能 – Java EE 7を構成する
 仕様も順次公開予定 – GUI管理画面や
 z/OS Connectなど § 新バージョンのFeatureは
 「置き換え」ではなく「追加」 – 例) 
 servlet-3.1を追加しても
 servlet-3.0は
 引き続き使用可能 – マイグレーション不要 17 https://developer.ibm.com/wasdev/downloads/
  • 18. © 2014 IBM Corporation #natsumiA4 18 Libertyプロファイルの特長 WAS V8.5.5 Liberty & WDT Web Profile準拠 Java EE 6のWeb Profile標準に
 準拠したアプリを完全サポート JAX-WS, JAX-RS, JMSもサポート プラットフォーム拡充 開発用として
 Mac OS Xを追加サポート Unzipによる導入とデプロイ パッケージをした
 サーバー + アプリ + 構成情報を
 Unzipでデプロイ可能 簡単な構成と動的変更 最低限必要な構成ファイルは
 server.xmlひとつだけ
 デフォルトベースで簡単構成
 構成変更は再起動なしに反映 軽量ランタイム メモリー使用量が小さい: 60MB程度~
 ディスク使用量も100MB以下 起動が速い 起動時間: 5秒程度 開発ツールや運用ツールとの統合 高機能なEclipse用の連携ツールを無償で提供
 各種ツールとの連携機能も提供
  • 19. © 2014 IBM Corporation #natsumiA4 19 Eclipse向けに統合ツール
 Liberty Profile Developer Toolsを無償提供 WebSphere Application Server Developer Tools Eclipse (Luna / Kepler) Web Tools Platform WAS V8.5.5 Libertyプロファイル
 for Developer 連携 •  Libertyプロファイル 実行環境の自動ダウンロード •  サーバー構成の作成・GUIによる編集 •  テストサーバーへのアプリケーションの自動デプロイ •  アプリケーションのデバッグ・ステップ実行 •  サーバー構成・アプリケーションのパッケージング Java EEアプリケーションの開発・テスト環境を無償で構築
  • 20. © 2014 IBM Corporation #natsumiA4 20 Eclipse Marketplaceから簡単導入 •  メニューの「ヘルプ」→「Marketplace」から
 「websphere liberty」で検索してインストールするだけ
  • 21. © 2014 IBM Corporation #natsumiA4 21 Libertyプロファイルの特長 WAS V8.5.5 Liberty & WDT Web Profile準拠 Java EE 6のWeb Profile標準に
 準拠したアプリを完全サポート JAX-WS, JAX-RS, JMSもサポート Unzipによる導入とデプロイ パッケージをした
 サーバー + アプリ + 構成情報を
 Unzipでデプロイ可能 簡単な構成と動的変更 最低限必要な構成ファイルは
 server.xmlひとつだけ
 デフォルトベースで簡単構成
 構成変更は再起動なしに反映 軽量ランタイム メモリー使用量が小さい: 60MB程度~
 ディスク使用量も100MB以下 起動が速い 起動時間: 5秒程度 統合ツール(WDT) 高機能なEclipse用の連携ツールを無償で提供
 Eclipseから簡単に使用可能 自動化ツールとの連携 多くのOSSツールに 無償でプラグインを提供
  • 22. © 2014 IBM Corporation #natsumiA4 シンプルで柔軟な構成 § 基本はserver.xmlという単一のファイル § 全ての構成項目がデフォルトの値をもつ – デフォルトから変更する場合にのみ記述 – 簡潔な構成ファイル 22 <server  description="new  server">     <!-­‐-­‐  Enable  features  -­‐-­‐>     <featureManager>       <feature>jsp-­‐2.2</feature>     </featureManager>   </server>   Libertyプロファイルの最小構成ファイルの例 <?xml  version="1.0"  encoding="UTF-­‐8"?>   <security:Security  xmi:version="2.0"  xmlns:xmi="http://www.omg.org/XMI"   xmlns:orb.securityprotocol="http://www.ibm.com/websphere/appserver/schemas/5.0/ orb.securityprotocol.xmi"  xmlns:security="http://www.ibm.com/websphere/appserver/schemas/5.0/ security.xmi"  xmi:id="Security_1"  useLocalSecurityServer="true"  useDomainQualifiedUserNames="false"   enabled="true"  cacheTimeout="600"  issuePermissionWarning="true"  activeProtocol="BOTH"   enforceJava2Security="false"  enforceFineGrainedJCASecurity="false"  appEnabled="false"   dynamicallyUpdateSSLConfig="true"  allowBasicAuth="true"  activeAuthMechanism="LTPA_1"   activeUserRegistry="WIMUserRegistry_1"  defaultSSLSettings="SSLConfig_1">      <authMechanisms  xmi:type="security:KRB5"  xmi:id="KRB5_1"  OID="oid:1.2.840.113554.1.2.2"   authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.Krb5WSSecurityContextImpl"   authConfig="system.KRB5"  simpleAuthConfig="system.KRB5"  authValidationConfig="system.KRB5"   krb5Realm=""  krb5Config=""  krb5Keytab=""  krb5Spn="WAS/${HOST}"  trimUserName="true"   enabledGssCredDelegate="true"/>      <authMechanisms  xmi:type="security:LTPA"  xmi:id="LTPA_1"  OID="oid:1.3.18.0.2.30.2"   authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.WSSecurityContextLTPAImpl"   authConfig="system.LTPA"  simpleAuthConfig="system.LTPA"  authValidationConfig="system.LTPA"   timeout="120"  keySetGroup="KeySetGroup_1">          <trustAssociation  xmi:id="TrustAssociation_1"  enabled="false">              <interceptors  xmi:id="TAInterceptor_1"   interceptorClassName="com.ibm.ws.security.web.TAMTrustAssociationInterceptorPlus"/>              <interceptors  xmi:id="TAInterceptor_2"   interceptorClassName="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"/>          </trustAssociation>          <singleSignon  xmi:id="SingleSignon_1"  requiresSSL="false"  domainName=""  enabled="true"/>      </authMechanisms>      <authMechanisms  xmi:type="security:SPNEGO"  xmi:id="SPNEGO_1"  OID="oid:1.3.6.1.5.5.2"   authContextImplClass="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"   allowAppAuthMethodFallback="false"/>   <?xml  version="1.0"  encoding="UTF-­‐8"?>   <security:Security  xmi:version="2.0"  xmlns:xmi="http://www.omg.org/XMI"   xmlns:orb.securityprotocol="http://www.ibm.com/websphere/appserver/schemas/5.0/ orb.securityprotocol.xmi"  xmlns:security="http://www.ibm.com/websphere/appserver/schemas/5.0/ security.xmi"  xmi:id="Security_1"  useLocalSecurityServer="true"  useDomainQualifiedUserNames="false"   enabled="true"  cacheTimeout="600"  issuePermissionWarning="true"  activeProtocol="BOTH"   enforceJava2Security="false"  enforceFineGrainedJCASecurity="false"  appEnabled="false"   dynamicallyUpdateSSLConfig="true"  allowBasicAuth="true"  activeAuthMechanism="LTPA_1"   activeUserRegistry="WIMUserRegistry_1"  defaultSSLSettings="SSLConfig_1">      <authMechanisms  xmi:type="security:KRB5"  xmi:id="KRB5_1"  OID="oid:1.2.840.113554.1.2.2"   authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.Krb5WSSecurityContextImpl"   authConfig="system.KRB5"  simpleAuthConfig="system.KRB5"  authValidationConfig="system.KRB5"   krb5Realm=""  krb5Config=""  krb5Keytab=""  krb5Spn="WAS/${HOST}"  trimUserName="true"   enabledGssCredDelegate="true"/>      <authMechanisms  xmi:type="security:LTPA"  xmi:id="LTPA_1"  OID="oid:1.3.18.0.2.30.2"   authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.WSSecurityContextLTPAImpl"   authConfig="system.LTPA"  simpleAuthConfig="system.LTPA"  authValidationConfig="system.LTPA"   timeout="120"  keySetGroup="KeySetGroup_1">          <trustAssociation  xmi:id="TrustAssociation_1"  enabled="false">              <interceptors  xmi:id="TAInterceptor_1"   interceptorClassName="com.ibm.ws.security.web.TAMTrustAssociationInterceptorPlus"/>              <interceptors  xmi:id="TAInterceptor_2"   interceptorClassName="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"/>          </trustAssociation>          <singleSignon  xmi:id="SingleSignon_1"  requiresSSL="false"  domainName=""  enabled="true"/>      </authMechanisms>      <authMechanisms  xmi:type="security:SPNEGO"  xmi:id="SPNEGO_1"  OID="oid:1.3.6.1.5.5.2"   authContextImplClass="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"   allowAppAuthMethodFallback="false"/>   <?xml  version="1.0"  encoding="UTF-­‐8"?>   <security:Security  xmi:version="2.0"  xmlns:xmi="http://www.omg.org/XMI"   xmlns:orb.securityprotocol="http://www.ibm.com/websphere/appserver/schemas/5.0/ orb.securityprotocol.xmi"  xmlns:security="http://www.ibm.com/websphere/appserver/schemas/5.0/ security.xmi"  xmi:id="Security_1"  useLocalSecurityServer="true"  useDomainQualifiedUserNames="false"   enabled="true"  cacheTimeout="600"  issuePermissionWarning="true"  activeProtocol="BOTH"   enforceJava2Security="false"  enforceFineGrainedJCASecurity="false"  appEnabled="false"   dynamicallyUpdateSSLConfig="true"  allowBasicAuth="true"  activeAuthMechanism="LTPA_1"   activeUserRegistry="WIMUserRegistry_1"  defaultSSLSettings="SSLConfig_1">      <authMechanisms  xmi:type="security:KRB5"  xmi:id="KRB5_1"  OID="oid:1.2.840.113554.1.2.2"   authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.Krb5WSSecurityContextImpl"   authConfig="system.KRB5"  simpleAuthConfig="system.KRB5"  authValidationConfig="system.KRB5"   krb5Realm=""  krb5Config=""  krb5Keytab=""  krb5Spn="WAS/${HOST}"  trimUserName="true"   enabledGssCredDelegate="true"/>      <authMechanisms  xmi:type="security:LTPA"  xmi:id="LTPA_1"  OID="oid:1.3.18.0.2.30.2"   authContextImplClass="com.ibm.ISecurityLocalObjectTokenBaseImpl.WSSecurityContextLTPAImpl"   authConfig="system.LTPA"  simpleAuthConfig="system.LTPA"  authValidationConfig="system.LTPA"   timeout="120"  keySetGroup="KeySetGroup_1">          <trustAssociation  xmi:id="TrustAssociation_1"  enabled="false">              <interceptors  xmi:id="TAInterceptor_1"   interceptorClassName="com.ibm.ws.security.web.TAMTrustAssociationInterceptorPlus"/>              <interceptors  xmi:id="TAInterceptor_2"   interceptorClassName="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"/>          </trustAssociation>          <singleSignon  xmi:id="SingleSignon_1"  requiresSSL="false"  domainName=""  enabled="true"/>      </authMechanisms>      <authMechanisms  xmi:type="security:SPNEGO"  xmi:id="SPNEGO_1"  OID="oid:1.3.6.1.5.5.2"   authContextImplClass="com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl"   allowAppAuthMethodFallback="false"/>   従来のWASの構成ファイルの例 バージョン 管理システムでの 履歴管理も 容易
  • 23. © 2014 IBM Corporation #natsumiA4 管理ツールによる構成ファイルの編集 § Eclipse上のDeveloper Toolsでは
 GUIでserver.xmlを編集する機能も提供 § 省略されている
 デフォルト値も
 GUI上では
 項目と値を表示 23
  • 24. © 2014 IBM Corporation #natsumiA4 24 Libertyプロファイルの特長 WAS V8.5.5 Liberty & WDT Web Profile準拠 Java EE 6のWeb Profile標準に
 準拠したアプリを完全サポート JAX-WS, JAX-RS, JMSもサポート Unzipによる導入とデプロイ パッケージをした
 サーバー + アプリ + 構成情報を
 Unzipでデプロイ可能 簡単な構成と動的変更 最低限必要な構成ファイルは
 server.xmlひとつだけ
 デフォルトベースで簡単構成
 構成変更は再起動なしに反映 軽量ランタイム メモリー使用量が小さい: 60MB程度~
 ディスク使用量も100MB以下 起動が速い 起動時間: 5秒程度 統合ツール(WDT) 高機能なEclipse用の連携ツールを無償で提供
 Eclipseから簡単に使用可能 自動化ツールとの連携 多くのOSSツールに 無償でプラグインを提供
  • 25. © 2014 IBM Corporation #natsumiA4 サーバー環境のパッケージ化 25 •  開発環境のLibertyプロファイル+構成ファイル+アプリケーションを
 丸ごとZipファイルとしてパッケージすることが可能 –  Zipを展開するだけで本番環境に導入 –  Libertyプロファイルの実行環境や
 構成情報なども開発環境で変更管理 •  使用するFeatureだけをパッケージすることにより
 さらに小さな導入イメージを作成可能 –  Servlet/JSP/JDBCのみを使用する
 アプリケーションをパッケージすると
 20数Mバイトの導入イメージも
  • 26. © 2014 IBM Corporation #natsumiA4 パッケージ作成による複数環境の導入 § 開発環境でテストしたアプリケーションだけでなく
 製品の構成・Fixpackレベルまでふくめて
 そのまま本番環境へ移行することが可能 – 複数環境を確実に同期 – アプリケーションの更新と製品の更新を同じレベルで管理 26 開発環境 Java SDK Liberty Profile サーバー構成 アプリ ①インストール ディスク ②サーバー構成 ③アプリ開発 テスト・本番環境 Java SDK Liberty Profile サーバー構成 アプリ ディスク ZIPファイル ④パッケージ ⑤展開
  • 27. © 2014 IBM Corporation #natsumiA4 パッケージを利用したJava EE環境のDevOps § 開発者がアプリケーションだけでなく,
 サーバーの構成・リソースも作成 § サーバー構成なども含めて
 バージョン管理システムに登録 § ビルドツールがアプリ+サーバー構成を
 チェックアウトして環境を作成・テスト § テストが完了した成果物を
 実行環境ごとZIPして本番環境にデプロイ 27
  • 28. © 2014 IBM Corporation #natsumiA4 28 WASの新しいランタイム:Libertyプロファイル WAS V8.5.5 Liberty & WDT Web Profile準拠 Java EE 6のWeb Profile標準に
 準拠したアプリを完全サポート JAX-WS, JAX-RS, JMSもサポート Unzipによる導入とデプロイ パッケージをした
 サーバー + アプリ + 構成情報を
 Unzipでデプロイ可能 簡単な構成と動的変更 最低限必要な構成ファイルは
 server.xmlひとつだけ
 デフォルトベースで簡単構成
 構成変更は再起動なしに反映 軽量ランタイム メモリー使用量が小さい: 60MB程度~
 ディスク使用量も100MB以下 起動が速い 起動時間: 5秒程度 統合ツール(WDT) 高機能なEclipse用の連携ツールを無償で提供
 Eclipseから簡単に使用可能 自動化ツールとの連携 多くのOSSツールに 無償でプラグインを提供
  • 29. © 2014 IBM Corporation #natsumiA4 各種ツールとの連携 各種CI・Buildツールとの
 連携機能をGitHubで公開 29 h"ps://github.com/wasdev
  • 30. © 2014 IBM Corporation #natsumiA4 Apache Maven § Java用プロジェクト管理ツール – 統一したビルドプロセスの提供 – 依存関係の管理 – 必要なファイルの自動ダウンロード •  Mavenセントラルリポジトリ •  各種の公開リポジトリ •  プロジェクトのリポジトリ •  ローカルリポジトリ – プラグインによる柔軟な拡張が可能 •  テストの実行や成果物の配布なども 30
  • 31. © 2014 IBM Corporation #natsumiA4 MavenからのLibertyプロファイルの利用 § pom.xmlにRepositoryとPluginを登録 31 <project> ... <pluginRepositories> <!-- Configure WASdev repository --> <pluginRepository> <id>WASdev</id> <name>WASdev Repository</name> <url>http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/maven/repository/</url> <layout>default</layout> <snapshots><enabled>false</enabled></snapshots> <releases><enabled>true</enabled></releases> </pluginRepository> </pluginRepositories> ... <build> <plugins> <!-- Enable liberty-maven-plugin --> <plugin> <groupId>com.ibm.websphere.wlp.maven.plugins</groupId> <artifactId>liberty-maven-plugin</artifactId> <version>1.0</version> <!-- Specify configuration, executions for liberty-maven-plugin --> ... </plugin> </plugins> </build> ... </project> IBMがレポジトリを提供
  • 32. © 2014 IBM Corporation #natsumiA4 Mavenで利用できるLibertyプロファイルのGoal § liberty:create-server – サーバーを作成 § liberty:start-server – サーバーを始動 § liberty:stop-server – サーバーを停止 § liberty:deploy – アプリケーションをサーバーにデプロイ § liberty:undeploy – サーバーからアプリケーションを削除 § liberty:install-apps – サーバーのdropinsディレクトリにアプリケーションをコピー § liberty:package-server – サーバーをパッケージ 32
  • 33. © 2014 IBM Corporation #natsumiA4 Mavenのビルド・ライフサイクルへの組み込み 33 validate compile test-compile test package pre-integration-test integration-test post-integration-test verify install deploy $ cd my-project $ mvn packate ... $ cd my-project $ mvn install ... <plugin>
 <groupId>com.ibm.websphere.wlp.maven.plugins</groupId>
 <artifactId>liberty-maven-plugin</artifactId>
 <executions>
 <execution>
 <phase>pre-integration-test</phase>
 <goals>
 <goal>create-server</goal>
 </goals>
 ...
 </execution>
 </executions>
 </plugin> <goals>
 <goal>start-server</goal>
 </goals> <goals>
 <goal>install-apps</goal>
 </goals> <phase>post-integration-test</phase>
 <goals>
 <goal>stop-server</goal>
 </goals> サーバーの作成 サーバーの起動 アプリケーションのインストール サーバーの停止
  • 34. © 2014 IBM Corporation #natsumiA4 Jenkins: Continuous Integration Server § Javaで書かれたオープンソース継続的インテグレーションツール – 継続的な、ソフトウェアプロジェクトのビルドとテスト – ユーザーからの操作や
 ファイル監視などをトリガーに処理を実行 – 複数サーバーで
 分散ビルド・テストを実行 § プラグインによる拡張で
 さまざまな操作を自動化 – WASのプラグインも提供 34
  • 35. © 2014 IBM Corporation #natsumiA4 Jenkinsによるアプリケーション管理の自動化 § バージョン管理システム(VCS)や
 ビルドツールとの連携が容易 – プラグインを使用すると
 管理画面で設定するだけで
 処理を自動化できる – コーディングやスクリプトが不要に § 処理の完了をJenkinsがモニター – ビルドが終わったら配布,
 テストが完了したら通知など
 一連の処理を自動化できる 35 1. 処理のキック 2. コードの Checkout 3. ビルド パッケージ テスト環境 VCS 本番環境 4. 配布 5. テスト 6. 結果の通知 7. 本番へのデプロイ
  • 36. © 2014 IBM Corporation #natsumiA4 プロジェクトでOSSを使用するのが難しい場合 § もちろんIBM製品によるDevOpsの実現も可能です 36 DevOps Foundation (Jazz) Open Lifecycle and Service Management Integration Platform DevOps ライフサイクル 運用/本番 開発/テスト お客様 事業部門 継続的なイノベーション、フィードバック、改善 SmarterCloud Application Performance Management SmarterCloud Orchestrator IBM Pure Application System Openstack Rational Focal Point Rational Requirements Composer Rational Team Concert Rational Quality Manager Rational Test Workbench Rational Test Virtualization Server
  • 37. © 2014 IBM Corporation #natsumiA4 urban{code} プログラミング不要な容易なプロセス定義 37 事前定義された部品 (インストール、アンインストール、 ロールバックなど) ドラッグ&ドロップによるビジュアルな定義 (順番1) Javaアプリケー ションのインストール (順番2) Webアプリケーションの インストール (順番2) DBデータの追加
  • 38. © 2014 IBM Corporation #natsumiA4 Bluemix: IBMの次世代クラウドプラットフォーム § PaaS環境 – ランタイムや
 アプリケーションから
 利用可能な
 サービスを事前定義 – データベースをはじめ
 認証・分散キャッシュ
 ビジネスプロセス等を
 利用することができる § Cloud Foundryベース – OSSのPaaSツール – ビルドパックにより
 アプリ実行環境を
 可搬性を持って実装 38 Liberty Profile IBM Bluemix PaaS
  • 39. © 2014 IBM Corporation #natsumiA4 BluemixのJavaランタイムはLibertyプロファイル § Eclipse/Libertyプロファイル上で開発しているJava EEコードを
 そのままBlumix上で実行・テストすることが可能 § Cloud Foundryのツールを使用すれば,
 開発したアプリケーションをBlumixやVMware上の仮想環境へ
 自動でデプロイ 39 cf push app.war IBM Bluemix 独自に構築した Cloud Foundry
  • 40. © 2014 IBM Corporation #natsumiA4 まとめ § IBMのJava EE実行環境であるWebSphere Application Serverは
 新しいランタイムとしてLibertyプロファイルを提供 § Libertyプロファイルは軽量・シンプルなランタイムで
 多くのツールに対してプラグインが提供されているため
 クラウド対応やDevOpsの実現に最適 § 各種OSSやベンダー製品が充実してきた今は
 開発・テストと運用の自動化に再チャレンジする最適のタイミング 40
  • 41. © 2014 IBM Corporation #natsumiA4 参考資料 §  WAS V8.5.5 最新情報ワークショップ資料 – http://www.ibm.com/developerworks/jp/websphere/library/was/was855liberty_ws/
 Libertyプロファイルについて日本語で一番詳細な情報 §  Redbooks: Configuring and Deploying Open Source 
 with WebSphere Application Server Liberty Profile – http://www.redbooks.ibm.com/abstracts/sg248194.html
 各種OSSとLibertyプロファイルの連携方法
 まもなく日本語化されたものがでます。 §  Codezine: 軽量・高速・安価で、安定性と信頼性も兼ね備えた
 WebSphere Application Serverの「Liberty Core」を使ってみた – http://codezine.jp/article/detail/7697
 とりあえずLibertyプロファイルを試してみたい方に最適の記事 §  Codezine: Jenkinsで実現するJava EEアプリケーションの自動ビルドと自動デプロイ – http://codezine.jp/article/detail/7929
 JenkinsとLibertyプロファイルの連携について §  IBM developerWorks 日本語版: WebSphere Application Server – http://www.ibm.com/developerworks/jp/websphere/category/was/
 日本語によるWASの各種技術情報はこちらから 41