Developers Summit 2015 【19-E-4】 体感!「IBM...

53
IBM Bluemix www.bluemix.net 19-E-4体感! IBM Bluemix」が実現するリアルに迅速な開発 日本アイ・ビー・エム システムズ・エンジニアリング株式会社 松井 学 日本アイ・ビー・エム株式会社 木村 桂 1

Transcript of Developers Summit 2015 【19-E-4】 体感!「IBM...

IBM Bluemixwww.bluemix.net

【19-E-4】

体感!「IBM Bluemix」が実現するリアルに迅速な開発

日本アイ・ビー・エム システムズ・エンジニアリング株式会社

松井学

日本アイ・ビー・エム株式会社

木村桂

1

© 2015 IBM Corporation

自己紹介

松井 学 Manabu MATSUI

グリッド⇒ システム運用管理⇒ WebSphere ⇒ クラウド

昨年からはずっとBluemixな人

2

© 2015 IBM Corporation

ちょうど1年前のデブサミ

3

Bluemixについてご紹介

ほぼ同じくらいのタイミングで、海の向こうではオープンベータ開始を発表

© 2015 IBM Corporation

あれから1年

「クラウド上のアプリケーション開発を

加速するための製品・技術を

日々研究、開発しています」

はどこまで実現したの??

が本日のお話です。

4

© 2015 IBM Corporation

そもそも・・・

なぜアプリケーション開発を

加速させたいのか?

5

© 2015 IBM Corporation

いまどきのアプリケーションに求められるもの

6

•魅力的なライバルの登場

•バグの発覚

•登場インパクトの賞味期限

•ユーザー数の伸び悩み

ユーザー体験はあっという間に減衰する

出典:ヤフー㈱(当時)河合太郎様「Innovate2013」ご講演資料

© 2015 IBM Corporation

いまどきのアプリケーションに求められるもの

7

ユーザーからのフィードバックを反映し、再度リリースすることで鮮度と品質を向上させる

出典:ヤフー㈱(当時)河合太郎様「Innovate2013」ご講演資料

© 2015 IBM Corporation

いまどきのアプリケーションに求められるもの

8

サイクルを短縮化することにより、鮮度の高い状態を維持していくことが重要

出典:ヤフー㈱(当時)河合太郎様「Innovate2013」ご講演資料

© 2015 IBM Corporation

アプリケーション開発者の悩み

開発を加速させたくても、開発に専念できない 実行環境のセットアップに時間が掛かる

バックエンドサービスのセットアップ、アプリケーションとの連携設定に

手間と時間が掛かる

開発言語やツールは慣れたものを使いたい

独自仕様のインフラに縛られるのは不安だ

9

© 2015 IBM Corporation

IBM Bluemixが

そのお悩みを解決します!

10

© 2015 IBM Corporation

IBM Bluemixとは?

11

アプリケーションを、構築・管理・実行するための、SoftLayerを基盤とし、オープン・スタンダード(Cloud Foundry)を活用した、新しいクラウド・プラットフォーム(PaaS)です

スピーディーな環境構築

豊富な「API」と「サービス」の提供

DevOpsの実現

既存システムとのインテグレーション

堅牢なセキュリティ

柔軟な価格体系お支払い方法

© 2015 IBM Corporation12

Cloud Foundryとは

特定の環境に縛られないオープンなPaaS

Cloud Foundryはオープンソースとして

公開されている、特定のインフラや独自の

言語、フレームワークに依存しないオープンな

PaaSです。

他社のCloud FoundryベースのPaaS環

境はもちろん、ローカルに構築された環境に

対しても高いポータビリティがあります。

© 2015 IBM Corporation

スピーディーなアプリケーション実行環境の構築

13

ランタイム

アプリコード

アプリコード

開発者

Bluemixのビルドパック

ランタイムと呼ばれる実行環境を

わずか30秒 で準備

- 任意の開発言語を使用可能

© 2015 IBM Corporation14

スピーディーなアプリケーション実行環境の構築

ランタイム

アプリコード

アプリコード

開発者

サービス

サービス

サービスインスタンス

バインド

RDB

アプリケーションが必要とする機能(サービス)を

わずか30秒 で実行環境と連携(バインド)

- 好きなサービスをいつでも自由に組み合わせ可能

© 2015 IBM Corporation

豊富な「API」「サービス」の提供

15

