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

37
© 2014 IBM Corporation 14-E-4見せます! 半歩先のクラウド型アプリケーション開発 #devsumiE 日本アイ・ビー・エム株式会社 万仲 龍樹

Upload: tatsuki-manchu

Post on 28-May-2015

2.179 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

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

© 2014 IBM Corporation

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

#devsumiE

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

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

© 2014 IBM Corporation

自己紹介

§ 万仲 龍樹 Tatsuki MANCHU § Java、Web技術をいくつかかじっています

– 社内ではWebSphere系の人

§ 最近はMobileやBRMSがメインです

2

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

© 2014 IBM Corporation

本日の内容

§ IBMのPaaSに対する取り組みの一つをご紹介します

§ IBMが取り組む動機 § 利用しているテクノロジー・プロダクトの紹介 § アプリケーション開発の流れ

3

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

© 2014 IBM Corporation

目指していること

適した言語で

好きなエディターを使って

さくっとポータブルなアプリケーションを

開発・実行できる環境を提供する

4

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

© 2014 IBM Corporation

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

価値

企業 社会

モノ サービス

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

© 2014 IBM Corporation

開発環境と実行環境のイメージ

6

開発環境

Orion

好きな エディター / ツール

Cloud Foundry CLI

Cloud

JazzHub BlueMix

Eclipse

Cloud Foundry Plugin

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

© 2014 IBM Corporation

IBM BlueMix

§ Cloud FoundryベースのPaaS – クイックなアプリケーション開発と公開 – 好きな言語でDBなどのサービスを選択して利用 – WebアプリやMobileのバックエンドサービス – https://ace.ng.bluemix.net/

7

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

© 2014 IBM Corporation

用意されているアプリケーション

8

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

© 2014 IBM Corporation

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-liberty-

buildpack

9

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

© 2014 IBM Corporation

Liberty Profileも試せます

§ 開発者版と開発環境を無償ダウンロード可能 – Eclipse マーケットプレイス – WASdevサイト

• https://www.ibmdw.net/wasdev/ § EclipseはJava EE Developerを使用

– 4.3.1(Kepler)や4.2.2(Juno)

10

Eclipse Liberty Profile for Developer

WebSphere Developer Tools

+ +

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

© 2014 IBM Corporation

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

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

© 2014 IBM Corporation

用意されているサービス

12

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

© 2014 IBM Corporation

Elastic Caching

§ WebSphere eXtreme Scale (WXS) – Javaで稼働する Key – Value型インメモリ・データ・ストア – 高速なパフォーマンス – スケーラビリティー

§ キャッシュ § HTTPセッションの保持

13

負荷分散装置

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

WebSphere eXtreme

Scale

データベース

キャッシュ

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

© 2014 IBM Corporation

開発環境と実行環境のイメージ

14

開発環境

Orion

好きな エディター / ツール

Cloud Foundry CLI

Cloud

JazzHub BlueMix

Eclipse

Cloud Foundry Plugin

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

© 2014 IBM Corporation

JazzHub

§ プロジェクト管理・ソースコード管理・開発ツールのSaaS – Rational Team Concert – GitHubと連携 – Eclipse OrionによるWeb上のIDE – https://hub.jazz.net

15

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

© 2014 IBM Corporation

JazzHubからBlueMixへ

§ 直接アプリケーションをBlueMixへPush

16

Launch

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

© 2014 IBM Corporation

BlueMixへPush

17

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

© 2014 IBM Corporation

BlueMix UI(Webツール)で確認

18

Launch

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

© 2014 IBM Corporation

開発環境と実行環境のイメージ

19

開発環境

Orion

好きな エディター / ツール

Cloud Foundry CLI

Cloud

JazzHub BlueMix

Eclipse

Cloud Foundry Plugin

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

© 2014 IBM Corporation

開発の流れを確認

§ 単純なToDoリストを例に – WAS Liberty Profileで動かす – Mongo DBを使用する

20

HTML MongoDB JAX-RS

POST

GET

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

© 2014 IBM Corporation

まず準備

§ MongoDBのサービスを追加 – NAMEを使うので覚えておく mongodb-1v1gb

21

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

© 2014 IBM Corporation

Cloud FoundryのEclipse Plugin

§ ちゃんと接続できます

22

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

© 2014 IBM Corporation

アプリのデプロイ

§ アプリをサーバーに追加

23

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

© 2014 IBM Corporation

アプリのデプロイ

§ ホスト名やメモリーの設定

24

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

© 2014 IBM Corporation

アプリのデプロイ

§ MongoDBのサービスをBind

25

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

© 2014 IBM Corporation

アプリケーション開発時のポイント

§ アプリケーションのデプロイ方法

§ MongoDBへの接続情報

26

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

© 2014 IBM Corporation

アプリのデプロイ:その1

§ WARファイルをPushする – server.xmlは自動的に設定される – シンプルなアプリならこれで!

27

BlueMix

WARファイル

Push $cf push test.war

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

© 2014 IBM Corporation

自動生成されるserver.xml

§ サーバーの構成ファイルは自動生成

28

<server description="new server">

<!-- Enable features --> <featureManager>

<feature>webProfile-6.0</feature> <feature>jaxrs-1.1</feature>

<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>

Web Profile 6.0 JAX-RS 1.1

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

© 2014 IBM Corporation

アプリのデプロイ:その2

§ アプリと一緒に設定ファイルをPushする – いろいろなFeatureを追加するようなカスタマイズ済み構成 – 例:   JAX-WSを使いたいケース

29

WARファイル

BlueMix

Push

zipファイル

$cf push –path test.zip

詳しくはBlueMixのDocumentで・・・

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

© 2014 IBM Corporation

MongoDBへの接続情報

§ 2通りの取得方法 1.環境変数からCredentialsを取得 2.リソース・インジェクションを使う

– アプリケーションのデプロイ時にリソース登録

30

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

© 2014 IBM Corporation

1.環境変数

§ System.getenv(”VCAP_SERVICES”)で取得 – Cloud Foundryのvcap-javaなどを使うほうが・・・

31

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

© 2014 IBM Corporation

2.自動で登録された情報

32

<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>

<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>

•  アプリにMongoDBドライバーを関連づけ •  MongoDBをリソースとして登録

(JNDI名を自動的に付与)

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

© 2014 IBM Corporation

アプリでの指定の仕方

§ @Resource で自動生成されたJNDI名を使用する § 命名規則は mongo/<service_name>

– 今回なら  mongodb/mongodb-1v1gb

33

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

© 2014 IBM Corporation

本日のまとめ

§ Quickなアプリケーションの開発・実行を支えるCloud環境を提供しようとしています

§ Cloud FoundryベースのPaaSであるBlueMix

§ アプリケーション開発を支援するSaaSであるJazzHub

34

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

© 2014 IBM Corporation

いろいろお試しできます

§ 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

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

© 2014 IBM Corporation 36

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

© 2014 IBM Corporation 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の米国およびその他の国における商標です。