websphere application server version 9.0へのマイグレーション - … · ibm cloud software...

68
© 2016 IBM Corporation ® WebSphere Application Server Version 9.0へのマイグレーション - WAS Liberty 編 - 日本IBM株式会社 クラウドソフトウェア事業 Application Platform Technical Sales 2018/03/16 Version 6.1.0

Upload: others

Post on 11-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

© 2016 IBM Corporation

®

WebSphere Application ServerVersion 9.0へのマイグレーション- WAS Liberty 編 -

日本IBM株式会社クラウドソフトウェア事業Application Platform Technical Sales

2018/03/16 Version 6.1.0

Page 2: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

2

おことわり

▪ このマイグレーションガイドは,WebSphere Application Server(以下WAS)の

マイグレーションを行うさいの手順の全体を俯瞰し,

その概要を把握していただくことを目的として作成されています

▪ この資料は以下の内容を含んでおります

– マイグレーションの全体的な流れ

– 多くのお客様で必要な一般的な作業内容

– 過去のマイグレーションプロジェクトでの経験事例

▪ この資料はIBMの正式なレビューを受けていません

– 内容については正確を期すように勤めておりますが,本資料を参照することにより生じた

不利益,損害等については一切責任を負いかねますので,あらかじめご了承下さい

▪ このガイドは,マイグレーションにあたって問題となる事象の完全なリストではありません

– 実際のマイグレーション作業においては,

この資料に記述のない問題が発生する可能性もあります

▪ 実際の作業の手順などについては記述しておりません

– 実際にマイグレーションプロジェクトを行うにあたっては,

末章のリファレンスにありますInfoCenterやマイグレーションのRedBooks,

各種テクニカルノートなどをご参照いただくようにお願いいたします

Page 3: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

3

Agenda

▪ WebSphere Application Serverの進化

▪ マイグレーションのロードマップ

▪ アプリケーションのマイグレーション

▪ 実行環境のマイグレーション

▪ クラウドネイティブ環境への移行

▪ 参照リンク・リファレンス

Page 4: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

4

WebSphere Application Serverの進化

Page 5: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

5

WebSphere Application Serverの歴史

19992000

20012002

2008

WAS V3.0

EJB

WAS V3.5Java 2

マルチOSサポート

1998

2003

WAS V5.0J2EE 1.3

JDK1.3

分散環境の新トポロジー

WS-I Basic Profile 1.0

WAS V2.0

WAS V3.0

WAS V3.5

WAS V4.0

WAS V5.0

WAS V5.1

WAS V5.1JDK1.4

JSF

PME

最新のWS*

WAS V6.1

20042005

WAS V6.0 2006

WAS V6.0J2EE 1.4

HA機能拡張

SOA対応

新Mesaging Engine

最新のWS*

WAS V6.1

Feature Pack

WAS V6.1JDK 5

SIPサポート

開発ツール(AST)

最新のWS*

2007

J2EE 1.2J2EE 1.3

J2EE 1.4

WAS V4.0J2EE 1.2

Webサービスサポート

動的キャッシュ

リソースアナライザー

WAS V7

2009

2010

WAS V7 FP

WAS V7Java EE 5 / JDK 6

柔軟な管理

ランタイム・プロビジョニング

コードとFixの集中管理

Java高速化(参照圧縮)

WAS V8.0

Java EE 6

WAS V8.0Java EE 6 / JDK 6

バッチ実行環境

ログ・トレース高速化

集中インストレーション管理

2011

WAS V8.5

Libertyプロファイル

インテリジェント管理

JavaSE 7

WAS V8.5

WAS V8.5.5

2012

WAS V8.5.5.6

WAS Liberty Java EE 7対応

WAS V1.1

WAS V1.0

Java EE 52013

2014

Java EE 7

WAS V8.5.5

Liberty Core Edition提供

WXSをBASE/NDに同梱

WebサーバーPluginでのインテリジェント管理

2015

2016WAS V8.5.5.6

WAS V9

WAS V9 登場!!Java EE 7, Java 8対応API機能強化API Connectを同梱クラウド対応強化

WAS V1.0からV9.0へ~18年の歴史と進化~

Page 6: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS V9.0のエディション構成

6

WAS CEはなくなります

Liberty(Web Profile only)

WAS Liberty Core

WAS (Base)

LibertyTraditional +WXS

WAS ND WAS for z/OS

LibertyTraditionalIntelligen

tMgmt

+WXSClient

WAS Family Edition

LibertyTraditionalIntelligent

Mgmt+WXS API Connect

Essentials

API ConnectEssentials

API ConnectEssentials

ミッション・クリティカルなアプリ向けに、可用性、高いパフォーマンス、高度な運用管理機能を提供。

WXSの全機能が利用可能

z/OSのシスプレックスの機能を活用して、高いセキュリティ、高信頼性、優れたリソース活用を実現

WXS z/OS クライアント機能が利用可能

Web層のクラスタリングと、セッション・フェイルオーバー機能の提供により、ある程度の規模の環境において、高いセキュリティと高パフォーマンスを提供するトランザクション・エンジン。

WXSのHTTP セッション・キャッシングと動的キャッシュが利用可能

軽量で低コストのLibertyプロファイル・ベースの製品。 Java EEの全機能が不要なWebアプリケーションの稼動環境を迅速に構築。

Page 7: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WASで提供される二つのランタイム

バージョン 提供されるWASランタイム

WAS V8.0WAS

Java EE6 完全対応

WAS LibertyプロファイルServlet/JSPなど基本機能

WAS FullプロファイルJava EE6 完全対応

WAS LibertyプロファイルJava EE6 Web Profile対応