80を超える高品質のサービスでクイックにアプリ開発1年で約2倍に!強力なパートナーシップ提携も!!

実行環境

データベース

モバイル

ビッグデータ

アナリティクス

Web & アプリケーション

Watson

IoT

インテグレーション

セキュリティ

開発支援ツール

© 2015 IBM Corporation

これらのサービスを

30日間のフリートライアルで

ご自由にご利用いただけますhttp://ibm.biz/BMtrial

16

© 2015 IBM Corporation17

既存のアプリは移行できるのかな?

Watsonおもしろそう。どんなサービスかな?

豊富なサービスのユースケースは?

実際に見てみましょう!

© 2015 IBM Corporation

自己紹介

木村 桂 Kei KIMURA

IBM ⇨ ウェブアプリのデベロッパー ⇨ IBM

スマホと Bluemix 大好き

18

半年前 今

© 2015 IBM Corporation

既存アプリの IBM Bluemix 対応

• 現在、オンプレミス環境や IaaS/VPS などのクラウド上で稼動しているアプリケーションを PaaS であるIBM Bluemix 上に移植する– 簡単なのか? 難しいのか?

– 何が違うのか?

– 何を気をつける必要があるのか?

© 2015 IBM Corporation

IBM Bluemix 環境への移植

DB

(DB2/MySQL)

Java

(WAS/Tomcat)

Java DB

war

war

IBM Bluemix

オンプレミス / IaaS

インフラを Bluemix に変えた時にアプリケーション(war)ファイルをどの程度変える必要があるか?

© 2015 IBM Corporation

(一般的に)移植に際して考慮する点

• アプリケーションの開発言語

• DBサーバーの互換性– (必要であれば)他のミドルウェアの互換性

• デプロイ方法の違い

• DBコネクション方法

• 運用時のログ

© 2015 IBM Corporation

アプリケーションサーバーの選択肢

→選ぶだけ

Java Node.js

PHP

Python

Ruby

Go

© 2015 IBM Corporation

データベースの選択肢

→選ぶだけDB2

MySQL

PostgreSQL

MongoDB

RedisCouchDB

Memcached

© 2015 IBM Corporation

豊富なサービス

Watson(人工知能) モバイル用サービス

© 2015 IBM Corporation

豊富なサービス

DevOps 開発 社内資産統合 ビッグデータ解析

© 2015 IBM Corporation

war / ear ファイルのままデプロイ可能

• Cloud Foundry の標準コマンドラインインターフェー

ス(cf)を利用してデプロイ– github(https://github.com/cloudfoundry/cli) から入手

– 使い方例• カレントディレクトリ以下をまとめて AppName にデプロイ

– $ cf push AppName

• App.war を AppName にデプロイ

– $ cf push AppName –p App.war

© 2015 IBM Corporation

運用ログ

ビルトイン(Java アプリケーションログ)

© 2015 IBM Corporation

移植に際して考慮する点

• アプリケーションの開発言語

• DBサーバーの互換性– (必要であれば)他のミドルウェアの互換性

• デプロイ方法の違い

• DBコネクション方法

• 運用時のログ

多くの選択肢

多くのサービス選択肢

特に変わらない

Bluemix 側に用意

→ここは意識する必要あり

多くのサービスを使って機能拡張も容易

© 2015 IBM Corporation

コネクション情報は環境変数から取得可能

• アプリケーションサーバーとサービスをバインドして接続する

• バインドしたサービスの接続情報は、アプリケーションサーバーの環境変数 VCAP_SERVICES から参照可能– IDとパスワードを環境変数から JSON フォーマットで取得できる

– よりセキュアな接続が実現できる

• コネクション情報の取得方法は、改良することでよりセキュアな接続が実現できるようになる

© 2015 IBM Corporation

環境変数の確認

© 2015 IBM Corporation

環境変数 VCAP_SERVICES の例

{

"sqldb": [

{

"name": "SQL Database-eg",

"label": "sqldb",

"plan": "sqldb_small",

"credentials": {

"port": 50000,

"db": "I_DBNAME",

"username": “USERNAME",

"host": “159.8.XXX.XXX",

"hostname": "159.8.XXX.XXX",

"jdbcurl": "jdbc:db2://159.8.XXX.XXX:50000/I_DBNAME",

"uri": "db2://USERNAME:[email protected]:50000/I_DBNAME",

"password": “PASSWORD"

}

}

]

}

これらの値を動的/静的に取り出してDB 接続を確立する

© 2015 IBM Corporation

ソースコードの具体例(Java + SQLDB)

32

String dbserver = “”, dbname = “”, dbuser = “”, dbpass = “”;int dbport = 0;String env = System.getenv( “VCAP_SERVICES” ); // 環境変数の有無で Bluemix 環境かどうかを識別するIf( env != null ){

// Bluemix環境JSONParser parser = new JSONParser();Object obj = parser.parse( env );JSONObject json = ( JSONObject )obj;JSONObject credentials =

( JSONObject )((JSONObject)((JSONArray)json.get(“sqldb”)).get(0)).get(“credentials”);dbserver = ( String )credentials.get( “hostname” );dbport = ( int )credentials.get( “port” );dbname = ( String )credentials.get( “name” );:

}else{// 非Bluemix環境dbserver = “db.xxx.net”;dbport = 50000;dbname = “db1”;:

}

