クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?...

35
IBM Corporation 2016 All Rights Reserved. #ccc_g5 #jjug_ccc クラウド、クラウドというけれど Javaのシステムにとって クラウドってメリットあるの? ⽇本アイ・ビー・エム株式会社 ⽥中孝清

Transcript of クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?...

Page 1: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016 All Rights Reserved.

#ccc_g5 #jjug_ccc

クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

⽇本アイ・ビー・エム株式会社⽥中孝清

Page 2: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

⾃⼰紹介⽥中 孝清•  ⽇本IBM クラウドソフトウェア事業部

アプリケーション・プラットフォームテクニカルセールス

•  2000年からWebSphereを売ってます

•  JJUG幹事

•  趣味•  登⼭•  Enlightened

Page 3: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

10⽉15⽇ JJUG JavaOne報告会鈴⽊雄介 JJUG会⻑「JavaOne 2016総括」

•  IBM 「MAKE JAVA GRATE AGEIN」

•  クラウド「使ってて当たり前」•  Agile「もはや議論すらない。常識の範疇」

Page 4: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

⽇本のJavaの世界でクラウドは普及しているか

↓普及している部分と

していない部分がある

Page 5: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

⼆つの⽂化に分かれる⽇本のIT企業

リスクの最⼩化を優先

ミッション・クリティカルなアプリケーションの管理、運⽤

マラソンランナー

q  サービスレベル重視q  ウォーターフォール開発q  ⻑期に渡るシステム構築

イノベーションのスピードを優先

成⻑機会のための探索、開発、デプロイ

スプリンター

q  スピード開発重視q  試⾏錯誤、継続的デプロイq  早期のシステム構築/改修

Web系企業 SI系企業

Page 6: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

クラウド時代のプログラミング⾔語

Web系企業でよく使われる⾔語

SI系企業でよく使われる⾔語

Page 7: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

クラウドのメリットとは

•  構築・運⽤コストの削減•  即応性

•  Javaシステムにとってもメリットはもちろんある

しかし•  クラウドのメリットを享受するためには

システムがクラウドに対応しなければならない•  クラウド・レディー / Cloud Ready•  クラウド・ネイティブ / Cloud Native

Page 8: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

Top 9 rules for cloud applications1.  Don't code your application directly to a specific topology2.  Don't assume the local file system is permanent3.  Don't keep session state in your application4.  Don't log to the file system5.  Don't assume any specific infrastructure dependency6.  Don't use infrastructure APIs from within your application7.  Don't use obscure protocols8.  Don't rely on OS-specific features9.  Don't manually install your application

h"p://ibm.biz/nine-rulesKyle BrownIBM DECTO for Cloud architecture

Page 9: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

Java EEシステムのクラウド化が困難な理由

Web サ|バ|

Java EEアプリ

ケーション

Java EE アプリケーション

サーバーn  トランザクション処理n  DB処理n  セッション管理n  メモリー管理n  セキュリティーn  その他

Java EEアプリ

ケーション

Java EEアプリ

ケーション

バックエンドシステム

◆メニュー◆案内◆メール

Webクライアント

1.アプリケーション・サーバーがクラウドに適応していない

2.アプリケーションをクラウド対応にするのが難しい

3.バックエンドシステムは社外クラウドに

出すことができない

Page 10: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

1.アプリケーションサーバー

•  アプリケーションサーバーの導⼊が⼤変•  サイズが⼤きい(ディスク・メモリフットプリント)•  インストーラーの実⾏が必要

•  システムの可搬性がない•  環境にあわせた構成が必要

•  ⾃動化ツールとの相性がよくない•  アプリケーションの「デプロイ」が必要

Page 11: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

クラウド時代にもとめられるJava EEアプリケーションサーバーとは

•  容易な導⼊•  ⼩さいメモリ・フットプリント•  構成の可搬性•  管理の⾃動化

Page 12: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

2.アプリケーションのクラウド対応

マイクロサービスアーキテクチャー(MSA)Microservices Architecture

Page 13: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

既存のアプリケーションをMSA化するには

•  「既存システムを分割」することよりも「アプリケーションの機能を外部から呼べる」ようにすることを重要視する

例:•  アプリケーションの機能をAPIで提供する•  バックエンドへのアクセスを

JDBC(SQL)でなくRESTでよびだす

API連携 分割>

Page 14: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

3.バックエンドの対応ハイブリッドクラウドによる

オンプレミスとクラウドの連携•  既存システムのデータ・機能をAPIで提供する•  ただしAPI管理セキュリティは重要

Systems of Record

Integration bus

CRMERPTransactions

Systems of Insight

Systems of EngagementSocial, Mobile, IoT

Hybrid Cloud既存環境と

クラウド環境の連携基盤

Page 15: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

Java EEがクラウド対応するには

•  クラウド対応のアプリケーションサーバー

•  API連携に対応したアプリケーション

•  ハイブリッドクラウドによるバックエンドシステムの公開

これでJava技術者も まだまだ戦えますクラウド時代になっても

Page 16: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

IBMの取り組み

