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.
#devsumiE 	

【14-E-4】
見せます!
半歩先のクラウド型アプリケーション開発	

日本アイ・ビー・エム株式会社	
万仲 龍樹	

© 2014 IBM Corporation
自己紹介	
§ 万仲 龍樹 Tatsuki MANCHU
§ Java、Web技術をいくつかかじっています
– 社内ではWebSphere系の人
§ 最近はMobileやBRMSがメインです

2

© 2014 IBM Corporat...
本日の内容	
§ IBMのPaaSに対する取り組みの一つをご紹介します
§ IBMが取り組む動機
§ 利用しているテクノロジー・プロダクトの紹介
§ アプリケーション開発の流れ	

3

© 2014 IBM Corporation
目指していること	

適した言語で
好きなエディターを使って
さくっとポータブルなアプリケーションを
開発・実行できる環境を提供する
4

© 2014 IBM Corporation
Systems of Engagement	
§ 2011年にGeoffrey Mooreが提唱した概念	
–  Geoffrey Moore, “Systems of Engagement and the Future of Enterpr...
開発環境と実行環境のイメージ	
開発環境
Eclipse
Cloud Foundry
Plugin

Orion

好きな
エディター
/ ツール
Cloud Foundry
CLI

JazzHub

BlueMix

Cloud
6

© ...
IBM BlueMix	
§ Cloud FoundryベースのPaaS
– クイックなアプリケーション開発と公開
– 好きな言語でDBなどのサービスを選択して利用
– WebアプリやMobileのバックエンドサービス
– https://a...
用意されているアプリケーション	

8

© 2014 IBM Corporation
WebSphere Application Server (WAS)	
§ WAS Liberty Profile
– Java EE6 Web Profile準拠のアプリケーション・サーバー
§ 特徴
– 軽量
– 起動が早い
– シンプ...
Liberty Profileも試せます	
§ 開発者版と開発環境を無償ダウンロード可能
– Eclipse マーケットプレイス
– WASdevサイト
• https://www.ibmdw.net/wasdev/
§ EclipseはJ...
IBM SDK for Node.js	
§ Node.js (0.10.21) がベース
– 2013/12/16 公開
– サポートするプラットフォーム
• Linux on POWER Systems (32-bit)
• Linux ...
用意されているサービス	

12

© 2014 IBM Corporation
Elastic Caching	
§ WebSphere eXtreme Scale (WXS)
– Javaで稼働する Key – Value型インメモリ・データ・ストア
– 高速なパフォーマンス
– スケーラビリティー
WebSphere...
開発環境と実行環境のイメージ	
開発環境
Eclipse
Cloud Foundry
Plugin

Orion

好きな
エディター
/ ツール
Cloud Foundry
CLI

JazzHub

BlueMix

Cloud
14

©...
JazzHub	
§ プロジェクト管理・ソースコード管理・開発ツールのSaaS
– Rational Team Concert
– GitHubと連携
– Eclipse OrionによるWeb上のIDE
– https://hub.jazz...
JazzHubからBlueMixへ	
§ 直接アプリケーションをBlueMixへPush	

Launch

16

© 2014 IBM Corporation
BlueMixへPush	

17

© 2014 IBM Corporation
BlueMix UI(Webツール)で確認	

Launch

18

© 2014 IBM Corporation
開発環境と実行環境のイメージ	
開発環境
Eclipse
Cloud Foundry
Plugin

Orion

好きな
エディター
/ ツール
Cloud Foundry
CLI

JazzHub

BlueMix

Cloud
19

©...
開発の流れを確認	
§ 単純なToDoリストを例に
– WAS Liberty Profileで動かす
– Mongo DBを使用する

POST	

HTML	

JAX-RS	

MongoDB	

GET	

20

© 2014 IB...
まず準備	
§ MongoDBのサービスを追加
– NAMEを使うので覚えておく mongodb-1v1gb	

21

© 2014 IBM Corporation
Cloud FoundryのEclipse Plugin	
§ ちゃんと接続できます	

22

© 2014 IBM Corporation
アプリのデプロイ	
§ アプリをサーバーに追加	

23

© 2014 IBM Corporation
アプリのデプロイ	
§ ホスト名やメモリーの設定	

24

© 2014 IBM Corporation
アプリのデプロイ	
§ MongoDBのサービスをBind	

25

© 2014 IBM Corporation
アプリケーション開発時のポイント	
§ アプリケーションのデプロイ方法
§ MongoDBへの接続情報	

26

© 2014 IBM Corporation
アプリのデプロイ:その1	
§ WARファイルをPushする
– server.xmlは自動的に設定される
– シンプルなアプリならこれで!
WARファイル	