WAS FullプロファイルJava EE6 完全対応

WAS LibertyプロファイルJava EE7 完全対応

WAS FullプロファイルJava EE6 完全対応

WAS LibertyJava EE7 完全対応

WAS traditionalJava EE7 完全対応

WAS V8.5

WAS V8.5.5

WAS V8.5.5.6

WAS V9.0

Page 8: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

用途に応じたランタイムの選択

▪WAS traditional

既存資産の活用を目的としたランタイム

旧WASでおこなっていた従来の運用を継続したいお客様

WAS Libertyで対応していない旧APIを使用しているアプリケーションの実行環境として

JAX-RPCやEntity Bean,CommonJなど

▪WAS Liberty

モダンなアプリケーション開発・サーバー運用に対応した新時代のランタイム

軽量さを活かしたAgile開発やCD(継続的デリバリー)

ツールによる運用の自動化・Platform as Code

クラウド環境での使用やリソースの限定されたIoT環境でも使用

8

Page 9: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS traditional の Java SE / EEのサポート

9

WAS V6.1J2EE 1.4

Servlet 2.4/JSP 2.0EJB 2.1

J2SE 5.0

WAS V7.0J2EE 1.4

Servlet 2.4/JSP 2.0EJB 2.1

Java EE 5Servlet 2.5/JSP 2.1

EJB 3.0

Java SE 6

WAS V8.0J2EE 1.4

Servlet 2.4/JSP 2.0EJB 2.1

Java EE 5Servlet 2.5/JSP 2.1

EJB 3.0

Java EE 6Servlet 3.0/JSP 2.2EJB3.1 / JAX-RS1.0

Java SE 6

WAS V8.5J2EE 1.4

Servlet 2.4/JSP 2.0EJB 2.1

Java EE 5Servlet 2.5/JSP 2.1

EJB 3.0

Java EE 6Servlet 3.0/JSP 2.2EJB3.1 / JAX-RS1.0

Java SE 6/7/8 (*1)

WAS V9.0Java EE 5

Servlet 2.5/JSP 2.1EJB 3.0

Java EE 6Servlet 3.0/JSP 2.2EJB3.1 / JAX-RS1.0

Java EE 7Servlet 3.1/JSP 2.3EJB3.2 / JAX-RS2.0

Java SE 8

(*1) Java SE 8のサポートはWAS V8.5.5.9以降

Page 10: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS Liberty の Java SE / EEのサポート

10

WAS V8.5Java EE 6Web Profile(*1)

Servlet 3.0/JSP 2.2JAX-RS1.0

Java EE 7(*2)

Servlet 3.1/JSP 2.3EJB3.2 / JAX-RS2.0

Java SE 6/7/8(*3)

WAS V9.0Java EE 6

Web ProfileServlet 3.0/JSP 2.2

JAX-RS1.0

Java EE 7Servlet 3.1/JSP 2.3EJB3.2 / JAX-RS2.0

Java SE 8

(*1) Java EE 6 Web ProfileのサポートはWAS V8.5.5以降(*2) Java EE 7のサポートはWAS V8.5.5.6以降(*3) Java SE 8のサポートはWAS V8.5.5.2以降

Page 11: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

二つのマイグレーションパス

▪ WAS V7.0/8.0,WAS V8.5 Fullプロファイルから

– WAS V9.0 traditional へ移行

– WAS V9.0 Liberty へ移行

11

WAS V8.0Java EE6 完全対応

WAS FullプロファイルJava EE6 完全対応

WAS V7.0Java EE5 完全対応

WAS V9.0 LibertyJava EE7 完全対応

WAS V9.0 traditionalJava EE7 完全対応

この資料でカバー

「WAS traditional編」でカバー

Page 12: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

12

なぜマイグレーションをおこなうのか

Page 13: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WASマイグレーションのきっかけ

▪ システム更改

▪ 使用ソフトウェアの陳腐化

– WASのサポート終了

– SSL技術の進歩

▪ 新しい環境への対応

– 新ブラウザ・モバイル

– クラウド

▪ クラウド・ネイティブへの移行

– コンテナ技術の採用

– マイクロサービスアーキテクチャー

– DevOps,CI/CD,Immutable Infrastructure

13

WAS Libertyが適している領域

Page 14: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS 7.0/8.0通常サポート終了とJDKサポート終了

▪ WAS 7.0 / 8.0は2018年4月に通常サポートが終了します

▪ WAS 8.5についは,JDK 6は2018年4月以降,JDK 7は2019年9月以降は新規の修正は作成されません

14

2016 2017 2018 2019 2020

WAS V7.0

WAS V8.0

WAS V8.5

JDK 6

JDK 6

JDK 6

JDK 7

JDK 8

2018/4 2019/9

Page 15: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS LibertyのJDK対応

• Java SE 6対応

• Version 17.0.0.2まで対応

• Version 17.0.0.3以降はJava SE 7以降にのみ対応

• Java SE 7対応

• Version 19.0.0.2まで対応

• Version 19.0.0.3以降はJava SE 8以降にのみ対応

• 詳細は以下のURLを参照http://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.doc

/ae/rwlp_remfeat.html

15

Page 16: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

マイグレーションの必要性:クライアント技術の進歩

▪ ブラウザの進歩

– MSIE 6/8 → MSIE 11/MS Edge

– Firefox,Google Chromeの普及

– Mac OS Xのシェア拡大とSafari

▪ クライアントJavaScript技術の進歩

– Dojo toolkit, jQuery

– Backbone.js, Vue.js, AngularJS, React, etc.

▪ モバイルOSの更新

– iOS 6/7/8/9/10