Connection con = null;try{Class.forName( “com.ibm.db2.jcc.DB2Driver” );con = DriverManager.getConnection( “jdbc:db2://” + dbserver + “:” + dbport + “/” + dbname, dbuser, dbpass );

}catch( Exception e ){}::

© 2015 IBM Corporation

既存アプリの IBM Bluemix 対応

• 開発言語、アプリケーションサーバー、ミドルウェアなど、IBM Bluemix の選択肢から選べるものであれば簡単– war ファイルをそのままデプロイできます– オープンソース製品や他社製ミドルウェア、 IBM 製ミドルウェアなど、多くのミドルウェアサービスが用意されています

– データベースなどのサービスと接続する際の情報をセキュアに取得できます• 接続情報を環境変数から取得するように対応することで、Bluemix 環境とこれまでのオンプレミス / IaaS 環境とのシングルソース化も可能

© 2015 IBM Corporation

豊富なサービス

Watson(人工知能)がサービスとして使える!

現在、Watson の人工知能サービスが試せるのはIBM Bluemix だけ!!

© 2015 IBM Corporation

Final Jeopardy! and the Future of Watson(日本語字幕)

35

https://www.youtube.com/watch?v=Wq0XnBYC3nQ

確実性を確認しながら回答している?

© 2015 IBM Corporation

Watson Relations Extraction API

• 文章を解析して、単語間の関連性を調べる API

• 入力はテキストと、言語種類のみ(現在は英語/スペイン語の

み)

• 現在はベータ版(無料)

• IBM Bluemix の利用者であれば誰でも使える

© 2015 IBM Corporation

環境変数から接続情報の取得

“url” : “http://gateway.watsonplatform.net/****”

→API のエンドポイント

“username” : “****”

“password” : “*******”

→ID とパスワード

これらの情報はアプリサーバーの環境変数 VCAP_SERVICES から取得できる

© 2015 IBM Corporation

Watson API の実行

• 以下の URL にブラウザからアクセス– (url の値)? sid=ie-en-

news&rt=xml&txt=John+Smith+lives+in+New+York%2C+and+he+has+been+living+there+since+2001.• パラメータの意味

– sid=ie-en-news : 入力文章が英語であることを指定– rt=xml : 出力結果を XML 形式で– txt=John+Smith+lives+in+New+York%2C+and+he+has+been+living+there+since+20

01. : 解析文章は “John Smith lives in New York, and he has been living there since 2001.”

– Basic 認証を聞かれたら username 値と password 値を指定する

© 2015 IBM Corporation

出力結果(XML)

© 2015 IBM Corporation

トークンに分割

© 2015 IBM Corporation

単語の連結と用途を推測

インデックス 0 ~ 9(”John Smith”)は 99.5606% の確率で1人の人間(PERSON)である。

インデックス 20 ~ 27(”New York”)は 99.3534% の確率で場所(LOCATION)である。

インデックス 34 ~ 35(”he”)は 95.5652% の確率で代名詞(PRO)であり、かつ “John Smith” のことを示している。

インデックス 65 ~ 68(”2001”)は 82.0601% の確率で日付(DATE)である。

© 2015 IBM Corporation

言葉と言葉の関係を推測

“John Smith” と “he” は 64.5765% の確率で同じ人間(PERSON)である。

© 2015 IBM Corporation

各単語同士の関係を推測

“John Smith” と “New York” は 52.5653% の確率で「常設/住む」(residesIn)の関係がある

© 2015 IBM Corporation

以下のことが推測できた

- “John Smith” と “he” は同一人物の可能性が高い。- “John Smith” は “New York” という場所とかかわりのある人物である。- “John Smith” は 2001 年から “New York” に住んでいる。- 英語原文では「”he” が “there” に 2001 年から住んでいる」と言っている

「数値根拠を示した推測」を行っている。

単なる機械翻訳以上の翻訳が期待できる。皆さんならどんな使い方を思いつきますか?

© 2015 IBM Corporation

Watson の日本語対応

45

ソフトバンクテレコム様と協業で、日本語レッスン中。。

http://itpro.nikkeibp.co.jp/atcl/news/15/021000482

© 2015 IBM Corporation

他にもこんな使い方があります

たくさんある中から

一部の例をご紹介します

46

© 2015 IBM Corporation

Bluemixで始めるアナリティクス

統計解析実行環境

(R)

スプレッドシート

BIツール

統計解析統合開発環境

データロード

テーブル参照

クエリ発行データウェアハウス

(BLU Acceleration)

ブラウザ

Bluemixアプリケーション

(Liberty, Ruby Sinatra, …)

Rスクリプトの実行 Rスクリプトの開発

dashDB

データウェアハウジングおよび分析用のアジャイル・プラットフォームであるdashDBサービスの活用

47

© 2015 IBM Corporation

IBM IoT Foundation– クラウド上でMQTTサーバー機能を提供– デバイス/アプリケーションはMQTTプロトコルを使用し、IoT Foundationに接続

IBM Bluemix– ブラウザ・ベースのコーディネーション・ツールNode-REDを提供– Node-REDはIoTサービスを利用してIoT Foundationに接続

IBM Bluemix

MQTT

IBM IoTFoundation

MQTTサーバー

アプリケーション

アプリケーション

アプリケーション

IoTサービスMQTT

アプリケーションMQTT

MQTT

MQTT

MQTTクライアント

BluemixとIoT(Internet of Things)

以下の2種類によって、アプリケーション開発に注力したスピーディなIoTアプリの実現が可能

48

© 2015 IBM Corporation

オンプレミス環境の既存資産とも連携し、有効活用

49

MBaaS /

IoT Fundation

モバイルアプリ

Cloud

Integration

企業内ネットワーク

自社のオンプレミス環境

オンプレミス上のシステム Bluemix上の新しいアプリケーション

パブリック・ネットワーク (http / https, MQTT)

AP

I

プログラム・リポジトリ

プログラム・リポジトリ

Bluemix DevOps Service

SoEアプリの修正に合わせてリリース&デプロイ

IBM Bluemix社内開発ツール +α

従来型業務システム

センサー他

アジャイルな開発

フィードバックと継続的なデリバリー

組み立て型のアプローチ

それらを可能にするオープンな環境

© 2015 IBM Corporation

本日のまとめ

アプリケーション開発を加速するIBM Bluemix

– わずか30秒で実行環境を構築!

– 80を超える高品質のサービスでクイックにアプリ開発

IBM Bluemixは様々なシーンで活用可能– 既存アプリの移行・連携、Watson、Analytics、IoT、etc...

IBM Bluemixの進化はとまらない!

© 2015 IBM Corporation

IBM Bluemixをぜひお試しください

51

まずは、30日間フリートライアル!http://ibm.biz/BMtrial

IBM Bluemix日本語ホームページhttp://www.ibm.com/software/jp/info/bluemix/

Bluemix Developers Community

技術情報、サンプルアプリケーション 、Hints & Tipsなどが公開されています。https://developer.ibm.com/bluemix/

developerWorks日本語版 Bluemix

日本語の技術情報を公開しています。コミュニティーもありますので、情報交換の場としてご活用ください。http://www.ibm.com/developerworks/jp/bluemix/

Bluemix YouTube日本語動画集Webinarなどの動画を公開しています。http://ibm.biz/BdECJf

Final Jeopardy! And the Future of Watson(日本語字幕)Watson がクイズ番組出演した時の裏側を紹介した動画を日本語字幕付きで公開しています。https://www.youtube.com/watch?v=Wq0XnBYC3nQ

© 2015 IBM Corporation

© 2015 IBM Corporation53

ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。

本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。

記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。

IBM、IBM ロゴ、ibm.com、IBM Bluemixは、世界の多くの国で登録された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の米国およびその他の国における商標です。