Bluemix

IBM Bluemix
www.bluemix.net
IBM Bluemix テクニカル・セミナー
API Connect / API Management
2016年07月26日
日本アイ・ビー・エム 株式会社
クラウド・ソフトウェア事業部
Bluemix & XaaS テクニカル・セールス
伊藤 拓也
IBM Bluemix
www.bluemix.net
Disclaimer
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の
目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもあ
りません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわら
ずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、
IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明
を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような
結果を生むものでもありません。
本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示す
るものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもって
いつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資
料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意
図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と
予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入
出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここ
で述べられているものと同様の結果を得られると確約するものではありません。
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたも
のです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。
IBM、IBM ロゴ、ibm.com、Bluemix、IBM MobileFirst は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。
他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。
現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
Windowsは Microsoft Corporationの米国およびその他の国における商標です。
JavaおよびすべてのJava関連の商標は Oracleやその関連会社の米国およびその他の国における商標または登録商標です。
2
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
アジェンダ
API とは?
API による新しいエコシステム
Bluemix と API
API Connectとは
料金プラン
導入体系と機能の違い
API Connectが管理するAPIのライフサイクル
(デモ)API Connect で API を作る
事例
サンプル構成
資料
3
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
API とは?
Application Programming Interface
 プログラマが何らかの機能を実行できるように公開された関数
 何かをインプットして、処理して、目的のアウトプットが得られる
データをインプットして、保存して、保存結果を得る
音声をインプットして、テキストに変換して、変換結果を得る

:
 上記の処理の中身の部分は公開する必要がない
機密保持
バージョン管理/メンテナンス性
API
 最近の主流は REST API
HTTP ベース
言語非依存
API を「第三者に使ってもらう」という考え方
 自分が持っているデータやシステムを、API として第三者に公開する