– Android Jelly Bean/KitKat/Lollipop/Marshmallow/Nougat

16

Page 17: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

セキュリティ:SSL/TSL技術の陳腐化

▪ 2011– BEAST(CVE-2011-3389)

• SSL,TLSのCBCモードの処理の初期化ベクトル決定に関する問題で生ずる脆弱性

▪ 2012– CRIME(CVE-2012-4929)

• TLS圧縮機能に存在する脆弱性

▪ 2013– LuckyThirteen(CVE-2013-0169)

• SSL,TLS,DTLSのCBCモードの処理に存在する脆弱性

▪ 2014– POODLE(CVE-2014-3566)

• SSL3.0のCBCモードの脆弱性

– POODLE bites TLS(CVE-2014-8730)• POODLE同様の攻撃がTLS1.0でも利用できる

▪ 2015– FREAK(CVE-2015-0204 / CVE-2015-0138)

• 過去の暗号輸出規制時のグレードが使われる問題

– Bar Mitzvah Attack(CVE-2015-2808)• RC4自身の脆弱性

– Logjam(CVE-2015-400)• Diffie-Hellman鍵交換プロトコルを使用したTLS接続で512ビットの輸出グレード暗号にダウングレードされる

▪ 2016– SLOTH(CVE-2015-7575 / CVE-2016-0201)

• TLS,MD5のHash衝突の脆弱性

– DROWN(CVE-2016-0800)• SSL v2でRSAベースの証明書を使っていると、同一証明書用いたTLS通信が解読される問題

17

Page 18: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

クラウド環境への対応

▪ クラウドの活用は必須だが全てをクラウドに出すことはできない

– 社内システムと社外クラウドを連携させるHybrid Cloudへの挑戦

18

Bluemix

Web Data Mobile

Analytics

Cognitive

IoT Security BlockChainSystems of Record

Integration bus

CRMERP

Transactions

Systems of Insight

Systems of EngagementSocial, Mobile, IoT

Hybrid Cloudデジタル変革の基盤

Page 19: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

クラウド・ネイティブ:さまざまな変化に迅速に対応できるシステムへの移行

19

開発者

Micro services

DevOpsCI / CD

1.アプリのアーキテクチャー

3.開発方式

4.実行基盤・運用スタイル

2.様々なBest Practice

Platform as a Code / Immutable Infrastructure

“Top 9 rules for cloud applications”

“The 12 Factor Apps”

Page 20: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

20

マイグレーションのロードマップ

Page 21: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

21

マイグレーションのロードマップ

▪ 調査

▪ 計画

▪ スキルの習得

▪ 開発環境

– 開発環境の更新

– アプリケーションのマイグレーション

– 単体テスト

▪ 実行環境

– 実行環境のマイグレーション

– 実行環境のテスト

▪ 統合テスト

▪ サービス開始

調査

計画

スキル習得

開発環境 実行環境

アプリケーションのマイグレーション

実行環境のマイグレーション

単体テスト 環境のテスト

統合テスト

サービス開始

Page 22: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS Liberty移行にあたっての開発・運用スタイルの変化

▪ 開発と運用の分担境界の変化

– 従来の開発の成果物は「アプリケーション(WAR/EAR)」が中心

– WAS Liberty環境では,成果物は「WAS環境一式」やDockerイメージ化した「サーバー環境一式」にすることも可能

– サーバー構成やミドルウェアのバージョン管理などが開発の分担に

▪ 自動構築・自動デプロイの徹底

– WAS Libertyでは,従来より自動化の範囲を大きく広げる事が可能

– Immutable Infrastructureの考え方はほとんど必須に

▪ サーバー監視項目

– ログ集約サーバーの構築の検討

– プロセスやログの仕様が異なるため,監視項目は新規に設計

22

Page 23: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

23

Expressエディション / Hypervisorエディションの廃止

▪ Expressエディション

– 32bit版のみの提供だったExpressエディションは役割を終えV9からは提供されません

– Java EE Webプロファイルで稼働するアプリケーションを使用している場合は,Liberty Coreへの移行を検討して下さい

▪ Hypervisorエディション

– VMwareの仮想マシンイメージとして提供されていたWAS ND版

– IBM Cloud Privateなどの最新の構築製品への移行が必要

WAS 6.x WAS 7.0/8.0/8.5 WAS 8.5.5 WAS 9.0

▪Express

▪(Base)

▪Network Deployment

▪Express

▪(Base)

▪Network Deployment

▪Hypervisor Edition

▪Express

▪Liberty Core

▪(Base)

▪Network Deployment

▪Hypervisor Edition

▪Liberty Core

▪(Base)

▪Network Deployment

各バージョンでのエディション構成

Page 24: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

24

関連ソフトウェアの更新

▪ ベンダーからのサポート状況や,組み合わせのサポート可否などの条件により,

WASと同時に使用しているS/Wなどについても,更新が必要な場合もある

– プラットフォーム(OS,H/W)

– データベース

– メッセージング製品 等

▪ WASとの連携がサポートされているS/Wについては,以下のURLで確認可能

– http://www.ibm.com/support/docview.wss?uid=swg27006921

WAS 6.1 WAS 7.0 WAS 8.0 WAS 8.5 WAS 9.0

Windows 2000

/2003/2008

2003/2008 2003R2

/2008/2008 R2

2008/2008 R2 2012/2012 R2

AIX 5.2/5.3/6.1 5.3/6.1 6.1/7.1 6.1/7.1 7.1/7.2

Solaris 9/10 9/10 10 10 11

Apache 2.0/2.2 2.0/2.2 2.2 2.2 2.2/2.4

