Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

435 views

Published on

日本Javaユーザー会のカンファレンスJJUG CCC 2016 FallのIBMスポンサーセッションで発表した資料です。 #JJUG_CCC

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

  1. 1. IBM Corporation 2016 All Rights Reserved. #ccc_g5 #jjug_ccc クラウド、クラウドというけれど Javaのシステムにとって クラウドってメリットあるの? ⽇本アイ・ビー・エム株式会社 ⽥中孝清
  2. 2. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc ⾃⼰紹介 ⽥中 孝清 •  ⽇本IBM クラウドソフトウェア事業部 アプリケーション・プラットフォーム テクニカルセールス •  2000年からWebSphereを売ってます •  JJUG幹事 •  趣味 •  登⼭ •  Enlightened
  3. 3. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc 10⽉15⽇ JJUG JavaOne報告会 鈴⽊雄介 JJUG会⻑「JavaOne 2016総括」 •  IBM 「MAKE JAVA GRATE AGEIN」 •  クラウド「使ってて当たり前」 •  Agile「もはや議論すらない。常識の範疇」
  4. 4. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc ⽇本のJavaの世界で クラウドは普及しているか ↓ 普及している部分と していない部分がある
  5. 5. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc ⼆つの⽂化に分かれる⽇本のIT企業 リスクの最⼩化 を優先 ミッション・クリティカルな アプリケーションの管理、運⽤ マラソンランナー q  サービスレベル重視 q  ウォーターフォール開発 q  ⻑期に渡るシステム構築 イノベーションの スピードを優先 成⻑機会のための 探索、開発、デプロイ スプリンター q  スピード開発重視 q  試⾏錯誤、継続的デプロイ q  早期のシステム構築/改修 Web系企業 SI系企業
  6. 6. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc クラウド時代のプログラミング⾔語 Web系企業でよく使われる⾔語 SI系企業で よく使われる⾔語
  7. 7. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc クラウドのメリットとは •  構築・運⽤コストの削減 •  即応性 •  Javaシステムにとっても メリットはもちろんある しかし •  クラウドのメリットを享受するためには システムがクラウドに対応しなければならない •  クラウド・レディー / Cloud Ready •  クラウド・ネイティブ / Cloud Native
  8. 8. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc Top 9 rules for cloud applications 1.  Don't code your application directly to a specific topology 2.  Don't assume the local file system is permanent 3.  Don't keep session state in your application 4.  Don't log to the file system 5.  Don't assume any specific infrastructure dependency 6.  Don't use infrastructure APIs from within your application 7.  Don't use obscure protocols 8.  Don't rely on OS-specific features 9.  Don't manually install your application h"p://ibm.biz/nine-rules Kyle Brown IBM DE CTO for Cloud architecture
  9. 9. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc Java EEシステムのクラウド化が困難な理由 W e b サ | バ | Java EE アプリ ケーション Java EE アプリケーション サーバー n  トランザクション処理 n  DB処理 n  セッション管理 n  メモリー管理 n  セキュリティー n  その他 Java EE アプリ ケーション Java EE アプリ ケーション バックエンドシステム ◆ メニュー ◆ 案内 ◆ メール Webクライアント 1.アプリケーション・サーバーが クラウドに適応していない 2.アプリケーションを クラウド対応にするのが難しい 3.バックエンドシステムは 社外クラウドに 出すことができない
  10. 10. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc 1.アプリケーションサーバー •  アプリケーションサーバーの導⼊が⼤変 •  サイズが⼤きい(ディスク・メモリフットプリント) •  インストーラーの実⾏が必要 •  システムの可搬性がない •  環境にあわせた構成が必要 •  ⾃動化ツールとの相性がよくない •  アプリケーションの「デプロイ」が必要
  11. 11. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc クラウド時代にもとめられる Java EEアプリケーションサーバーとは •  容易な導⼊ •  ⼩さいメモリ・フットプリント •  構成の可搬性 •  管理の⾃動化
  12. 12. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc 2.アプリケーションのクラウド対応 マイクロサービスアーキテクチャー(MSA) Microservices Architecture
  13. 13. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc 既存のアプリケーションをMSA化するには •  「既存システムを分割」することよりも 「アプリケーションの機能を外部から呼べる」 ようにすることを重要視する 例: •  アプリケーションの機能をAPIで提供する •  バックエンドへのアクセスを JDBC(SQL)でなくRESTでよびだす API連携 分割>
  14. 14. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc 3.バックエンドの対応 ハイブリッドクラウドによる オンプレミスとクラウドの連携 •  既存システムのデータ・機能をAPIで提供する •  ただしAPI管理セキュリティは重要 Systems of Record Integration bus CRMERP Transactions Systems of Insight Systems of Engagement Social, Mobile, IoT Hybrid Cloud 既存環境と クラウド環境の連携基盤
  15. 15. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc Java EEがクラウド対応するには •  クラウド対応のアプリケーションサーバー •  API連携に対応したアプリケーション •  ハイブリッドクラウドによる バックエンドシステムの公開 これでJava技術者も  まだまだ戦えますクラウド時代に なっても
  16. 16. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc IBMの取り組み •  クラウドに対応したJava EEランタイム WebSphere Libertyの提供 •  MicroProfileへの取り組み •  IBM J9 VMのOSS化
  17. 17. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc WebSphere Application Serverの ⼆つのランタイム バージョン 提供されるWASランタイム 2011年7⽉ WAS V8.0 WAS 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 Liberty Java EE7 完全対応 WAS traditional Java EE7 完全対応 2012年7⽉ WAS V8.5 2013年6⽉ WAS V8.5.5 2015年6⽉ WAS V8.5.5.6 2016年6⽉ WAS V9.0
  18. 18. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc ⽤途に応じた⼆つのランタイム •  過去のバージョンとの 互換性を重視した WAS traditional •  クラウド⾃体に対応した 新しいランタイム WAS Liberty
  19. 19. 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を⾃動⽣成
  20. 20. 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だけを選択して 導⼊・起動
  21. 21. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc WAS Libertyで提供されているFeature 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 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.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
  22. 22. 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
  23. 23. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc 無料で試すことができます •  WASはローカル環境の開発⽤途であれば 無償でご利⽤いただけます •  WASdevから⼊⼿可能 http://developer.ibm.com/wasdev/ •  アンケートに「Liberty情報希望」と 書いていただければ メールで情報をお送りします
  24. 24. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc
  25. 25. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc MicroProfile •  Microservices Architectureに最適化された Enterprise Javaの仕様策定をめざすプロジェクト •  現在のMicroProfile •  JAX-RS / JSONP / CDI •  サンプルコード・プロジェクトも公開中
  26. 26. 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*!
  27. 27. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc IBM J9 VMのOpen Source化
  28. 28. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc J9 VMとは •  IBMが独⾃に実装している Java Virtual Machine •  J2SE 1.3のころから提供 •  J2ME⽤のランタイムを起源としているため 軽くて⾼速・モジュール化された実装
  29. 29. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc IBM SDK for Java(過去) Open JDK Java Class Library HotSpot VM Oracle JDK Java Class Library HotSpot VM IBM SDK for Java Java Class Library IBM J9 + IBM Java Class Library OSS
  30. 30. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc IBM SDK for Java(現在) Open JDK Java Class Library HotSpot VM Oracle JDK Java Class Library HotSpot VM IBM SDK for Java Java Class Library IBM J9 + IBM Java Class Library OMR Eclipse OMR OSS OSS
  31. 31. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc OMR OMRって何の略? •  アクロニム/イニシャリズムではない •  固有名詞だそうです
  32. 32. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc OMR •  ⾔語ランタイムを開発するツールキット •  複数の⾔語実装で必要となる基本機能を提供 •  メモリアロケータ/ガーベジコレクション •  スレッドライブラリ •  JITコンパイラ •  デバッグなどで使⽤するトレースエンジン •  Eclipse OMRとしてOSS化 •  OMRを使⽤してRubyの実装を公開中
  33. 33. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc IBM SDK for Java(将来) Open JDK Java Class Library HotSpot VM Oracle JDK Java Class Library HotSpot VM IBM SDK for Java Java Class Library IBM J9 OMR Eclipse OMR OSS OSS Open JDK Java Class Library OpenJ9 OMR + IBM Java Class Library OSS
  34. 34. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc J9 VMは何が嬉しいのか •  パフォーマンス •  トレース/問題判別情報 •  VM間でクラス情報共有
  35. 35. IBM Corporation 2016. All Rights Reserved. #ccc_g5 #jjug_ccc まとめ MAKE JAVA GRATE AGAIN •  IBMはこれからも 新しいJavaの環境の提供を続けます •  アプリのアーキテクチャー更新など 皆様の協⼒も必要です •  クラウド時代にも Javaの技術者が活躍できます

×