使ってもらうことで利用料金を得る
今までゼロから作る必要があったものが簡単に使えるようになる
新しいアイデアの想起、開発部門のアウトソーシング、・・・
4
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
CRUD
例えば「商品(item)」をデータベース化する場合
列名
目的
属性
ID
ユニークID
数字/一意
NAME
名前
文字列
CATEGORY_ID
カテゴリID
数字
CODE
バーコード文字列
文字列
PRICE
価格
数字
URL
画像URL
文字列
削除
新規作成
読み込み
Create
Read
更新
Update
Delete
一連の処理をまとめて “CRUD” と呼ぶ
5
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
CRUD をルール化
CRUD 処理と HTTP リクエストを対応させてルール化
CRUD
目的
HTTP リクエスト
Create
新規作成
POST /item
Read
一覧取得
GET /item(s)
1データ取得
GET /item/{id}
Update
データ更新
PUT /item/{id}
Delete
削除
DELETE /item/{id}
削除
新規作成
読み込み
Create
Read
更新
Update
Delete
REST(Representational State Transfer) API
特徴:言語に依存しない
6
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
データ API によるエコシステム
他サイトで商品を紹介
商品
データ
比較サイト
社内業務アプリで利用
商品データの参照機能だけ API にして公開
呼び出し回数に制限をかけて提供
7
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
銀行で例える API エコノミー
API で銀行の機能(サービス)やデータを提供することで
新しいビジネスを生み出すのが APIエコノミー
B2B
パートナー
¥
銀行
決
済
残
高
照
会
8
例:
ウェブサイト
経費管理
アプリに
為替レート
をAPIで提供
し、月料金
をいただく
為替
レート
参照
振
込
などなど・・
API
エコノミー
例:
車が最寄り
ATMにガイ
ドができる
ようにATM
位置情報を
APIで提供
スマートカー
サービスやデータ
コネクテッド家電
例:
通販サイト
に決済機能
をAPIで提
供し、決済
ごとに手数
料をいただ
く
ゲーム機
例:
残高データ
タブレット
を家計簿
スマートフォン アプリに提
供し、利便
性やUXを向
スマート
上
テレビ
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
API Connectとは
API ConnectはAPIの作成・実行・管理・保護を圧倒的な
スピードで実現する包括的なAPI基盤ソリューション
APIプロバイダー
APIコンシューマー
API基盤ソリューション
アプリ開発者
外部
取引先
バックエンド
システム
社内
クライアント
アプリケーション
IoT
B2B
作成
Web
Service
API公開
保護
モバイル
実行
IBM z
管理
ESB
Web
SaaS
9
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
作成
迅速なモデル駆動型APIの作成
データソースからのAPIマッピングの自動化
Swagger 2.0 API仕様のGUIツールによる定義
ローカルでのAPI作成とテスト
API、プラン、製品のステージング
10
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
API Connect で API を作成する
API 自動生成
item
列名
目的
属性
ID
ユニークID
数字/一意
NAME
名前
文字列
CATEGORY_ID
カテゴリID
数字
CODE
バーコード文字列
文字列
PRICE
価格
数字
URL
画像URL
文字列
11
データソースを与えるだけで、テーブル構造から
一連の REST API をリバース生成して公開する
OpenAPI(Swagger) と呼ばれる標準形式で、
ドキュメント化されて公開される
つまり(既存の)データベースを簡単に
REST API 化して、便利な形で公開することができる
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
実行
作成したAPIと管理ポータルの実行環境を提供
エンタープライズHA とオートスケーリング
マイクロサービス・アプリケーションのステージング
12
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
Bluemix で API を使うメリット
Auto-Scaling サービスによる API サーバーの負荷対策
ランタイム(アプリケーションサーバー)のインスタンス数をランタイムの負荷に
応じて、自動で調整するビルトイン機能。サービスそのものは無料。
アクセス頻度が高くなった時だけサーバーをスケールアウトすることで、
トータスコストを抑えたパフォーマンスの確保が可能。
13
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
管理
公開するAPI、プラン、製品の定義
クライアントIDの発行と管理
利用者の制限/利用者ごとの利用量制限
利用状態の把握/分析
14
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
APIを管理する
アプリケーションの登録や
サブスクリプションの認証
製品やアプリケーション、プランなど
15
様々な切り口での分析が可能
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
保護
APIのサーバーのホスト名や IP アドレスの隠蔽
レート制限
利用回数や頻度の制限
16
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
デモ(既存DBからAPI を作成し、Bluemixに公開する)
1.
既存DBからモデルとAPIを作成し、Bluemixに公開する
2.
アカウントを発行し、サブスクリプションを認証する
id
category_id
name
price
3.
発行されたアカウントを利用してAPIからデータを取得する
2
2
Apple
140
12
2
Pear
160
22
2
Watermelon
1800
Bluemix
API Connect
Application
Developer
17
API Manager
StrongLoop
API Developer
clearDB
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
料金プラン
プラン
フィーチャー(1ヶ月あたり)
料金(APIの呼び出し回数)
Essentials
5 万回の API 呼び出し
無料
Professional
10 万回の API 呼び出し毎
¥8,400/10 万回
Enterprise
10 万回の API 呼び出し毎
¥10,500/10 万回
Professional 5M
500 万回の API 呼び出し以降は 10 万回の
API 呼び出し毎
¥262,600/最初の 500 万回
¥8,400/その後の 10 万回
Enterprise 25M
2500 万回の API 呼び出し以降は 10 万回の
API 呼び出し毎
¥1,051,000/最初の 2500 万回
¥10,500/その後の 10 万回
18
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
導入形態と機能の違い
多様な導入形態
オンプレミス
19
パブリック・
クラウド(IaaS)
SaaS
IBM
Bluemix
APIマネージャー
開発者ポータル
仮想アプライアンス
仮想アプライアンス
APIゲートウェイ
ソフトウェア
ソフトウェア
Micro App Compute ソフトウェア
ソフトウェア
IBM
Bluemix
物理/仮想アプライアンス
仮想アプライアンス
IBM
Bluemix
API運用管理
お客様
お客様
お客様
ランタイム運用管理
お客様
お客様
IBM
ハードウェア運用管理
お客様
IaaSベンダー
IBM
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
事例、ユースケース
http://event.samurai-incubate.asia/yomiuri-hack/
ジャイアンツハッカソン
20
ハッカソン参加者に提供する API を作成し、
参照機能だけを認証付きで提供
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
ハッカソン参加チーム
(2) API manager
ここだけ公開
検索
作成
更新
API Connect
削除
存在
確認
(0)
各種データ
(このままの公開は不
可)
:
各種APIを自動生成
DB
CSV
XLS
→ IBM Cloud
21
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
サンプル構成と価格(円/月額)
Node.js で API を実行
最大3インスタンスまでスケールアウト
全文検索機能(オプション)
API の利用状況を管理/監視
¥74,376
(20GB)
38,745
(Free)
¥0
(260K MPV)
¥25,200
(1,440GBH)
¥5,181
22
(20GB)
¥5,250© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
まとめ
Bluemix は3つの視点で API と親和性が高い
作る
使う
管理する
Strongloop LoopBack によって、データベースのモデル情報
から REST API を自動作成することが可能になる
Auto Scaling サービスによって、API サーバーの負荷に応じ
たサーバーリソース最適化運用が可能になる
API Management / API Connect によって、公開 API の非
機能要件対応が可能になり、本格的な API ビジネスが可能に
なる
23
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
参考資料
CentOS に StrongLoop をインストールする
 http://dotnsf.blog.jp/archives/1044734593.html
StrongLoop アプリで MySQL を使う
 http://dotnsf.blog.jp/archives/1047831609.html
LoopBack で生成した API でクエリーパラメータを指定する
 http://dotnsf.blog.jp/archives/1051526511.html
Bluemix のオートスケール機能を使う
 http://dotnsf.blog.jp/archives/1022754046.html
IBM Bluemix の API Management サービス
 http://dotnsf.blog.jp/archives/1039539746.html
API Management でパラメータ/パスをラッピングする方法
 http://dotnsf.blog.jp/archives/1051578630.html
Cloudant 内のデータをインデックスして検索する
24
 http://dotnsf.blog.jp/archives/1051853296.html
© 2016 IBM Corporation
IBM Bluemix
www.bluemix.net
25
© 2016 IBM Corporation