狠狠撸

狠狠撸Share a Scribd company logo
API Gatewayの話
@charlier_shoe
自己紹介
早川 博(はやかわ ひろし)
@charlier_shoe
? 日本オラクルのプリセールス?エンジニア
- 製品選定のコンサルティング、アーキテクチャ設計など、販売活動の
技術的支援がミッション
- Java SE / Java EE / WebLogic / PaaS…
? 本発表は個人の見解であり、所属組織の公式見解ではありません
(;?Д`)
今日の話
BFF(Backend for Frontend)
がきっかけ
こういうのってミドルウェアがもうあって設定だ
けで組めたりしたら楽なんじゃないか。
と思ったけどそんなに単純じゃなかったので
ざっくり調べてみたという話です。
API Gateway
サービス呼出しを仲介して
いい感じにしてくれる
SC
期待すること
SC
認証、データ変換、
APIアクリゲーション、エンドポイント集約
アクセス分析
ルーティング、流量制御…
APIアグリゲーション
複数のサービス呼出しをまとめて、適切な形で
返す
SC
S
S
本
Sam Newman(著)
佐藤 直生(監訳), 木下 哲也(訳)
オライリー?ジャパン(2016)
本の場合
APIのセキュリティ
? クライアントにAPIキーを払
い出し
? 正しいキーがないリクエスト
はGatewayが拒絶
本の場合 その2
BFF
(Backend for Front End)
? APIをクライアントに最適化し
た形式に変換
? 複数のAPI呼出しを集約
API Gatewayの実装
? クラウドサービス
? AWS API Gateway
? Netflix API Gateway
? Open Source系
? Tyk
? Kong
? データフェッチ系 [^1]
? Falcor
? GraphQL
? SOA勢
? Oracle Service Bus
? IBM Integration Bus
[^1]
FalcorやGraphQLがAPI Gatewayを謳っているわけではないのでご注意を
Tyk
https://tyk.io/
Open SourceのAPI Gateway
認証
データ変換
アクセス分析
ルーティング
流量制御
だいたいできる…ただし
Tyk
SC
S
S
APIアクリゲーションはできない…
BFFに使うには厳しい
Falcor
https://netflix.github.io/falcor/starter/what-is-falcor.html
? Client-ServerでJSON-Graph形
式のデータ構造を共有
? ClientはJSON-Graphの必要な
部分を指定してデータを取得
? 一度取得したデータはキャッ
シュしておく
Falcor
SC
S
S
Falcor
データ?フェッチ
認証
データ変換
アクセス分析
ルーティング
流量制御
「そもそもAPI Gatewayのつもりないんで…」
Oracle Service Bus !!
Enterprise Service Bus
S S S S S S
C
全部できるよ!
ちょっとまってほしい
「1 つのことにすべての希望を託し、ゲートウェイを頼ってすべての段階に対処してい
るのを目にしたことがあります。また、誰もが単一障害点があるとどうなるかわかって
います。」
「ゲートウェイレイヤはますます多くの機能を担う傾向があり、結局は巨大な結合点と
なる可能性があります。」
じゃあBusの冗長化か? 何処までやるべきか…。
どうすればいいか考えてみる
S
S
S
C
C
認証、エンドポイ
ント集約
API
アグリゲーション
結合してもいいところはどこ?
プロトコル?スタック(的なもの)を想定しときに、
サービス機能より下位のレイヤーは結合してもよいと
考えては?
認証
エンドポイント解決
サービス サービス サービス
偉い人も言っている
「OpenID Connect は、インターネット上の
『アイデンティティ層』をなすものです。」
Fin.
https://www.facebook.com/groups/oracle.cloud.developers/
Facebookグループ
クラウド?テクノロジーを語ろう。
Oracle Cloud Developers

More Related Content

Api gatewayの話