DB2 8.1/8.2/9/9.5 8.1/8.2/9/9.5 9.1/9.5/9.7 9.1/9.5/9.7/10.1 9.7/10.1/10.5/11.1

Oracle 9i/10g 10g/11g 10g/11g 10g/11g 12c

例)WASとの組み合わせがサポートされている製品のバージョン(製品出荷時点)

Page 25: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

25

アプリケーションのマイグレーション

Page 26: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Migration Toolkit for Application Binaries

▪ アプリケーションのEAR/WARファイルを分析し,使用されているAPIや機能を調査するツール

▪ アプリケーションがWAS V9 Liberty/traditionalやBluemix上のLiberty for Javaで実行することができるか分析します

▪ 移行計画段階の簡易調査ツールとして利用できます

26

https://developer.ibm.com/wasdev/downloads/#asset/tools-Migration_Toolkit_for_Application_Binaries

Page 27: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Migration Toolkit for Application Binaries

▪ 評価java -jar binaryAppScanner.jar <WAR/EAR> --evaluate

– アプリケーションで使用されているAPIの一覧が示されます

▪ 分析java -jar binaryAppScanner.jar <WAR/EAR> --analyze

--sourceAppServer=[was61|was70|was80|was855]--sourceJava=[ibm5|ibm6|ibm7|oracle5|oracle6|oracle7]

– アプリケーションで使用されているAPIのうち移行にあたって注意が必要なものを出力します

▪ デフォルトでは結果はHTMLファイルとして出力されます

– JSONやテキスト形式の出力もできます

27

Page 28: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

IBM WAS Migration Toolkit

▪ Javaソースコード・構成ファイルを静的に解析して修正が必要な箇所・注意が必要な箇所を指摘

▪ Eclipseに組み込んで使用するツール

– Eclipse Marketplaceからダウンロード導入可能

▪ 三種類の機能を提供

– WAS Migration Toolkit旧バージョンのWASからWAS V9 traditionalへ

– WAS Migration Toolkit WAS Liberty旧バージョンのWASからWAS V9 Libertyへ

– WAS Migration Toolkit Competitive Tools他社のアプリケーションサーバーからWASへ

▪ 無償で利用することができます

28

http://www.ibm.com/developerworks/jp/websphere/library/was/was_migration_toolkit/

Page 29: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

(再掲)WAS Liberty の Java SE / EEのサポート

29

WAS V8.5Java EE 6Web Profile(*1)

Servlet 3.0/JSP 2.2JAX-RS1.0

Java EE 7(*2)

Servlet 3.1/JSP 2.3EJB3.2 / JAX-RS2.0

Java SE 6/7/8(*3)

WAS V9.0Java EE 6

Web ProfileServlet 3.0/JSP 2.2

JAX-RS1.0

Java EE 7Servlet 3.1/JSP 2.3EJB3.2 / JAX-RS2.0

Java SE 8

(*1) Java EE 6 Web ProfileのサポートはWAS V8.5.5以降(*2) Java EE 7のサポートはWAS V8.5.5.6以降(*3) Java SE 8のサポートはWAS V8.5.5.2以降

Page 30: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS V9 Libertyへの移行にあたって必要な主な手順

▪ Java SE 8への対応

▪ Java EE 7への対応

– JAX-RPC/EJB Entity BeanなどLibertyで使用できない旧APIを書き換え

▪ IBM独自機能の除去

– CommonJ/非同期Beanなどを書き換え

▪ DB接続手順などを変更

– JNDI Lookupを使用している場合など

30

Page 31: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Java SE 8への移行

▪ WAS V9はLiberty/traditionalともにJava SE 8のみが提供される

– WAS Libertyで自前のJRE実行環境を別途用意する場合は,Java SE 6/7の使用も可能(2017年6月/2019年6月版まで)

▪ Java SE 8への対応が必要

– Java SE 6は登場から10年以上が経過しておりトレンドから脱落

– Java SE 8も2年以上にわたって使用されており実績も十分

31

2006 2007 2008 2009 2010 2011 2012 2013

Java SE 6

2014

Java SE 7

Java SE 8

Page 32: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Java Standard Editionの三度目の大変革

▪Java SE 8では,言語仕様レベルの大きな変更が行われた

–Project Lambda

▪過去二回(1.1→1.2および1.4→5.0)に匹敵するあるいは,それ以上のインパクトのある大変革

32

Java言語仕様

1st Edition

JDK 1.0 1.1

Java言語仕様

2nd Edition

J2SE 1.2 1.3

Java言語仕様

3rd (SE 7) Edition

J2SE 5.0 Java SE 61.4 7

Java言語仕様 Java SE 8 EditionJava SE 8

Page 33: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Java SE 8への移行

• バイナリ互換

• Java SE 7/6用にコンパイルされたクラスファイルは基本的にそのまま稼働します

• Javaクラスを直接操作する処理,クラス・インターフェースの構造に前提をおいている処理の中に,Java SE 8環境では動かないものがあります

• 例:CDIコンテナ・コンパイルインターセプタなど

• ソースコード互換

• Java SE 7以前の環境用に書かれたJavaソースファイルは,一部の記述を修正する必要があることがあります

• J2SE 5.0で導入されたGenericsを利用していないコードは,使用するように書き換えることを強く推奨します

• Java SE 8の新機能の多くがGenericsの使用を前提としています

33

Page 34: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

ソース互換とバイナリー互換

▪ ソース上位互換

– Java SE 8のコンパイラで旧バージョンの形式のJavaソースをコンパイル

▪ バイナリ上位互換

– 旧バージョンのコンパイラでコンパイルしたClassファイルをJava SE 8のJava VMで実行

