Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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