•  クラウドに対応したJava EEランタイムWebSphere Libertyの提供

•  MicroProfileへの取り組み

•  IBM J9 VMのOSS化

Page 17: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

WebSphere Application Serverの⼆つのランタイムバージョン 提供されるWASランタイム

2011年7⽉WAS V8.0

WASJava 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 完全対応

2012年7⽉WAS V8.5

2013年6⽉WAS V8.5.5

2015年6⽉WAS V8.5.5.6

2016年6⽉WAS V9.0

Page 18: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

⽤途に応じた⼆つのランタイム

•  過去のバージョンとの互換性を重視したWAS traditional

•  クラウド⾃体に対応した新しいランタイムWAS Liberty

Page 19: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

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 20: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

軽量・⾼速なランタイム

<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

q 軽量¦ 数⼗メガバイトのメモリ消費/100メガバイト程度のディスク消費¦ コンテナや仮想環境への集約が容易に

q ⾼速起動・動的変更¦ 数秒以内でサーバーが起動¦ サーバーの構成変更や

アプリケーションの変更も即座に反映

q モジュール構造のランタイム¦ 提供機能をFeatureとして

モジュール化¦ 必要なFeatureだけを選択して

導⼊・起動

Page 21: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

WAS Libertyで提供されているFeatureWebSphere z/OS

WebSphere ND

WebSphere Liberty Core

WebSphere Base

zosConnect-1.2 zosLocalAdapters-1.0 zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0

Java EE 6 subset

couchdb-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.0 healthAnalyzer-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.0 monitor-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.0 concurrent-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.1 jacc-1.5 jaspic-1.1 jca-1.7

jms-2.0 wmqJmsClient-2.0 wasJmsClient-2.0

jaxws-2.2 jaxb-2.2 appSecurity-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 22: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

多様なクラウドとの親和性

, B , B , B , B , B , B

VC C d RWNO C dVC CI MS Lba MC D c E

R A

, B

B

Page 23: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

無料で試すことができます•  WASはローカル環境の開発⽤途であれば

無償でご利⽤いただけます

•  WASdevから⼊⼿可能http://developer.ibm.com/wasdev/

•  アンケートに「Liberty情報希望」と書いていただければメールで情報をお送りします

Page 24: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

Page 25: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

MicroProfile

•  Microservices Architectureに最適化されたEnterprise Javaの仕様策定をめざすプロジェクト

•  現在のMicroProfile•  JAX-RS / JSONP / CDI

•  サンプルコード・プロジェクトも公開中

Page 26: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

WAS Liberty with Micro Profile for enterprise Java

ダウンロードサイズ35.2MバイトAA287086c:microProfile takakiyo$ ls -l !total 72128 !-rwxr-xr-x@ 1 takakiyo staff 36926674 12 3 15:09 wlp-microProfile1-16.0.0.3.zip* !

Page 27: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

IBM J9 VMのOpen Source化

Page 28: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

J9 VMとは•  IBMが独⾃に実装している

Java Virtual Machine

•  J2SE 1.3のころから提供

•  J2ME⽤のランタイムを起源としているため軽くて⾼速・モジュール化された実装

Page 29: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

IBM SDK for Java(過去)

Open JDKJava Class Library

HotSpot VM

Oracle JDKJava Class Library

HotSpot VM

IBM SDK for JavaJava Class Library

IBM J9

+ IBM Java Class LibraryOSS

Page 30: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

IBM SDK for Java(現在)

Open JDKJava Class Library

HotSpot VM

Oracle JDKJava Class Library

HotSpot VM

IBM SDK for JavaJava Class Library

IBM J9

+ IBM Java Class Library

OMR

EclipseOMR

OSS

OSS

Page 31: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

OMR

OMRって何の略?

•  アクロニム/イニシャリズムではない•  固有名詞だそうです

Page 32: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

OMR

•  ⾔語ランタイムを開発するツールキット

•  複数の⾔語実装で必要となる基本機能を提供•  メモリアロケータ/ガーベジコレクション•  スレッドライブラリ•  JITコンパイラ•  デバッグなどで使⽤するトレースエンジン

•  Eclipse OMRとしてOSS化•  OMRを使⽤してRubyの実装を公開中

Page 33: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

IBM SDK for Java(将来)

Open JDKJava Class Library

HotSpot VM

Oracle JDKJava Class Library

HotSpot VM

IBM SDK for JavaJava Class Library

IBM J9OMR

EclipseOMR

OSS

OSSOpen JDK

Java Class LibraryOpenJ9

OMR

+ IBM Java Class Library

OSS

Page 34: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

J9 VMは何が嬉しいのか

•  パフォーマンス•  トレース/問題判別情報•  VM間でクラス情報共有

Page 35: クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?

IBM Corporation 2016. All Rights Reserved.

#ccc_g5 #jjug_ccc

まとめ

MAKE JAVA GRATE AGAIN

•  IBMはこれからも新しいJavaの環境の提供を続けます

•  アプリのアーキテクチャー更新など皆様の協⼒も必要です

•  クラウド時代にもJavaの技術者が活躍できます