– -target 1.7等でコンパイルしたClassファイルをJava SE 8で実行

34

JavaソースJava SE 8形式

JavaソースJava SE 7形式

JavaコンパイラJava SE 8

JavaコンパイラJava SE 7

ClassファイルVersion 52.0

ClassファイルVersion 51.0

Java VMJava SE 8

Java VMJava SE 7

一部NG

(-source 1.7)上位互換で基本OK-target 1.7

Page 35: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Java SE 8新機能:Project Lambda

▪ Lambda式

▪ 型推論

▪ Method Reference

▪ Default Method

▪ Stream API

35

( 引数 ) -> { 処理 }

オブジェクトとして「変数に代入」したり「メソッドの引数にわたす」ことができる「コード片」

▪ Java SE 8の多くの機能の中核として利用されている

Page 36: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

36

Java SE:Generics(総称型)への対応

▪ 汎用的なオブジェクトを扱うクラスにおいて,扱うオブジェクトの型をパラメーターとして指定できるように

– コンパイル時点での型の安全性の保証

– 型キャストの排除

▪ コレクション・フレームワークをはじめとして多くの標準APIが総称型を使用したものに変更

– 型を指定しないで使用するとコンパイル時に警告が出るように

▪ Java SE 8の新機能の多くがGenericsの使用を前提に

– Genericsを利用していないと,型推論が使えないため,利用できない新機能が多数

– 単なる警告ではなく実害があるようになったのでGenericsの使用を強く推奨

Page 37: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

37

Java SE:Genericsを使用するように変更したコードの例

private HashMap<String, InetAddress> hosts; // 型を指定する

public void init() throws IOException {hosts = new HashMap<String, InetAddress>();hosts.put("localhost", InetAddress.getLocalHost());hosts.put("publicdns", "8.8.8.8"); // コンパイルエラーとなる

}public InetAddress getAddress(String hostname) {return hosts.get(hostname); // キャストは不要

}

private HashMap hosts; // 型は指定しない

public void init() throws IOException {hosts = new HashMap();hosts.put("localhost", InetAddress.getLocalHost());hosts.put("publicdns", "8.8.8.8"); // エラーとならない

}public InetAddress getAddress(String hostname) {return (InetAddress)hosts.get(hostname); // キャストが必要

}

潜在的なバグ

ClassCastExceptionが発生する可能性

Page 38: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

38

Java SE:バージョン間の非互換への対応

▪ 仕様変更により一部にコンパイルが通らないコードや,コンパイルが正常に通った場合も,APIの挙動がかわることがあります

▪ JDK 6.0からJDK 7.0への移行

– Exceptionをcatch節の中でRe-throwする際の言語仕様変更など軽微なもののみ

– 非互換の詳細については,以下の文章を参照http://www.oracle.com/technetwork/java/javase/compatibility-417013.html

▪ JDK 7.0からJDK 8.0への移行

– 原則として上位互換性がとられている

– J2SE 1.2で非推奨となっていたThread.stop()が無効化された,1024ビット未満のRSA鍵が拒否されるなどの動作変更がいくつかある

– Classファイルの構造についてある種の前提をおいているコードは動かない

• 「インターフェースはメソッド実装を持たない」「同じアノテーションは重複しない」など

• CDIコンテナなどが動かなくなった例がある

– 非互換の詳細については,以下の文書を参照http://www.oracle.com/technetwork/java/javase/overview/8-compatibility-guide-2156366.htmlhttp://www.oracle.com/technetwork/jp/java/javase/overview/8-compatibility-guide-2156366-ja.html

Page 39: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

39

Java SE:その他,JDKのバージョンによる挙動の違い

▪ 内部実装クラスへの依存

– JDK/JRE内部で使用されている非公開クラスの実装はバージョンごとに変更されることが多々あります

– 「JavaプラットフォームAPI仕様」に載っていないJDK/JREのクラスを直接使用している場合,移行に当たって修正が必要となるケースがあります

– 基本的に,アプリケーションを作成する際には,これらの内部クラスを直接使用しないように実装してください

▪ file.encodingのコマンドライン引数(-D)による変更

– デフォルトのファイルエンコーディングを指定するfile.encodingシステムプロパティをコマンドライン引数で変更した場合の挙動は,JDKのバージョンによって異なります

• 変更が有効になるものと有効にならないものがあります

– デフォルトのファイルエンコーディングに依存し,「 file.encoding」でデフォルトのエンコーディングを変更した上で実行しているアプリケーションは,移行に当たって修正が必要となるケースがあります

– アプリケーションを作成する際には,文字の変換処理では必ずエンコーディングを指定して,デフォルトのエンコーディングによって挙動が変わらないように実装してください

Page 40: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

40

Java EEアプリケーションのマイグレーションの概要

▪ Java EE 7でオプションとなっているJava EE仕様をつかっている場合には書き換えが必要

– JAX-RPC: JAX-WSを使用して書き換え

– EJB Entity Bean: JPAを使用して書き換え

– JAX-R,Java EE Deployment: WAS traditionalを使用する

– JSF 1.x: 可能な限りJSF 2.xに移行する

▪ IBM独自機能を使用している場合は,書き換えが必要

– 非同期Bean,CommonJ:Concurrency Utility for Java EEを使用して書き換え

Page 41: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS LibertyでのDB接続

▪ JNDI LookupでDataSourceを取得する場合

– InitianlContextを作成する際のパラメーターは不要です

– com.ibm.websphere.naming.WsnInitialContextFactoryは使用しません

▪ データベースConnectionの接続検証

– WAS Libertyは,接続検証を行いません

– アプリ側で isValid() メソッドを呼び出すことで検証します

