雲の世界の共通語 CloudEvents って何? #cndjp / Cloud Native Developers JP 11th
by
y_taka_23
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
雲の世界の共通語 CloudEvents って何? チェシャ猫 (@y_taka_23) Cloud Native Developers JP #11 (2019/04/17) #cndjp
Slide 2
Slide 2 text
普段、FaaS 使ってる人? #cndjp
Slide 3
Slide 3 text
普段、複数の FaaS 使ってる人? #cndjp
Slide 4
Slide 4 text
普段、複数の FaaS 繋げてる人? #cndjp
Slide 5
Slide 5 text
サーバレス界隈の現状 ● 完全にキャズムを超えたサーバレス ○ イベント駆動アーキテクチャの普及 ● 一方、各ベンダの仕様は独自路線 ● マルチクラウド間の移行や接続は困難 ○ それぞれの機能差を吸収するコストは? ○ テストやモック、運用フローはどうする? ○ プラットフォームをまたいだ observability は? #cndjp
Slide 6
Slide 6 text
#cndjp
Slide 7
Slide 7 text
#cndjp
Slide 8
Slide 8 text
CloudEvents のコア仕様 ● あくまでも「発生した事実」を表現 ○ 受け取り側の名前・処理方法を規定しない ● データにメタデータを付加する ○ どんなイベントが発生したのか? ○ いつ・どこで発生したのか? ○ イベントをどう特定するか? ○ どのような形式で通信されるのか? #cndjp
Slide 9
Slide 9 text
データ本体 #cndjp
Slide 10
Slide 10 text
メタデータ #cndjp
Slide 11
Slide 11 text
実装に対応するための追加仕様 ● Event の直列化フォーマット ○ JSON(必須) ○ AMQP ● 通信プロトコルへのバインディング ○ HTTP ○ MQTT ○ NATS #cndjp
Slide 12
Slide 12 text
一応 SDK とその仕様もある ● 公式でサポートされている言語 ○ Go (53 stars) ○ Java (32 stars) ○ JavaScript (28 stars) ○ Python (15 stars) ○ C# (11 stars) ● HTTP 以外の仕様はほとんど TBA 状態 #cndjp
Slide 13
Slide 13 text
仕様はわかった。実装は? #cndjp
Slide 14
Slide 14 text
CloudEvents 対応プロダクト ● Event Gateway ○ CloudEvents 形式にネイティブ対応 ○ OSS + Serverless Inc. によるマネージド版 ○ V0.1 のみ対応 ● Azure Event Grid ○ 独自形式に加え CloudEvents 形式も対応 ○ v0.1 のみ対応 #cndjp
Slide 15
Slide 15 text
#cndjp https://medium.com/@austencollins/introducing-cloudevents-a758c62c76bf
Slide 16
Slide 16 text
2018.4.21:v0.1 リリース 2018.5.22:CNCF Sandbox 認定 2018.12.07:v0.2 リリース 2018.5.4:CloudNativeCon Europe #cndjp
Slide 17
Slide 17 text
CloudEvents 対応プロダクト ● Event Gateway ○ CloudEvents 形式にネイティブ対応 ○ OSS + Serverless 社による マネージド ○ v0.1 のみ対応 ● Azure Event Grid ○ 独自形式に加え CloudEvents 形式も対応 ○ v0.1 のみ対応 #cndjp
Slide 18
Slide 18 text
CloudEvents 対応プロダクト ● Event Gateway ○ CloudEvents 形式にネイティブ対応 ○ OSS + Serverless 社による マネージド ○ v0.1 のみ対応、最終コミット 2018 年 8 月 ● Azure Event Grid ○ 独自形式に加え CloudEvents 形式も対応 ○ v0.1 のみ対応 #cndjp
Slide 19
Slide 19 text
(これ死に体では…?) #cndjp
Slide 20
Slide 20 text
#cndjp
Slide 21
Slide 21 text
Knative のコンポーネント ● Build ○ コードからコンテナへの変換を担当 ● Serving ○ ワークロードのデプロイとトラフィックを担当 ● Eventing ○ ワークロード間のイベントドリブン処理を担当 ○ データ形式として CloudEvents v0.2 を採用! #cndjp
Slide 22
Slide 22 text
#cndjp https://knative.dev/docs/eventing/
Slide 23
Slide 23 text
まとめ ● 現状サーバレス界隈は互換性に難あり ○ ベンダごとの独自仕様にロックイン状態 ○ マルチクラウドを考えると途端につらい ● CloudEvents はメタデータを定義 ○ イベント = データ + 処理に必要なコンテキスト ● 現時点での具体的な用途は限定的 ○ 事実上 Knative Eventing が唯一の実装 #cndjp
Slide 24
Slide 24 text
Make Serverless Borderless! Presented by チェシャ猫 (@y_taka_23) #cndjp