$cf push test.war	

Push	

BlueMix	

27
...
自動生成されるserver.xml	
§ サーバーの構成ファイルは自動生成	
<server description="new server">
<!-- Enable features -->
<featureManager>
<featu...
アプリのデプロイ:その2	
§ アプリと一緒に設定ファイルをPushする
– いろいろなFeatureを追加するようなカスタマイズ済み構成
– 例:
zipファイル	
  JAX-WSを使いたいケース	
WARファイル	

$cf push ...
MongoDBへの接続情報	
§ 2通りの取得方法
1.環境変数からCredentialsを取得
2.リソース・インジェクションを使う	
– アプリケーションのデプロイ時にリソース登録	

30

© 2014 IBM Corporation
1.環境変数	
§ System.getenv(”VCAP_SERVICES”)で取得
– Cloud Foundryのvcap-javaなどを使うほうが・・・

31

© 2014 IBM Corporation
2.自動で登録された情報	
<server description="new server">
<!-- Enable features -->
<featureManager>
<feature>webProfile-6.0</feature...
アプリでの指定の仕方	
§ @Resource で自動生成されたJNDI名を使用する
§ 命名規則は mongo/<service_name>
– 今回なら  mongodb/mongodb-1v1gb

33

© 2014 IBM Co...
本日のまとめ	
§ Quickなアプリケーションの開発・実行を支えるCloud環境を提
供しようとしています
§ Cloud FoundryベースのPaaSであるBlueMix
§ アプリケーション開発を支援するSaaSであるJazzHu...
いろいろお試しできます	
§ IBM BlueMix
– https://ace.ng.bluemix.net/
– www.ibm.com/software/ebusiness/jstart/bluemix/
infocenter.html...
36

© 2014 IBM Corporation
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目
的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものでは...
Upcoming SlideShare
Loading in …5
×

見せます! 半歩先のクラウド型アプリケーション開発

2,940 views

Published on

Developers Summit 14-E-4の資料です。

Published in: Technology
  • Be the first to comment