▪ com.ibm.websphere.ce.cm.StaleConnectionException

– 接続障害時にStaleConnectionExceptionはthrowされません

– SQLRecoverableExceptionもしくはSQLNonTransientConnectionExceptionでリカバリー処理をおこないます

▪ データベースの接続パラメーター

– 名称が異なるものなどがあります(詳細はKnowledge Centerを参照)http://www.ibm.com/support/knowledgecenter/ja/SSAW57_liberty/com.ibm.websphere.wlp.nd.doc/ae/twlp_mig_dbapp.html

41

Page 42: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

42

▪ WASマイグレーションなどの稼働環境の変更時やPC端末更改、アプリケーションの修正/変更時に一度記録したスクリプトで繰り返しテストを実行

テストシナリオ設定

テスト実施

操作の記録

スクリプト生成

操作の再生

結果の検証

統合テストRational Test Workbench (RTW) による機能テストの自動化

マウス操作 キー入力

画面操作を記録

テストスクリプト自動生成

必要に応じて編集

テストスクリプト

記録した操作を再生

データプールにより、スクリプトを変更せずテストケース数を増やすことが可能

Page 43: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

43

対象アプリケーション画面遷移テストシナリオ

マウス操作 キー入力

プロトコルのやり取りを記録

▪ HTTPプロトコルのやり取りを記録し、大量の仮想ユーザーで負荷テストを実行

▪ WASマイグレーション時にサーバーへ大量の負荷を与え最適なチューニングを行う

テストシナリオ設定

操作の記録

スクリプト生成

テストの実行

結果の検証

パフォーマンス測定(負荷テスト)Rational Performance Tester (RPT) による負荷テスト

負荷設定

テストスクリプト自動生成

テストシナリオ作成

スケジュール実行とレポートの生成

何人のユーザーがどのようなエミュレートを行うか

Click

Page 44: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

44

実行環境のマイグレーション

Page 45: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS V7.0/8.0/8.5からWAS V9.0 Liberty

▪ 管理概念が全く異なっている

– 構成ファイルの作成・修正

– アプリケーションの導入・更新

– サーバーの起動・停止

– ログ・トレースの出力

▪ WAS traditionalと「同じ運用」を求めるとデメリットの方が多い

– なるべく同じ運用を求めるのであれば,WAS traditionalを選択

▪ WAS Libertyのメリットを享受できる運用を再設計する

– DevOps,Platform as Code

– 構成ファイルのバージョン管理

– サーバーの自動構成・自動運用,アプリケーションの自動配布

45

Page 46: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS Libertyの特長

WAS Liberty & WDT

Java EE 7対応Java EE 7 標準に準拠したアプリを完全サポートJAX-WS, JAX-RS, JMSもサポート新機能も継続的に提供

Unzipによる導入とデプロイパッケージをしたサーバー + アプリ + 構成情報をUnzipでデプロイ可能

簡単な構成と動的変更最低限必要な構成ファイルはserver.xmlひとつだけデフォルトベースで簡単構成構成変更は再起動なしに反映

軽量ランタイムメモリー使用量が小: 60MB程度ディスク使用量も100MB程度

起動が速い:5秒程度

様々な環境で稼動オンプレ,クラウド(IaaS、PaaS),Dockerで稼動

統合ツール(WDT)高機能なEclipse用の連携ツールを無償で提供Eclipseから簡単に使用可能

自動化ツールとの連携多くのOSSツールに無償でプラグインを提供

API公開RESTのアノテーションからSwaggerを自動生成

Page 47: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

軽量・高速なランタイム

<featureManager><feature>jsp-2.3</feature><feature>jdbc-4.1</feature><feature>jaxrs-2.0</feature><feature>sessionDatabase-1.0</feature><feature>ssl-1.0</feature>

</featureManager>

構成ファイル server.xml

ServletJSPJDBCSSL

JAX-RS

sessionDatabase

依存関係も自動的に解決

JSON

軽量

数十メガバイトのメモリ消費/100メガバイト程度のディスク消費

コンテナや仮想環境への集約が容易に

高速起動・動的変更

数秒以内でサーバーが起動

サーバーの構成変更やアプリケーションの変更も即座に反映

モジュール構造のランタイム

提供機能をFeatureとしてモジュール化

必要なFeatureだけを選択して導入・起動

Page 48: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS Libertyの継続的デリバリー

48

wsSecuritySaml rtcommGateway

四半期ごとにフィーチャー単位で機能追加

8.5.5.8 8.5.5.9 16.0.0.2 16.0.0.3 16.0.0.4 17.0.0.1

WebSphere Application Server V9.0

WebSphere Application Server V8.5.5

・・・ 8.5.5.7

apiDiscoverysamlWeb rtcomm

bluemixUtility

logstashCollector wsAtomicTransaction

scim

Page 49: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS V9 Libertyで提供されているFeature

49

WebSphere

z/OS

WebSphere

ND

WebSphere

Liberty Core

WebSphere

Base

zosConnect-1.2

zosLocalAdapters-1.0zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0

Java EE 6

subsetcouchdb-1.0

mongodb-2.0

wsSecurity-1.1

javaee-7.0

batchManagement-1.0

rtcomm-1.0 rtcommGateway-1.0

sipServlet-1.0

apiDiscovery-1.0

mediaServerControl-1.0

wsSecuritySaml-1.1 wsAtomicTransaction-1.2

scalingController-1.0

scalingMember-1.0 dynamicRouting-1.0

collectiveController-1.0 clusterMember-1.0

healthManager-1.0healthAnalyzer-1.0

webProfile-6.0

distributedMap-1.0

