IBM Bluemix テクニカル セミナー API Connect / API Management 2016 年 07 月 26 日 日本アイ ビー エム株式会社クラウド ソフトウェア事業部 Bluemix & XaaS テクニカル セールス 伊藤 拓也
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
アジェンダ API とは? API による新しいエコシステム Bluemix と API API Connect とは 料金プラン 導入体系と機能の違い API Connect が管理する API のライフサイクル ( デモ )API Connect で API を作る 事例 サンプル構成 資料 3
API とは? Application Programming Interface プログラマが何らかの機能を実行できるように公開された関数 何かをインプットして 処理して 目的のアウトプットが得られる データをインプットして 保存して 保存結果を得る 音声をインプットして テキストに変換して 変換結果を得る : 上記の処理の中身の部分は公開する必要がない 機密保持 バージョン管理 / メンテナンス性 最近の主流は REST API HTTP ベース 言語非依存 API を 第三者に使ってもらう という考え方 自分が持っているデータやシステムを API として第三者に公開する 使ってもらうことで利用料金を得る 今までゼロから作る必要があったものが簡単に使えるようになる 新しいアイデアの想起 開発部門のアウトソーシング API 4
CRUD IBM Bluemix 例えば 商品 (item) をデータベース化する場合 列名 目的 属性 ID ユニークID 数字 / 一意 NAME 名前 文字列 CATEGORY_ID カテゴリID 数字 CODE バーコード文字列 文字列 PRICE 価格 数字 URL 画像 URL 文字列 新規作成 読み込み 更新 削除 Create Read Update Delete 一連の処理をまとめて CRUD と呼ぶ 5
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 6 REST(Representational State Transfer) API 特徴 : 言語に依存しない
データ API によるエコシステム 他サイトで商品を紹介 商品 データ 比較サイト 社内業務アプリで利用 商品データの参照機能だけ API にして公開呼び出し回数に制限をかけて提供 7
IBM Bluemix 銀行で例える API エコノミー API で銀行の機能 サービス やデータを提供することで 新しいビジネスを生み出すのが APIエコノミー B2B パートナー 銀行 決 済 残 高 照 会 8 例 ウェブサイト 経費管理 アプリに 為替レート をAPIで提供 し 月料金 をいただく 為替 レート 参照 振 込 などなど API エコノミー 例 車が最寄り ATMにガイ ドができる ようにATM 位置情報を APIで提供 スマートカー サービスやデータ コネクテッド家電 例 通販サイト に決済機能 をAPIで提 供し 決済 ごとに手数 料をいただ く ゲーム機 例 残高データ タブレット を家計簿 スマートフォン アプリに提 供し 利便 性やUXを向 スマート 上 テレビ
IBM Bluemix API Connectとは API ConnectはAPIの作成 実行 管理 保護を圧倒的な スピードで実現する包括的なAPI基盤ソリューション APIプロバイダー APIコンシューマー API基盤ソリューション アプリ開発者 外部 取引先 バックエンド システム 社内 クライアント アプリケーション IoT B2B 作成 Web Service API公開 保護 モバイル 実行 IBM z 管理 ESB Web SaaS 9
作成 IBM Bluemix 迅速なモデル駆動型 API の作成 データソースからの API マッピングの自動化 Swagger 2.0 API 仕様の GUI ツールによる定義 ローカルでの API 作成とテスト API プラン 製品のステージング 10
API Connect で API を作成する API 自動生成 item 列名 目的 属性 ID ユニークID 数字 / 一意 NAME 名前 文字列 CATEGORY_ID カテゴリID 数字 CODE バーコード文字列 文字列 PRICE 価格 数字 URL 画像 URL 文字列 データソースを与えるだけで テーブル構造から一連の REST API をリバース生成して公開する OpenAPI(Swagger) と呼ばれる標準形式で ドキュメント化されて公開される 11 つまり ( 既存の ) データベースを簡単に REST API 化して 便利な形で公開することができる
実行 IBM Bluemix 作成した API と管理ポータルの実行環境を提供 エンタープライズ HA とオートスケーリング マイクロサービス アプリケーションのステージング 12
Bluemix で API を使うメリット Auto-Scaling サービスによる API サーバーの負荷対策 ランタイム ( アプリケーションサーバー ) のインスタンス数をランタイムの負荷に応じて 自動で調整するビルトイン機能 サービスそのものは無料 アクセス頻度が高くなった時だけサーバーをスケールアウトすることで トータスコストを抑えたパフォーマンスの確保が可能 13
管理 IBM Bluemix 公開する API プラン 製品の定義 クライアント ID の発行と管理 利用者の制限 / 利用者ごとの利用量制限 利用状態の把握 / 分析 14
API を管理する アプリケーションの登録や サブスクリプションの認証 15 製品やアプリケーション プランなど 様々な切り口での分析が可能
保護 IBM Bluemix API のサーバーのホスト名や IP アドレスの隠蔽 レート制限 利用回数や頻度の制限 16
IBM Bluemix デモ 既存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
料金プラン プランフィーチャー (1 ヶ月あたり ) 料金 (API の呼び出し回数 ) Essentials 5 万回の API 呼び出し無料 Professional 10 万回の API 呼び出し毎 8,400/10 万回 Enterprise 10 万回の API 呼び出し毎 10,500/10 万回 Professional 5M Enterprise 25M 500 万回の API 呼び出し以降は 10 万回の API 呼び出し毎 2500 万回の API 呼び出し以降は 10 万回の API 呼び出し毎 262,600/ 最初の 500 万回 8,400/ その後の 10 万回 1,051,000/ 最初の 2500 万回 10,500/ その後の 10 万回 18
導入形態と機能の違い 多様な導入形態 オンプレミス パブリック クラウド (IaaS) SaaS API マネージャー開発者ポータル API ケ ートウェイ 仮想アフ ライアンス ソフトウェア物理 / 仮想アフ ライアンス 仮想アフ ライアンス ソフトウェア仮想アフ ライアンス Micro App Compute ソフトウェアソフトウェア IBM Bluemix IBM Bluemix IBM Bluemix API 運用管理 お客様お客様お客様 ランタイム運用管理 お客様お客様 IBM 19 ハードウェア運用管理 お客様 IaaS ベンダー IBM
IBM Bluemix 事例 ユースケース http://event.samurai-incubate.asia/yomiuri-hack/ ジャイアンツハッカソン 20 ハッカソン参加者に提供する API を作成し 参照機能だけを認証付きで提供
IBM Bluemix ハッカソン参加チーム (2) API manager ここだけ公開 検索 作成 更新 API Connect 削除 存在 確認 (0) 各種データ このままの公開は不 可 各種APIを自動生成 DB CSV XLS IBM Cloud 21
サンプル構成と価格 ( 円 / 月額 ) Node.js で API を実行 最大 3 インスタンスまでスケールアウト 全文検索機能 ( オプション ) API の利用状況を管理 / 監視 (20GB) 38,745 74,376 (Free) 0 22 (260K MPV) 25,200 (1,440GBH) 5,181 (20GB) 5,250
まとめ IBM Bluemix Bluemix は 3 つの視点で API と親和性が高い 作る 使う 管理する Strongloop LoopBack によって データベースのモデル情報から REST API を自動作成することが可能になる Auto Scaling サービスによって API サーバーの負荷に応じたサーバーリソース最適化運用が可能になる API Management / API Connect によって 公開 API の非機能要件対応が可能になり 本格的な API ビジネスが可能になる 23
24 IBM Bluemix 参考資料 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 内のデータをインデックスして検索する http://dotnsf.blog.jp/archives/1051853296.html
25