innovation eggcloudnative

36
転ばぬ先の アプリからサービスへの連携方法 Innovation EGG 第7回 『クラウドネィティブ化する世界』 NRIネットコム 佐々木拓郎 2016/03/19 #IEgg

Upload: takuro-sasaki

Post on 08-Jan-2017

1.951 views

Category:

Technology


0 download

TRANSCRIPT

転ばぬ先の アプリからサービスへの連携方法

Innovation EGG 第7回 『クラウドネィティブ化する世界』

NRIネットコム 佐々木拓郎

2016/03/19

#IEgg

自己紹介佐々木 拓郎

• AWSとモバイル

• http://blog.takuros.net/

• http://www.slideshare.net/takurosasaki/

• twitter: @dkfj

#IEgg

AWSの一番分厚い本 (大容量480P)

http://amzn.to/1BLiYcO

#IEgg

Rubyのクローラー本 何故か人気の本 by 編集者

http://amzn.to/1lsJ5id

#IEgg

NRI ネットコムWeb周りのビジネスが専門

• Webシステムの企画・設計・開発

• 24/365の運用体制

• デザイナ/ディレクタが多数在籍

• スマホ/タブレットも得意

• AWSを始めとするクラウド

• デジタルマーケティング

#IEgg

新しいモン好き

#IEgg

2016年も 色々ありました

#IEgg

突然のParseの終了

Publickey: http://www.publickey1.jp/blog/16/baasparse.html

#IEgg

KimonoLabsも終了

TechCrunch: http://jp.techcrunch.com/2016/02/16/20160215palantir-acquires-kimono-labs-for-its-web-scraping-service/

#IEgg

Amazon SimpleDBご存知の方、いますか?

#IEgg

Webサービスは、 どうなるか解らない

#IEgg

でも、使えるものは使うべき!!

スマホアプリ と

サービスの付き合い方

#IEgg

スマホアプリ

#IEgg

アプリ側に処理を実装 サーバと連携することが多い

サーバ側に処理を実装 WebViewでアプリに表示

ネイティブアプリ Webビューアプリ

モバイル サーバjson

アプリの 実体

モバイル サーバHTML

アプリの 実体

実際は、両者を組み合わせた ハイブリッド構成が多い

#IEgg

アプリはAPIとやり取りをする

#IEgg

API

•Application Programming Interface

•Webサービスは、APIを介してサービスを提供

•RESTに準拠したAPIが多い

#IEgg

サービス使う時は、 API Gatewayを噛ませると

即死を回避できるかも

#IEgg

Hint. スマホアプリの 公開プロセスを確認してみよう

Q. 何故?

#IEgg

アプリリリースの流れ

申請

公開

審査

約2~3週間

ほぼ即時

iTunes StoreiOS App

Android App

#IEgg

※緊急審査依頼という手も一応用意されている

どんなに頑張っても、 リリースまで2~3週間掛かるiOSは

※リリースしても更新されない問題もある

#IEgg

APIに関するトラブル

•API起因の問題

✓APIの返却値が突然変わった

✓API提供元のサービスが飛んだ

•アプリ側の問題

✓バグ/検討漏れ等で、APIの一部の返却値で問題が発生する

#IEgg

APIの返却値の形式が変わった

モバイル

jsonAPI

外部システムA

外部システムB

外部システムC

フォーマットの 変更

複数のシステムが絡みあうAPI

#IEgg

提供元のサービスが突然停止

モバイル

json

KimonoLabsさん

2月初旬に1週間ほどサービス停止

2/16にサービスの終了を発表

KimonoLabs

気の利いたスクレイピングサービス

#IEgg

モバイル

対応策

json

Webサイト

import.ioへ移行

#IEgg

JSON

課題

リクエスト

import.ioは、Proxy型

スクレイプ

※2回目以降は、キャッシュ返却

初回レスポンスが、1分近く掛かる

Webサイトモバイル

#IEgg

JSON

結局2つのシステムに分割

スクレイプ

lambda

呼び出し

結果保存

DynamoDB

CloudWatch Events

定期実行

API Gateway lambda

Webサイト

モバイル

最初から、API Gatewayを噛ませておくと モバイル側の変更不要

#IEgg

こんな構成 どうですか?

#IEgg

構成案とにかくAPI Gatewayを利用する

API Gatewayモバイル

サービス

API Gatewayの HTTP Proxy機能

#IEgg

サービスの変更API Gatewayで向き先を変える

API Gatewayモバイル

サービスA

サービスB

#IEgg

返却値の修正Lambdaで頑張る

API Gatewayモバイル

サービスlambda

レスポンスに対して 何らかの処理を加える

#IEgg

サービスの終了頑張る

API Gatewayモバイル

#IEgg

代替のシステム

それ以外にも

•キャッシュ

•スロットリング

•マッピング・テンプレート

•認証

#IEgg

まとめ•配布しているアプリの改修は大変

✓リリースまでの時間

✓リリースしても更新されない問題

•API Gatewayを使うと柔軟さが増す

✓(一部の不具合を)API側で吸収できる

✓AWS以外のサービスにも使える

•サービスの終了を恐れず、どんどん使おう!!

#IEgg

API Gateway 素敵!!

使い方については…

#IEgg

AWSの鈍器のような本 (640ページ!?)

4/11発売開始!!

絶賛、予約受付中!!

http://amzn.to/1R4yyLy

#IEgg

ご静聴、 ありがとうございました。

#IEgg