openid-2.0

openidConnectServer-1.0

openidConnectClient-1.0

osgiAppIntegration-1.0

spnego-1.0

collectiveMember-1.0

restConnector-1.0

sessionDatabase-1.0

ldapRegistry-3.0

webCache-1.0

javaMail-1.5

osgiConsole-1.0

json-1.0

timedOperations-1.0monitor-1.0

oauth-2.0

serverStatus-1.0

wab-1.0

blueprint-1.0

webProfile-7.0

eventLogging-1.0

requestTiming-1.0

adminCenter-1.0concurrent-1.0

bells-1.0

samlWeb-2.0

scim-1.0

federatedRegistry-1.0

constrainedDelegation-1.0

httpWhiteboard-1.0

osgiBundle-1.0

passwordUtilities-1.0

bluemixUtility-1.0

logstashCollector-1.0

batch-1.0

concurrent-1.0

appClientSupport-1.0

ejbPersistentTimer-1.0

ejbHome-3.2

ejbRemote-3.2

ejb-3.2

mdb-3.2

j2eeManagement-1.1jacc-1.5

jaspic-1.1

jca-1.7

jms-2.0 wmqJmsClient-2.0

wasJmsClient-2.0

jaxws-2.2

jaxb-2.2appSecurity-2.0

managedBeans-1.0

beanValidation-1.1

websocket-1.1

websocket-1.0

jaxrsClient-2.0

cdi-1.2

jpa-2.1

el-3.0

javaMail-1.5

servlet-3.1

jsp-2.3

jsf-2.2 ejbLite-3.2

jndi-1.0

jdbc-4.1

jsonp-1.0

jaxrs-2.0

ssl-1.0

Page 50: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

ゼロマイグレーション・ポリシー

新しい仕様のバージョンに対応するフィーチャーが

追加されても,従来のフィーチャーも提供

例) 現在はServlet 3.1フィーチャーが提供されていますが,

Servlet 3.0フィーチャーも引き続き利用できます

アプリケーションで新仕様が必要なければ

従来のフィーチャーをそのまま利用可能

フィーチャーは個別にリポジトリからダウンロード・導入が可能

ただし,対応するJDKのバージョンは将来のバージョンで変更されます

50

servlet-3.0

servlet-3.1

servlet-3.0 servlet-3.1

新バージョン

新バージョン

一般的なアプリケーションサーバー WAS Libertyプロファイル

Page 51: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS traditionalの運用

▪ 作成した構成はその環境固有のもので,他の環境へのコピーは不可

▪ 構成は全てWASの管理インターフェースを利用

– 構成ファイルの直接編集や外部ツールでの配布は非サポート

▪ 履歴管理などは台帳などで別途管理

51

管理コンソール(GUI)

wsadmin(スクリプト)• パラメーター設計書• 運用順書• 変更管理台帳 .....

Dmgr

Page 52: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS Libertyのシンプルで柔軟な構成

52

▪基本はserver.xmlという単一のファイルで容易に構成 全ての構成項目がデフォルトの値をもつ

デフォルトから変更する場合にのみ記述

▪可搬性の高い記述が可能 変数や相対パスによる環境固有情報の排除

他の環境へのコピーが容易

<server description="new server"><!-- Enable features --><featureManager>

<feature>jsp-2.3</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の構成ファイルの例

Page 53: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

▪既存環境の構成・アプリケーション・Liberty実行環境をそのままZIP/JARファイルにパッケージすることができる▪ 必要最小限のフィーチャーだけをパッケージ化することで

実行環境をコンパクトにすることも可能

▪パッケージを展開するだけで導入が可能▪ 構成やアプリケーション導入が終わった状態で即座に利用可能

Libertyのパッケージ化

53

OS#1

Java SDK

Liberty Profile

サーバー構成

アプリ

①インストール

ディスク

②サーバー構成

③デプロイ

OS#2

ディスク

server –package <サーバー名>--include=minify

zip/jarファイル

④パッケージ ⑤展開

Java SDK

Liberty Profile

サーバー構成

アプリ元のサイズよりコンパクトに!

Page 54: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

WAS Libertyの運用例

▪ アプリケーションだけでなくWAS Libertyの構成ファイルも外部ツールでバージョン管理

– サーバー環境の品質・確実性を確保

– アプリケーションやLiberty実行環境もパッケージして配布

▪ 環境の修正が必要な場合は,配布済み環境ではなくマスターを修正

54

変更・履歴管理構成

ファイル

アプリケーション

自動配布

マスター構成

Jenkins

LibertyCollective

Page 55: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Immutable Infrastructure / Infrastructure as Code

▪ 環境は自動構築し,一度構築した環境は修正をしない

▪ 実行環境に問題が見つかった場合:

– 従来は: 実行環境を直接変更する

– IIでは: 環境を構築する「コード」を修正し,環境を再構築

手作業による再現性のない作業(の繰り返し)

コード実行による均質な作業と実行結果

• 大量のドキュメント• 作業手順書の整備

• 短時間で確実なアウトプット

• 自動化された履歴管理

Page 56: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

IBM UrbanCode Deploy

▪ テスト環境~本番環境までのアプリケーション・デプロイの自動化をサポート

– WAS Liberty用の部品も提供され構成やアプリケーションの配布を簡単に

56

ボタンを押すだけで、自動デプロイが可能

ドラッグ&ドロップでプロセスをビジュアルに定義

ガバナンス強化

工数削減

オペレーション・ミスの削減

https://www.ibm.com/developerworks/jp/websphere/library/was/liberty_v9_infradesign/libertyV9_infraDesgin_05_DevOpsIntegration.pdf