見せます! 半歩先のクラウド型アプリケーション開発

  1. 1. #devsumiE 【14-E-4】 見せます! 半歩先のクラウド型アプリケーション開発 日本アイ・ビー・エム株式会社 万仲 龍樹 © 2014 IBM Corporation
  2. 2. 自己紹介 § 万仲 龍樹 Tatsuki MANCHU § Java、Web技術をいくつかかじっています – 社内ではWebSphere系の人 § 最近はMobileやBRMSがメインです 2 © 2014 IBM Corporation
  3. 3. 本日の内容 § IBMのPaaSに対する取り組みの一つをご紹介します § IBMが取り組む動機 § 利用しているテクノロジー・プロダクトの紹介 § アプリケーション開発の流れ 3 © 2014 IBM Corporation
  4. 4. 目指していること 適した言語で 好きなエディターを使って さくっとポータブルなアプリケーションを 開発・実行できる環境を提供する 4 © 2014 IBM Corporation
  5. 5. Systems of Engagement § 2011年にGeoffrey Mooreが提唱した概念 –  Geoffrey Moore, “Systems of Engagement and the Future of Enterprise IT: A Sea Change in Enterprise IT”, AIIM (2011) § 様々なものがリアルタイムに相互連携し、新しい価値を産み出 すシステム –  時刻や位置情報 –  SNS –  センサー –  オープンデータ § 重要な技術要素:  Cloud, Analytics, Mobile, Social 人 サービス モノ 価値 企業 社会 –  ソーシャルの世界に流れ、蓄積された情報を活用 –  Analyticsにより、価値を見つけ提案する –  モバイル/ウェアラブル/車載機の活用 –  ニーズの急激な変化に柔軟に対応できるクラウド基盤 5 © 2014 IBM Corporation
  6. 6. 開発環境と実行環境のイメージ 開発環境 Eclipse Cloud Foundry Plugin Orion 好きな エディター / ツール Cloud Foundry CLI JazzHub BlueMix Cloud 6 © 2014 IBM Corporation
  7. 7. IBM BlueMix § Cloud FoundryベースのPaaS – クイックなアプリケーション開発と公開 – 好きな言語でDBなどのサービスを選択して利用 – WebアプリやMobileのバックエンドサービス – https://ace.ng.bluemix.net/ 7 © 2014 IBM Corporation
  8. 8. 用意されているアプリケーション 8 © 2014 IBM Corporation
  9. 9. WebSphere Application Server (WAS) § WAS Liberty Profile – Java EE6 Web Profile準拠のアプリケーション・サーバー § 特徴 – 軽量 – 起動が早い – シンプル・動的な構成 • 基本構成は server.xml 1枚のみ § Buildpackがあります! – IBM-websphere-liberty-buildpack – https://github.com/cloudfoundry/ibm-websphere-libertybuildpack 9 © 2014 IBM Corporation
  10. 10. Liberty Profileも試せます § 開発者版と開発環境を無償ダウンロード可能 – Eclipse マーケットプレイス – WASdevサイト • https://www.ibmdw.net/wasdev/ § EclipseはJava EE Developerを使用 – 4.3.1(Kepler)や4.2.2(Juno) + Eclipse 10 + Liberty Profile for Developer WebSphere Developer Tools © 2014 IBM Corporation
  11. 11. IBM SDK for Node.js § Node.js (0.10.21) がベース – 2013/12/16 公開 – サポートするプラットフォーム • Linux on POWER Systems (32-bit) • Linux for System x (32-bit, 64-bit) • Windows (32-bit, 64-bit) • Mac OS X (32-bit, 64-bit) § http://www.ibm.com/developerworks/web/nodesdk/ 11 © 2014 IBM Corporation
  12. 12. 用意されているサービス 12 © 2014 IBM Corporation
  13. 13. Elastic Caching § WebSphere eXtreme Scale (WXS) – Javaで稼働する Key – Value型インメモリ・データ・ストア – 高速なパフォーマンス – スケーラビリティー WebSphere § キャッシュ eXtreme § HTTPセッションの保持 Scale アプリケーション キャッシュ サーバー 負荷分散装置 データベース 13 © 2014 IBM Corporation
  14. 14. 開発環境と実行環境のイメージ 開発環境 Eclipse Cloud Foundry Plugin Orion 好きな エディター / ツール Cloud Foundry CLI JazzHub BlueMix Cloud 14 © 2014 IBM Corporation
  15. 15. JazzHub § プロジェクト管理・ソースコード管理・開発ツールのSaaS – Rational Team Concert – GitHubと連携 – Eclipse OrionによるWeb上のIDE – https://hub.jazz.net 15 © 2014 IBM Corporation
  16. 16. JazzHubからBlueMixへ § 直接アプリケーションをBlueMixへPush Launch 16 © 2014 IBM Corporation
  17. 17. BlueMixへPush 17 © 2014 IBM Corporation
  18. 18. BlueMix UI(Webツール)で確認 Launch 18 © 2014 IBM Corporation
  19. 19. 開発環境と実行環境のイメージ 開発環境 Eclipse Cloud Foundry Plugin Orion 好きな エディター / ツール Cloud Foundry CLI JazzHub BlueMix Cloud 19 © 2014 IBM Corporation
  20. 20. 開発の流れを確認 § 単純なToDoリストを例に – WAS Liberty Profileで動かす – Mongo DBを使用する POST HTML JAX-RS MongoDB GET 20 © 2014 IBM Corporation
  21. 21. まず準備 § MongoDBのサービスを追加 – NAMEを使うので覚えておく mongodb-1v1gb 21 © 2014 IBM Corporation
  22. 22. Cloud FoundryのEclipse Plugin § ちゃんと接続できます 22 © 2014 IBM Corporation
  23. 23. アプリのデプロイ § アプリをサーバーに追加 23 © 2014 IBM Corporation
  24. 24. アプリのデプロイ § ホスト名やメモリーの設定 24 © 2014 IBM Corporation
  25. 25. アプリのデプロイ § MongoDBのサービスをBind 25 © 2014 IBM Corporation
  26. 26. アプリケーション開発時のポイント § アプリケーションのデプロイ方法 § MongoDBへの接続情報 26 © 2014 IBM Corporation
  27. 27. アプリのデプロイ:その1 § WARファイルをPushする – server.xmlは自動的に設定される – シンプルなアプリならこれで! WARファイル $cf push test.war Push BlueMix 27 © 2014 IBM Corporation
  28. 28. 自動生成されるserver.xml § サーバーの構成ファイルは自動生成 <server description="new server"> <!-- Enable features --> <featureManager> <feature>webProfile-6.0</feature> <feature>jaxrs-1.1</feature> Web Profile 6.0 JAX-RS 1.1 <feature>icap:appstate-1.0</feature> </featureManager> <httpEndpoint host="*" httpPort="${port}" id="defaultHttpEndpoint"/> <icap_appstate appName="myapp" markerPath="${home}/.liberty.state"/> <application context-root="/" location="../../../../../" name="myapp" type="war"/> <logging logDirectory="../../../../../logs"/> <include location="runtime-vars.xml"/> <webContainer extractHostHeaderPort="true" trustHostHeaderPort="true"/> <httpDispatcher enableWelcomePage="false"/> </server> 28 © 2014 IBM Corporation
  29. 29. アプリのデプロイ:その2 § アプリと一緒に設定ファイルをPushする – いろいろなFeatureを追加するようなカスタマイズ済み構成 – 例: zipファイル   JAX-WSを使いたいケース WARファイル $cf push –path test.zip 詳しくはBlueMixのDocumentで・・・ 29 Push BlueMix © 2014 IBM Corporation
  30. 30. MongoDBへの接続情報 § 2通りの取得方法 1.環境変数からCredentialsを取得 2.リソース・インジェクションを使う – アプリケーションのデプロイ時にリソース登録 30 © 2014 IBM Corporation
  31. 31. 1.環境変数 § System.getenv(”VCAP_SERVICES”)で取得 – Cloud Foundryのvcap-javaなどを使うほうが・・・ 31 © 2014 IBM Corporation
  32. 32. 2.自動で登録された情報 <server description="new server"> <!-- Enable features --> <featureManager> <feature>webProfile-6.0</feature> <feature>jaxrs-1.1</feature> <feature>icap:appstate-1.0</feature> <feature>mongodb-2.0</feature></featureManager> •  アプリにMongoDBドライバーを関連づけ •  MongoDBをリソースとして登録 (JNDI名を自動的に付与) <httpEndpoint host="*" httpPort="${port}" id="defaultHttpEndpoint"/> <icap_appstate appName="myapp" markerPath="${home}/.liberty.state"/> <application context-root="/" location="../../../../../" name="myapp" type="war"> <classloader commonLibraryRef='mongo-library'/></application> ・・・ <mongo id='mongo-mongodb-1v1gb' libraryRef='mongo-library' password='${cloud.services.mongodb-1v1gb.connection.password}' user='${cloud.services.mongodb-1v1gb.connection.username}'> <hostNames>${cloud.services.mongodb-1v1gb.connection.host}</hostNames> <ports>${cloud.services.mongodb-1v1gb.connection.port}</ports></mongo> <mongoDB databaseName='${cloud.services.mongodb-1v1gb.connection.db}' id='mongo-mongodb-1v1gb-db' jndiName='mongo/mongodb-1v1gb' mongoRef='mongo-mongodb-1v1gb'/> <library id='mongo-library'><fileset dir='${server.config.dir}/lib' id='mongo-fileset' includes='mongo-2.10.1.jar'/></library> </server> 32 © 2014 IBM Corporation
  33. 33. アプリでの指定の仕方 § @Resource で自動生成されたJNDI名を使用する § 命名規則は mongo/<service_name> – 今回なら  mongodb/mongodb-1v1gb 33 © 2014 IBM Corporation
  34. 34. 本日のまとめ § Quickなアプリケーションの開発・実行を支えるCloud環境を提 供しようとしています § Cloud FoundryベースのPaaSであるBlueMix § アプリケーション開発を支援するSaaSであるJazzHub 34 © 2014 IBM Corporation
  35. 35. いろいろお試しできます § IBM BlueMix – https://ace.ng.bluemix.net/ – www.ibm.com/software/ebusiness/jstart/bluemix/ infocenter.html § JazzHub – https://hub.jazz.net § WASDev – https://www.ibmdw.net/wasdev/ § IBM SDK for Node.js – http://www.ibm.com/developerworks/web/nodesdk/ 35 © 2014 IBM Corporation
  36. 36. 36 © 2014 IBM Corporation
  37. 37. ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目 的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありませ ん。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかな る保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責 任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすこ とを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むもので もありません。 本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するも のではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつで も変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含ま れている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したもので も、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいて います。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレー ジ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと 同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたもの です。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、 WebSphereは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。 現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの米国およびその他の国における登録商標または商標です。 IT Infrastructure Libraryは英国Office of Government Commerceの一部であるthe Central Computer and Telecommunications Agencyの登録商標です。 インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, およびPentium は Intel Corporationまたは子会社の米国およびその他の国における商標または登録商標です。 Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。 Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。 ITILは英国The Minister for the Cabinet Officeの登録商標および共同体登録商標であって、米国特許商標庁にて登録されています。 UNIXはThe Open Groupの米国およびその他の国における登録商標です。 Cell Broadband Engineは、Sony Computer Entertainment, Inc.の米国およびその他の国における商標であり、同社の許諾を受けて使用しています。 JavaおよびすべてのJava関連の商標およびロゴは Oracleやその関連会社の米国およびその他の国における商標または登録商標です。 Linear Tape-Open, LTO, LTOロゴ, UltriumおよびUltriumロゴは、HP, IBM Corp.およびQuantumの米国およびその他の国における商標です。 37 © 2014 IBM Corporation

×