Page 57: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

57

クラウド・ネイティブ環境への移行

Page 58: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

変化に迅速に対応できるシステムへの移行

58

開発者

Micro services

DevOpsCI / CD

1.アプリのアーキテクチャー

2.開発方式

3.実行基盤・運用スタイル

コンテナ化 / Platform as Code / Immutable Infrastructure

Page 59: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

マイクロサービス・アーキテクチャー

▪ 単一の(モノリシックな)アプリとして実装するのではなく,複数のサービスの統合として実装する

– 変更の影響範囲を極小化

– 機能の変更・拡張の容易性

▪ RESTなどの軽量な接続により多対多の直接連携

– 用途に応じた最適な実装技術の選択

▪ 開発・運用する企業組織の構造にまで踏み込んだアーキテクチャー

– Conwayの法則:組織の設計するシステムは組織のコミュニケーション構造をそのまま反映する

59

RESTを中心としたAPIによる連携

Page 60: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

コンテナ技術の活用

▪ OS機能を仮想環境間で共有するためより多くの環境を集約

▪ コンテナ上で稼働するイメージは可搬性が高く,複数環境(開発・テスト・検証・本番環境など)での再利用が容易

▪ WAS LibertyはLinuxのコンテナ環境Dockerと高い親和性

60

サーバー・リソース

ハイパーバイザー

OS OS

仮想マシン環境

サーバー・リソース

OS

コンテナー エンジン

コンテナー環境

ホスト側 ホスト側

Page 61: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Docker イメージで Liberty を配布

変更・履歴管理

設定ファイル

アプリケーション

自動配布

Jenkins

Docker

Trusted

Registry

テスト環境や本番環境に同一イメージを配布

マスターのDockerイメージを履歴管理・ビルド

Dockerfileで作成されたDockerイメージは可搬性がある

Page 62: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

従来のアプリケーション開発・更新

62

アプリケーション

ミドルウェア関連SW

本番環境

アプリケーション

ミドルウェア関連SW

検証環境

導入構成・変更 導入構成・変更

運用担当者

アプリケーション

ミドルウェア関連SW

開発会社テスト環境

導入構成・変更

開発

開発者

成果物

• それぞれの環境で個別に環境を構築・管理• 本番/検証環境のミドルウェアなどは運用担当者が更新• 実装に利用可能なのは,運用担当者がスキルを持った環境のみ

Page 63: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Dockerによって変わるアプリケーション開発・更新

63

アプリケーション

ミドルウェア関連SW

本番環境

アプリケーション

ミドルウェア関連SW

検証環境

運用担当者

アプリケーション

ミドルウェア関連SW

開発会社テスト環境

導入構成・変更

開発

開発者

成果物 Dockerイメージを作成

• 運用担当者はDocker環境を構築,ミドルウェアなどは開発者が構築• 本番/検証環境のミドルウェアなどもアプリ同様に開発者が更新• 開発者が実装利用する言語/ミドルウェアを自由に選択可能

Page 64: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

Workload Management機能の提供

▪ 従来は,Webアプリケーションサーバーごとにクラスタリング機能やロードバランシングなどの機能が提供されていた

▪ コンテナ環境では,統合管理を行うオーケストレーションツールが様々なWebアプリケーションサーバーに対して総合的にクラスタリング機能や耐障害性,ロードバランシング機能を提供

▪ Docker環境のオーケストレーションツールのデファクトスタンダードはKubernetes

▪ WAS NDのEdgeコンポーネント+WebサーバープラグインのWLMからKubernetesのWLMへの移行も検討

64

Page 65: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

IBM Cloud Privateの活用

▪ 構築の困難なDocker/Kubernetes環境を容易に構築・管理

▪ 様々なOSS/製品の組み合わせをIBMがテスト・サポート

▪ 環境構築の自動化ツールや開発・運用の各種機能も併せて提供

65

IBM Cloud Automation Manager

マルチクラウドでの構築自動化

コンテナー環境の活用

お客様管理のシステム基盤

DevOpsツールチェーン

IBMミドルウェア / OSSソリューション・カタログ

従来型ワークロード

クラウドネイティブ・アプリ

IBM Z他社クラウド

KubernetesCloud Foundry

Openwhisk ※

オープンソース

・ソフトウェア

運用管理/セキュリティ/課金セルフサービス

MQ

Page 66: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

66

参照リンク・リファレンス

Page 67: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

参照情報

▪ Knowledge Center「マイグレーション、共存、および相互運用」http://www.ibm.com/support/knowledgecenter/ja/SSAW57_9.0.0/com.ibm.websphere.nd.multiplatform.doc/ae/welc6topmigrating.html

▪ Knowledge Collection: Migration Planning and Resourceshttp://www.ibm.com/support/docview.wss?rs=180&uid=swg27008724

▪ IBM WebSphere Application Server Migration Toolkithttps://www.ibm.com/developerworks/websphere/downloads/migtoolkit/

▪ RedBooks ”WebSphere Application Server V8.5 Migration Guide”http://www.redbooks.ibm.com/abstracts/sg248048.html

67

Page 68: WebSphere Application Server Version 9.0へのマイグレーション - … · IBM Cloud Software | WebSphere software 5 WebSphere Application Serverの歴史 1999 2000 2001 2002

IBM Cloud Software | WebSphere software

参考情報

▪ WAS V8.0 によるWebシステム基盤設計ワークショップ資料https://www.ibm.com/developerworks/jp/websphere/library/was/was8_guide/

▪ WAS V9 Liberty基盤設計セミナー資料https://www.ibm.com/developerworks/jp/websphere/library/was/liberty_v9_infradesign/

68