SlideShare ist ein Scribd-Unternehmen logo
1 von 43
© 2021 NTT DATA Corporation
Knative Eventing 入門
2021年6月22日
NTTデータ
北村 卓也
© 2021 NTT DATA Corporation 2
自己紹介
北村 卓也 (twitter:@ch03121)
・所属:NTTデータ
・仕事:BtoBなサービスのインフラ構築/運用
Kubernetesの勉強中
・趣味:化石・鉱物採集
↑岩手県で採集してきた水晶
© 2021 NTT DATA Corporation 3
アジェンダ
1. Knative Eventing 概要
2. Eventingのカスタムリソース紹介
3.BrokerとTriggerを活用したイベント配信例
4. まとめ
© 2021 NTT DATA Corporation 4
注意
・掲載内容は個人の見解であり、所属する企業や組織の立場、戦略、意見を
代表するものではありません。
・記載されている会社名、商品名、又はサービス名は、
各社の登録商標又は商標です。
© 2021 NTT DATA Corporation 5
Knative Eventing 概要
© 2021 NTT DATA Corporation 6
Knativeとは
Kubernetesにけおけるサーバーレスアプリケーションのデプロイ・管理のプロセスを簡略化するOSS。
GCPのCloudRunの基盤にも活用されている。
<ユースケース>
 サーバーレスアプリケーションを、異なるプラットフォーム(各種クラウド、オンプレミス)に同じ仕組みで動かしたい
・Knativeが動作するKubernetes上であれば、アプリケーションを改修せずに
異なるプラットフォームでデプロイ、動作可能
・サーバーレスの欠点であるクラウドベンダへのロックインを回避できる
 Kubernetes上でイベントドリブンなアプリケーションを実行したい
・イベントの検知や配信の仕組みはKnativeに任せられるので、アプリケーション側での実装が不要。
・様々なイベントソース(AWS SQS、Apache Kafka、FTPアップロード等)が利用可能
© 2021 NTT DATA Corporation 7
Knativeとは
 ServingとEventingという2つのコンポーネントで構成されている。
それぞれ個別にインストール、使用することが可能。
• Serving
Kubernetes上へのコンテナデプロイを簡略化。
オートスケーリング(ゼロスケール可)、デプロイした構成のリビジョン管理などを実現。
• Eventing
イベントを契機にkubernetes上で処理を実行できるようにしてくれる。
イベントソース(GithubWebhooks、Kafka等)とコンシューマ(Kubernetes、KnativeのService等)の
関連付けの抽象化を行う。
Kubernetes Novice Tokyo #9のセッション
「KnativeでKubernetesをラクにする」(@mochizuki875)
をご覧ください!
© 2021 NTT DATA Corporation 8
Eventingとは
イベントの検知、Kubernetes上のアプリケーションへの配信を行うコンポーネント
・Event Producerの違いをEventingが吸収してくれるので、アプリケーション側での個別実装が不要。
・クラウドベンダのマネジメントサービスを使わずに、イベントドリブンな処理を実装できる(ベンダロックイン回避)。
Knative
Eventing
Event Producer
Kubernetes上の
アプリケーション
(Service)
イベント例)
・メッセージキュー(OSS、クラウド…)へのパブリッシュ
・KubernetesAPIserver
・FTPアップロード
・Githubへのプッシュ
イベント検知/取得 イベント配信
CloudEvents仕様
© 2021 NTT DATA Corporation 9
(補足) CloudEvents
 イベントデータを記述するための共通仕様。
Cloud Native Computing Foundation(CNCF)が推進。
2019年にversio1.0に到達。
 クラウド内でのイベント記述仕様はクラウドベンダ毎に異なる。
マルチクラウド構成の場合、クラウド間でのイベントのやり取りも想定される。
→イベントの記述仕様を標準化して、クラウド間連携の運用性を高める。
 CloudEvents仕様を採用しているサービス、OSS
・Google Cloud Eventarc ・Azure Event Grid
・Alibaba Cloud EventBridge ・Vmware Event Broker Appliance
・Knative ・OpenFaaS
etc…
※ https://cloudevents.io/
© 2021 NTT DATA Corporation 10
(補足) CloudEvents
 CloudEvents仕様に必須の属性は以下。
これらをHTTPリクエストのヘッダに入れる必要がある。
・ce-specversion:CloudEventsのバージョン。
・ce-type:イベントタイプ。ルーティングやモニタリング、
ポリシー適用などに使われる属性。
・ce-source:イベントの発生元。
・ce-id:プロデューサーの範囲内で一意であるID。
POST /event HTTP/1.0
Host: example.com
Content-Type: application/json
ce-specversion: 1.0
ce-type: repo.newItem
ce-source: http://bigco.com/repo
ce-id: 610b6dd4-c85d-417b-b58f-3771e532
{
"action": "newItem",
"itemID": "93"
}
↓CloudEventsに準拠したHTTPリクエストの例
※https://github.com/cloudevents/spec
© 2021 NTT DATA Corporation 11
Eventingのカスタムリソース
© 2021 NTT DATA Corporation 12
Eventing カスタムリソース
Event
Producer
Event
consumer
Source
Trigger(1)
Service
(APP-2)
Service
(APP-1)
Broker
Trigger(2)
Subscription(1)
Subscription(2)
Channel
フィルタ
検知/取得 配信
配信
配信
Eventingをインストールすると、カスタムリソース定義が作成される。
それらカスタムリソースを使用することで、イベントドリブンな処理を実現できる。
フィルタ
© 2021 NTT DATA Corporation 13
Source
・イベントを検知し、Sink(配信先)に配信するリソース。配信する際は、CloudEvents仕様に変換を行う。
・Producer(イベント発生元)に対応する様々なリソースが存在し、
Event Producerに応じて選択、作成する。
例)
APIServerSource:K8sのリソース操作を検知してイベント発行
KafkaSource:ApacheKafkaのメッセージを検知してイベント発行
PingSource:定期的にイベントを生成する
AwsSqsSource:AWS SQSのメッセージを検知してイベント発行
・右の例は、「my-cluster-kafka-bootstrap.kafka:9092」
というApache Kafkaの「my-topic」にメッセージが登録されたら、
「event-display」Serviceに配信するKafkaSource。
apiVersion: sources.knative.dev/v1beta1
kind: KafkaSource
metadata:
name: kafka-source
spec:
consumerGroup: knative-group
bootstrapServers:
- my-cluster-kafka-bootstrap.kafka:9092
topics:
- my-topic
sink:
ref:
apiVersion: v1
kind: Service
name: event-display
© 2021 NTT DATA Corporation 14
例:Sourceのみ使用する場合
Event
consumer
Service
(APP-2)
Event
Producer
Service
(APP-1)
Source
検知/取得
Sourceが指定できる配信先(sink)は1つだけ。また、配信失敗時はイベントが消失する。
イベントの発生を検知して
イベント内容をCloudEvents仕様の
HTTPリクエストに変換して、配信する
配信
POST /event HTTP/1.0
Host: example.com
Content-Type: application/json
ce-specversion: 1.0
ce-type: repo.newItem
ce-source: http://bigco.com/repo
ce-id: 610b6dd4-c85d-417b-b58f-3771e532
{
"action": "newItem",
"itemID": "93"
}
© 2021 NTT DATA Corporation 15
Channel
・イベントの保存と、配信を行う。以下から選択して実装する。
・In-Memory Channel →シンプルでインストールも楽だが、永続性はないので、開発用
・Apache Kafka Channel
・NATS Channel
・Google Cloud Pub/Sub Channel
※作成例
# cat channel.yaml
apiVersion: messaging.knative.dev/v1beta1
kind: InMemoryChannel
metadata:
name: channel
# kubectl apply -f channel.yaml
inmemorychannel.messaging.knative.dev/channel created
# kubectl get channel
NAME URL AGE READY REASON
inmemorychannel.messaging.knative.dev/channel http://channel-kn-channel.default.svc.cluster.local 2m4s True
プロダクション環境で使う場合は、これらを検討
© 2021 NTT DATA Corporation 16
Subscription
・Channelと配信先(subscriber)の紐づけを定義する。
配信のリトライ設定も可能。
・右の例は、「eventinghello-ch」というchannelにあるイベントを
「eventinghello」というKnativeServiceに送るSubscription。
・subscriberはchannelにすることもできるので、
以下のような複雑な制御も可能。
apiVersion: messaging.knative.dev/v1beta1
kind: Subscription
metadata:
name: eventinghelloa-sub
spec:
channel:
apiVersion: messaging.knative.dev/v1beta1
kind: Channel
name: eventinghello-ch
subscriber:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: eventinghello
※https://medium.com/google-cloud/knative-eventing-delivery-methods-79d4ebe30a68
© 2021 NTT DATA Corporation 17
例:Channel、Subscriptionを導入した場合
多数の配信先(subscriber)がイベントを受け取ることができる。
また、配信失敗時にイベントは消失せず、再配信が試行される。
Event
Producer
Event
consumer
Source
Service
(APP-2)
Service
(APP-1)
Subscription(1)
Subscription(2)
Channel
検知/取得 配信
配信
配信
イベントをChannelに配信
イベントを保存した上で、
subscriptionに定義された
subscriberへ配信
© 2021 NTT DATA Corporation 18
Broker
・イベントを保存した上で
Triggerによって定義されたフィルタリングを行い、
配信するリソース。
・基本的な実装であるMT-Channel-based Brokerは
内部的にChannelを利用するので、
Channelと同様、実装をin-memory、Kafka等から選択して
「config-br-defaults」Configmapに設定しておく必要がある。
apiVersion: eventing.knative.dev/v1
kind: Broker
metadata:
name: default
namespace: default
annotations:
eventing.knative.dev/broker.class: MTChannelBasedBroker
spec:
config:
apiVersion: v1
kind: ConfigMap
name: config-br-default-channel
namespace: knative-eventing
delivery:
deadLetterSink:
ref:
kind: Service
namespace: example-namespace
name: example-service
apiVersion: v1
uri: example-uri
retry: 5
backoffPolicy: exponential
backoffDelay: "2007-03-01T13:00:00Z/P1Y2M10DT2H30M"
© 2021 NTT DATA Corporation 19
Trigger
・Brokerでのフィルタリングと配信先を定義するリソース。
HTTPヘッダ(CloudEvents属性/拡張属性)での完全一致フィルタリングをサポートしている。
・右の例は、「default」brokerにある、
typeが「dev.knative.foo.bar」かつmyextensionが
「my-extension-value」のイベントのみ、
「my-service」Serviceに配信する場合。
・filterはAND条件なので、OR条件を使いたい場合は、
Triggerが複数必要。
・subscriberは複数定義できないので、同じフィルタ条件で
複数のsubscriberに配信したい場合は、Triggerが複数必要。
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
name: my-service-trigger
spec:
broker: default
filter:
attributes:
type: dev.knative.foo.bar
myextension: my-extension-value
subscriber:
ref:
apiVersion: v1
kind: Service
name: my-service
© 2021 NTT DATA Corporation 20
Broker、TriggerとChannel、Subscriptionの関係
・Brokerを作成すると、使用するChannelが自動作成される。
# kubectl get broker
NAME URL AGE READY REASON
default http://broker-ingress.knative-eventing.svc.cluster.local/default/default 6s True
# kubectl get channel
NAME URL AGE READY REASON
inmemorychannel.messaging.knative.dev/default-kne-trigger http://default-kne-trigger-kn-channel.default.svc.cluster.local
6m55s True
# kubectl get trigger
NAME BROKER SUBSCRIBER_URI AGE READY REASON
trigger1 default http://service1.default.svc.cluster.local 8s True
# kubectl get subscription
NAME AGE READY REASON
default-trigger1-50178dee-e2ed-4ed7-b77e-21752093d629 14s True
・Triggerを作成すると、必要なSubscriptionが自動作成される。
© 2021 NTT DATA Corporation 21
例:Broker、Triggerを導入した場合
イベントを、その属性に応じてフィルタリングし、適切なsubscriberへ配信できる。
イベントはChannelに保存されているため、配信失敗時にイベントは消失せず、再配信が試行される。
Event
Producer
Event
consumer
Source
Trigger(1)
Service
(APP-2)
Service
(APP-1)
Broker
Trigger(2)
Subscription(1)
Subscription(2)
Channel
フィルタ
検知/取得 配信
配信
配信
フィルタ
イベントをBrokerに配信
Channelにイベントを保存した上で、
Triggerに定義された条件に従って
subscriberへ配信
© 2021 NTT DATA Corporation 22
Broker、Trigger導入のメリット
・複雑なイベント配信を行う場合、Broker、Triggerを使うことでリソースの作成、管理が簡単になる。
※https://github.com/meteatamel/knative-tutorial/blob/master/docs/complexdeliverywithreply.md
※https://github.com/meteatamel/knative-tutorial/blob/master/docs/brokertrigger.md
■Brokerを使わない場合
Sourceからのイベント配信用と、Service2からService3への
連携用の2つのchannelが必要になる。
また、Subscriptionもユーザ側で作成することになる。
→管理が大変
■Brokerを使う場合
Triggerの設定によって、1つのBrokerで様々な配信を行える。
Subscriptionも自動で作成してくれる。
→Triggerを管理するだけでOK
© 2021 NTT DATA Corporation 23
カスタムリソース まとめ
Event
Producer
Event
consumer
Source
Trigger(1)
Service
(APP-2)
Service
(APP-1)
Broker
Trigger(2)
Subscription(1)
Subscription(2)
Channel
フィルタ
検知/取得 配信
配信
配信
以下のカスタムリソースを使用することで、イベントドリブンな処理を実現できる。
フィルタ
© 2021 NTT DATA Corporation 24
カスタムリソース まとめ
Event
Producer
Event
consumer
Source
Trigger(1)
Service
(APP-2)
Service
(APP-1)
Broker
Trigger(2)
Subscription(1)
Subscription(2)
Channel
フィルタ
検知/取得 配信
配信
配信
以下のカスタムリソースを使用することで、イベントドリブンな処理を実現できる。
フィルタ
イベントを検知して、
CloudEvents形式の
HTTPリクエスト
に変換する
CloudEvents形式のリクエストを
アプリケーションに配信する
・1つのイベントを複数の宛先に送信する
・リクエスト内容に応じた宛先に配信する
© 2021 NTT DATA Corporation 25
BrokerとTriggerを
活用したイベント配信例
© 2021 NTT DATA Corporation 26
BrokerとTriggerを活用したイベント配信例
Brokerにce-typeの異なるイベントを送信し、Triggerの設定に従って配信先が振り分けられることを確認する。
・「ce-type:aloha」のイベント→「eventingaloha」Serviceに配信
・「ce-type:bonjour」のイベント→「eventingbonjour」Serviceに配信
※Sourceの代わりにcurlを使って、手動でイベントをBrokerに配信している。
curlコマンド
Trigger
(aloha)
Service
(eventingaloha)
Broker
Trigger
(bonjour)
Subscription
Subscription
Channel
フィルタ
配信
配信
配信
フィルタ
①Broker宛てに、CloudEvents仕様で
HTTPリクエストを送信
Service
(eventingbonjour)
②ce-typeの値に応じて、
適切なServiceにイベントを配信
※https://redhat-developer-demos.github.io/knative-tutorial/knative-tutorial/index.html
③受け取ったイベントを確認
※受け取ったイベントを出力するだけのAP
© 2021 NTT DATA Corporation 27
BrokerとTriggerを活用したイベント配信例
配信先となるPodを作成し、ClusterIPで公開する。
# kubectl get service eventingaloha
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
eventingaloha ClusterIP 10.104.233.136 <none> 80/TCP 5m17s
# kubectl get service eventingbonjour
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
eventingbonjour ClusterIP 10.99.168.47 <none> 80/TCP 5m21
# kubectl get pod
NAME READY STATUS RESTARTS AGE
eventingaloha-v1-deployment-794c9dcdcd-sh5c2 1/1 Running 0 6m1s
eventingbonjour-v1-deployment-7ccf8f4f74-jsqfq 1/1 Running 0 6m1s
© 2021 NTT DATA Corporation 28
BrokerとTriggerを活用したイベント配信例
Brokerを作成する。
※sugar-controllerというKnativeの拡張機能により、「eventing.knative.dev/injection=enabled」という
labelを付けたnamespaceにBrokerが自動作成される。
# kubectl label namespace default eventing.knative.dev/injection=enabled
namespace/default labeled
# kubectl get broker
NAME URL AGE READY REASON
default http://broker-ingress.knative-eventing.svc.cluster.local/default/default 4s True
Brokerのエンドポイント。
ここにPOSTすればイベントをBrokerに登録できる。
© 2021 NTT DATA Corporation 29
BrokerとTriggerを活用したイベント配信例
「ce-type:aloha」のイベントを「eventingaloha」Serviceに配信するTriggerを作成
# cat trigger-aloha.yaml
apiVersion: eventing.knative.dev/v1beta1
kind: Trigger
metadata:
name: aloha
spec:
filter:
attributes:
type: aloha
subscriber:
ref:
apiVersion: v1
kind: Service
name: eventingaloha
# kubectl apply -f trigger-aloha.yaml
trigger.eventing.knative.dev/aloha created
# kubectl get trigger aloha
NAME BROKER SUBSCRIBER_URI AGE READY REASON
aloha default http://eventingaloha.default.svc.cluster.local/ 14s True
© 2021 NTT DATA Corporation 30
BrokerとTriggerを活用したイベント配信例
「ce-type:bonjour」のイベントを「eventingbonjour」Serviceに配信するTriggerを作成
# cat trigger-bonjour.yaml
apiVersion: eventing.knative.dev/v1beta1
kind: Trigger
metadata:
name: bonjour
spec:
filter:
attributes:
type: bonjour
subscriber:
ref:
apiVersion: v1
kind: Service
name: eventingbonjour
# kubectl apply -f trigger-bonjour.yaml
trigger.eventing.knative.dev/bonjour created
# kubectl get trigger bonjour
NAME BROKER SUBSCRIBER_URI AGE READY REASON
bonjour default http://eventingbonjour.default.svc.cluster.local/ 6s True
© 2021 NTT DATA Corporation 31
BrokerとTriggerを活用したイベント配信例
BrokerとTriggerを作成したので、ChannelとSubscriptionが自動的に作成されている。
# kubectl get channel
NAME URL AGE READY REASON
inmemorychannel.messaging.knative.dev/default-kne-trigger http://default-kne-trigger-kn-channel.default.svc.cluster.local 3m51s True
# kubectl get subscription
NAME AGE READY REASON
default-aloha-ab84b7e5-a363-43fb-90c8-e2e5c5fcd926 4m32s True
default-bonjour-9c99f6e7-b97e-4909-a519-7c9c00b2f24f 101s True
© 2021 NTT DATA Corporation 32
BrokerとTriggerを活用したイベント配信例
Brokerへイベントを登録するためのPodを起動してログインする。
# cat curler.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: curler
name: curler
spec:
containers:
- name: curler
image: fedora:29
tty: true
# kubectl apply -f curler.yaml
pod/curler created
# kubectl exec -it curler -- /bin/bash
© 2021 NTT DATA Corporation 33
BrokerとTriggerを活用したイベント配信例
type:alohaのイベントをBrokerに対しHTTP POSTすると、 eventingalohaのみにイベントが届く。
[root@curler /]# curl -v "http://broker-ingress.knative-eventing.svc.cluster.local/default/default" 
-X POST 
-H "Ce-Id: say-hello" 
-H "Ce-Specversion: 1.0" 
-H "Ce-Type: aloha" 
-H "Ce-Source: mycurl" 
-H "Content-Type: application/json" 
-d '{"key":"from a curl"}'
# kubectl logs eventingaloha-v1-deployment-794c9dcdcd-sh5c2 -f
2021-06-06 11:09:17,838 INFO [eventing-hello] (executor-thread-1) ce-id=say-hello
2021-06-06 11:09:17,840 INFO [eventing-hello] (executor-thread-1) ce-source=mycurl
2021-06-06 11:09:17,840 INFO [eventing-hello] (executor-thread-1) ce-specversion=1.0
2021-06-06 11:09:17,841 INFO [eventing-hello] (executor-thread-1) ce-time=null
2021-06-06 11:09:17,841 INFO [eventing-hello] (executor-thread-1) ce-type=aloha
2021-06-06 11:09:17,842 INFO [eventing-hello] (executor-thread-1) content-type=application/json
2021-06-06 11:09:17,843 INFO [eventing-hello] (executor-thread-1) content-length=21
2021-06-06 11:09:17,843 INFO [eventing-hello] (executor-thread-1) POST:{"key":"from a curl"}
Eventingaloha Podのログを確認すると、POSTしたイベントが届いていることが確認できる。
© 2021 NTT DATA Corporation 34
BrokerとTriggerを活用したイベント配信例
type:bonjourのイベントをBrokerに対しHTTP POSTすると、 eventingbonjourのみにイベントが届く。
[root@curler /]# curl -v "http://broker-ingress.knative-eventing.svc.cluster.local/default/default" 
-X POST 
-H "Ce-Id: say-hello" 
-H "Ce-Specversion: 1.0" 
-H "Ce-Type: bonjour" 
-H "Ce-Source: mycurl" 
-H "Content-Type: application/json" 
-d '{"key":"from a curl"}'
# kubectl logs eventingbonjour-v1-deployment-7ccf8f4f74-jsqfq –f
2021-06-06 11:12:46,406 INFO [eventing-hello] (executor-thread-1) ce-id=say-hello
2021-06-06 11:12:46,406 INFO [eventing-hello] (executor-thread-1) ce-source=mycurl
2021-06-06 11:12:46,407 INFO [eventing-hello] (executor-thread-1) ce-specversion=1.0
2021-06-06 11:12:46,408 INFO [eventing-hello] (executor-thread-1) ce-time=null
2021-06-06 11:12:46,408 INFO [eventing-hello] (executor-thread-1) ce-type=bonjour
2021-06-06 11:12:46,409 INFO [eventing-hello] (executor-thread-1) content-type=application/json
2021-06-06 11:12:46,409 INFO [eventing-hello] (executor-thread-1) content-length=21
2021-06-06 11:12:46,409 INFO [eventing-hello] (executor-thread-1) POST:{"key":"from a curl"}
Eventing bonjour Podのログを確認すると、POSTしたイベントが届いていることが確認できる。
© 2021 NTT DATA Corporation 35
BrokerとTriggerを活用したイベント配信例
ChannelやBrokerの実体はknative-eventing namespaceにあるPodなので、
これらのPodログを確認すると、配信の状況や配信先が分かる。
※Channelについてはimc-dispatcher、
Brokerはmt-broker-ingress、mt-broker-filterを見る。
# kubectl get pod -n knative-eventing
NAME READY STATUS RESTARTS AGE
eventing-controller-bc75b6c59-f876r 1/1 Running 0 19d
eventing-webhook-ff58dfd96-lxvjf 1/1 Running 0 19d
imc-controller-5676bcf5b7-lhhrv 1/1 Running 0 19d
imc-dispatcher-88b5494f6-748t2 1/1 Running 0 19d
mt-broker-controller-bbb65f58f-g2k5x 1/1 Running 0 19d
mt-broker-filter-5c79bbf754-xz26t 1/1 Running 0 19d
mt-broker-ingress-dc4b5d9d9-22nrl 1/1 Running 0 19d
pingsource-mt-adapter-75754554d-9hdxc 1/1 Running 0 19d
sugar-controller-7cc844bff6-5ltd6 1/1 Running 0 19d
© 2021 NTT DATA Corporation 36
まとめ
© 2021 NTT DATA Corporation 37
まとめ
・Eventingはイベントの検知、CloudEventsへの変換、配信を行う。
アプリケーションはCloudEvents仕様のHTTPリクエストを受けるだけでよい。
・Kubernetes上であれば、同じ仕組みでイベントドリブンな処理を実装できる。
これにより、サーバーレスアプリケーションのポータビリティが向上する。
・Knativeの最新バージョンはv0.23で、まだ正式リリース(v1)には到達していない。
プロダクション環境へ導入するのであれば商用Knative製品(※)がよいと思う。
※Google Cloud Run for Anthos、Red Hat Openshift Serverlessなど
© 2021 NTT DATA Corporation 38
まとめ
※触ってみるなら以下がおすすめ
- Googleの方が公開しているチュートリアル(https://github.com/meteatamel/knative-tutorial)
→最新バージョン(v0.23)まで対応している
- Redhatのチュートリアル(https://redhat-developer-demos.github.io/knative-tutorial/knative-tutorial/index.html)
→少しバージョンが古い(v0.19)が、Apache Kafkaとの連携もカバー
© 2021 NTT DATA Corporation
© 2021 NTT DATA Corporation 40
(参考) CloudEvent traces
トレース機能を有効化することで、Evetingコンポーネントの通信を可視化できる(Zipkin 、Jaegerに対応)。
以下はzipkinの表示例。
※https://knative.dev/docs/eventing/accessing-traces/
© 2021 NTT DATA Corporation 41
(参考) CNCFによるサーバレスに関する調査結果
※https://www.cncf.io/wp-content/uploads/2020/11/CNCF_Survey_Report_2020.pdf
© 2021 NTT DATA Corporation 42
(参考) Source
Knativeコミュニティで開発されているSourceが多数ある。自作することも可能。
※ https://knative.dev/docs/eventing/sources/#knative-sources
© 2021 NTT DATA Corporation 43
(参考) Eventing カスタムリソース
Eventingをインストールすると、以下のCRD(カスタムリソース定義)が作成される。
# kubectl api-resources --api-group=sources.knative.dev
NAME SHORTNAMES APIGROUP NAMESPACED KIND
apiserversources sources.knative.dev true ApiServerSource
containersources sources.knative.dev true ContainerSource
pingsources sources.knative.dev true PingSource
sinkbindings sources.knative.dev true SinkBinding
# kubectl api-resources --api-group=messaging.knative.dev
NAME SHORTNAMES APIGROUP NAMESPACED KIND
channels ch messaging.knative.dev true Channel
inmemorychannels imc messaging.knative.dev true InMemoryChannel
subscriptions sub messaging.knative.dev true Subscription
# kubectl api-resources --api-group=eventing.knative.dev
NAME SHORTNAMES APIGROUP NAMESPACED KIND
brokers eventing.knative.dev true Broker
eventtypes eventing.knative.dev true EventType
triggers eventing.knative.dev true Trigger

Weitere ähnliche Inhalte

Was ist angesagt?

わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48Preferred Networks
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要Etsuji Nakai
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるKohei Tokunaga
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能Kohei Tokunaga
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所Toru Makabe
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜Preferred Networks
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)NTT DATA Technology & Innovation
 
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...Preferred Networks
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...whywaita
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 

Was ist angesagt? (20)

わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 

Ähnlich wie Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)

入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) NTT DATA Technology & Innovation
 
Snowflakeって実際どうなの?数多のDBを使い倒した猛者が語る
Snowflakeって実際どうなの?数多のDBを使い倒した猛者が語るSnowflakeって実際どうなの?数多のDBを使い倒した猛者が語る
Snowflakeって実際どうなの?数多のDBを使い倒した猛者が語るRyota Shibuya
 
202007 contrail cloud-operator-contrail_v1.2
202007 contrail cloud-operator-contrail_v1.2202007 contrail cloud-operator-contrail_v1.2
202007 contrail cloud-operator-contrail_v1.2Hiromi Tsukamoto
 
Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...
Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...
Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...Mickey Miki
 
少人数チームでのkubernetesへの移行事例
少人数チームでのkubernetesへの移行事例少人数チームでのkubernetesへの移行事例
少人数チームでのkubernetesへの移行事例Rakuten Group, Inc.
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)NTT DATA Technology & Innovation
 
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステムOCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステムオラクルエンジニア通信
 
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成Takashi Kanai
 
Introduction to Magnum (JP)
Introduction to Magnum (JP)Introduction to Magnum (JP)
Introduction to Magnum (JP)Motohiro OTSUKA
 
02_運用コスト削減に向けた情報管理を!最新Hinemos ver.6.2の全体像
02_運用コスト削減に向けた情報管理を!最新Hinemos ver.6.2の全体像02_運用コスト削減に向けた情報管理を!最新Hinemos ver.6.2の全体像
02_運用コスト削減に向けた情報管理を!最新Hinemos ver.6.2の全体像Hinemos
 
Hinemosで統合管理できる!NTTコミュニケーションズのクラウドサービス
Hinemosで統合管理できる!NTTコミュニケーションズのクラウドサービスHinemosで統合管理できる!NTTコミュニケーションズのクラウドサービス
Hinemosで統合管理できる!NTTコミュニケーションズのクラウドサービスHinemos
 
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)NTT DATA Technology & Innovation
 
データが覗いたOpenStack Summit Vancouver
データが覗いたOpenStack Summit Vancouverデータが覗いたOpenStack Summit Vancouver
データが覗いたOpenStack Summit VancouverKentaro Takeda
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)NTT DATA Technology & Innovation
 
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携についてHinemos
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengewhywaita
 

Ähnlich wie Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料) (20)

入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
 
Snowflakeって実際どうなの?数多のDBを使い倒した猛者が語る
Snowflakeって実際どうなの?数多のDBを使い倒した猛者が語るSnowflakeって実際どうなの?数多のDBを使い倒した猛者が語る
Snowflakeって実際どうなの?数多のDBを使い倒した猛者が語る
 
202007 contrail cloud-operator-contrail_v1.2
202007 contrail cloud-operator-contrail_v1.2202007 contrail cloud-operator-contrail_v1.2
202007 contrail cloud-operator-contrail_v1.2
 
Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...
Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...
Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...
 
少人数チームでのkubernetesへの移行事例
少人数チームでのkubernetesへの移行事例少人数チームでのkubernetesへの移行事例
少人数チームでのkubernetesへの移行事例
 
Aws summit tokyo 2016
Aws summit tokyo 2016Aws summit tokyo 2016
Aws summit tokyo 2016
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
 
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステムOCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
 
Accel series 2021 Winter
Accel series 2021 WinterAccel series 2021 Winter
Accel series 2021 Winter
 
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
 
Introduction to Magnum (JP)
Introduction to Magnum (JP)Introduction to Magnum (JP)
Introduction to Magnum (JP)
 
02_運用コスト削減に向けた情報管理を!最新Hinemos ver.6.2の全体像
02_運用コスト削減に向けた情報管理を!最新Hinemos ver.6.2の全体像02_運用コスト削減に向けた情報管理を!最新Hinemos ver.6.2の全体像
02_運用コスト削減に向けた情報管理を!最新Hinemos ver.6.2の全体像
 
Hinemosで統合管理できる!NTTコミュニケーションズのクラウドサービス
Hinemosで統合管理できる!NTTコミュニケーションズのクラウドサービスHinemosで統合管理できる!NTTコミュニケーションズのクラウドサービス
Hinemosで統合管理できる!NTTコミュニケーションズのクラウドサービス
 
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
 
データが覗いたOpenStack Summit Vancouver
データが覗いたOpenStack Summit Vancouverデータが覗いたOpenStack Summit Vancouver
データが覗いたOpenStack Summit Vancouver
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
 
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
 

Mehr von NTT DATA Technology & Innovation

OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

Mehr von NTT DATA Technology & Innovation (20)

OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Kürzlich hochgeladen

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Kürzlich hochgeladen (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)

  • 1. © 2021 NTT DATA Corporation Knative Eventing 入門 2021年6月22日 NTTデータ 北村 卓也
  • 2. © 2021 NTT DATA Corporation 2 自己紹介 北村 卓也 (twitter:@ch03121) ・所属:NTTデータ ・仕事:BtoBなサービスのインフラ構築/運用 Kubernetesの勉強中 ・趣味:化石・鉱物採集 ↑岩手県で採集してきた水晶
  • 3. © 2021 NTT DATA Corporation 3 アジェンダ 1. Knative Eventing 概要 2. Eventingのカスタムリソース紹介 3.BrokerとTriggerを活用したイベント配信例 4. まとめ
  • 4. © 2021 NTT DATA Corporation 4 注意 ・掲載内容は個人の見解であり、所属する企業や組織の立場、戦略、意見を 代表するものではありません。 ・記載されている会社名、商品名、又はサービス名は、 各社の登録商標又は商標です。
  • 5. © 2021 NTT DATA Corporation 5 Knative Eventing 概要
  • 6. © 2021 NTT DATA Corporation 6 Knativeとは Kubernetesにけおけるサーバーレスアプリケーションのデプロイ・管理のプロセスを簡略化するOSS。 GCPのCloudRunの基盤にも活用されている。 <ユースケース>  サーバーレスアプリケーションを、異なるプラットフォーム(各種クラウド、オンプレミス)に同じ仕組みで動かしたい ・Knativeが動作するKubernetes上であれば、アプリケーションを改修せずに 異なるプラットフォームでデプロイ、動作可能 ・サーバーレスの欠点であるクラウドベンダへのロックインを回避できる  Kubernetes上でイベントドリブンなアプリケーションを実行したい ・イベントの検知や配信の仕組みはKnativeに任せられるので、アプリケーション側での実装が不要。 ・様々なイベントソース(AWS SQS、Apache Kafka、FTPアップロード等)が利用可能
  • 7. © 2021 NTT DATA Corporation 7 Knativeとは  ServingとEventingという2つのコンポーネントで構成されている。 それぞれ個別にインストール、使用することが可能。 • Serving Kubernetes上へのコンテナデプロイを簡略化。 オートスケーリング(ゼロスケール可)、デプロイした構成のリビジョン管理などを実現。 • Eventing イベントを契機にkubernetes上で処理を実行できるようにしてくれる。 イベントソース(GithubWebhooks、Kafka等)とコンシューマ(Kubernetes、KnativeのService等)の 関連付けの抽象化を行う。 Kubernetes Novice Tokyo #9のセッション 「KnativeでKubernetesをラクにする」(@mochizuki875) をご覧ください!
  • 8. © 2021 NTT DATA Corporation 8 Eventingとは イベントの検知、Kubernetes上のアプリケーションへの配信を行うコンポーネント ・Event Producerの違いをEventingが吸収してくれるので、アプリケーション側での個別実装が不要。 ・クラウドベンダのマネジメントサービスを使わずに、イベントドリブンな処理を実装できる(ベンダロックイン回避)。 Knative Eventing Event Producer Kubernetes上の アプリケーション (Service) イベント例) ・メッセージキュー(OSS、クラウド…)へのパブリッシュ ・KubernetesAPIserver ・FTPアップロード ・Githubへのプッシュ イベント検知/取得 イベント配信 CloudEvents仕様
  • 9. © 2021 NTT DATA Corporation 9 (補足) CloudEvents  イベントデータを記述するための共通仕様。 Cloud Native Computing Foundation(CNCF)が推進。 2019年にversio1.0に到達。  クラウド内でのイベント記述仕様はクラウドベンダ毎に異なる。 マルチクラウド構成の場合、クラウド間でのイベントのやり取りも想定される。 →イベントの記述仕様を標準化して、クラウド間連携の運用性を高める。  CloudEvents仕様を採用しているサービス、OSS ・Google Cloud Eventarc ・Azure Event Grid ・Alibaba Cloud EventBridge ・Vmware Event Broker Appliance ・Knative ・OpenFaaS etc… ※ https://cloudevents.io/
  • 10. © 2021 NTT DATA Corporation 10 (補足) CloudEvents  CloudEvents仕様に必須の属性は以下。 これらをHTTPリクエストのヘッダに入れる必要がある。 ・ce-specversion:CloudEventsのバージョン。 ・ce-type:イベントタイプ。ルーティングやモニタリング、 ポリシー適用などに使われる属性。 ・ce-source:イベントの発生元。 ・ce-id:プロデューサーの範囲内で一意であるID。 POST /event HTTP/1.0 Host: example.com Content-Type: application/json ce-specversion: 1.0 ce-type: repo.newItem ce-source: http://bigco.com/repo ce-id: 610b6dd4-c85d-417b-b58f-3771e532 { "action": "newItem", "itemID": "93" } ↓CloudEventsに準拠したHTTPリクエストの例 ※https://github.com/cloudevents/spec
  • 11. © 2021 NTT DATA Corporation 11 Eventingのカスタムリソース
  • 12. © 2021 NTT DATA Corporation 12 Eventing カスタムリソース Event Producer Event consumer Source Trigger(1) Service (APP-2) Service (APP-1) Broker Trigger(2) Subscription(1) Subscription(2) Channel フィルタ 検知/取得 配信 配信 配信 Eventingをインストールすると、カスタムリソース定義が作成される。 それらカスタムリソースを使用することで、イベントドリブンな処理を実現できる。 フィルタ
  • 13. © 2021 NTT DATA Corporation 13 Source ・イベントを検知し、Sink(配信先)に配信するリソース。配信する際は、CloudEvents仕様に変換を行う。 ・Producer(イベント発生元)に対応する様々なリソースが存在し、 Event Producerに応じて選択、作成する。 例) APIServerSource:K8sのリソース操作を検知してイベント発行 KafkaSource:ApacheKafkaのメッセージを検知してイベント発行 PingSource:定期的にイベントを生成する AwsSqsSource:AWS SQSのメッセージを検知してイベント発行 ・右の例は、「my-cluster-kafka-bootstrap.kafka:9092」 というApache Kafkaの「my-topic」にメッセージが登録されたら、 「event-display」Serviceに配信するKafkaSource。 apiVersion: sources.knative.dev/v1beta1 kind: KafkaSource metadata: name: kafka-source spec: consumerGroup: knative-group bootstrapServers: - my-cluster-kafka-bootstrap.kafka:9092 topics: - my-topic sink: ref: apiVersion: v1 kind: Service name: event-display
  • 14. © 2021 NTT DATA Corporation 14 例:Sourceのみ使用する場合 Event consumer Service (APP-2) Event Producer Service (APP-1) Source 検知/取得 Sourceが指定できる配信先(sink)は1つだけ。また、配信失敗時はイベントが消失する。 イベントの発生を検知して イベント内容をCloudEvents仕様の HTTPリクエストに変換して、配信する 配信 POST /event HTTP/1.0 Host: example.com Content-Type: application/json ce-specversion: 1.0 ce-type: repo.newItem ce-source: http://bigco.com/repo ce-id: 610b6dd4-c85d-417b-b58f-3771e532 { "action": "newItem", "itemID": "93" }
  • 15. © 2021 NTT DATA Corporation 15 Channel ・イベントの保存と、配信を行う。以下から選択して実装する。 ・In-Memory Channel →シンプルでインストールも楽だが、永続性はないので、開発用 ・Apache Kafka Channel ・NATS Channel ・Google Cloud Pub/Sub Channel ※作成例 # cat channel.yaml apiVersion: messaging.knative.dev/v1beta1 kind: InMemoryChannel metadata: name: channel # kubectl apply -f channel.yaml inmemorychannel.messaging.knative.dev/channel created # kubectl get channel NAME URL AGE READY REASON inmemorychannel.messaging.knative.dev/channel http://channel-kn-channel.default.svc.cluster.local 2m4s True プロダクション環境で使う場合は、これらを検討
  • 16. © 2021 NTT DATA Corporation 16 Subscription ・Channelと配信先(subscriber)の紐づけを定義する。 配信のリトライ設定も可能。 ・右の例は、「eventinghello-ch」というchannelにあるイベントを 「eventinghello」というKnativeServiceに送るSubscription。 ・subscriberはchannelにすることもできるので、 以下のような複雑な制御も可能。 apiVersion: messaging.knative.dev/v1beta1 kind: Subscription metadata: name: eventinghelloa-sub spec: channel: apiVersion: messaging.knative.dev/v1beta1 kind: Channel name: eventinghello-ch subscriber: ref: apiVersion: serving.knative.dev/v1 kind: Service name: eventinghello ※https://medium.com/google-cloud/knative-eventing-delivery-methods-79d4ebe30a68
  • 17. © 2021 NTT DATA Corporation 17 例:Channel、Subscriptionを導入した場合 多数の配信先(subscriber)がイベントを受け取ることができる。 また、配信失敗時にイベントは消失せず、再配信が試行される。 Event Producer Event consumer Source Service (APP-2) Service (APP-1) Subscription(1) Subscription(2) Channel 検知/取得 配信 配信 配信 イベントをChannelに配信 イベントを保存した上で、 subscriptionに定義された subscriberへ配信
  • 18. © 2021 NTT DATA Corporation 18 Broker ・イベントを保存した上で Triggerによって定義されたフィルタリングを行い、 配信するリソース。 ・基本的な実装であるMT-Channel-based Brokerは 内部的にChannelを利用するので、 Channelと同様、実装をin-memory、Kafka等から選択して 「config-br-defaults」Configmapに設定しておく必要がある。 apiVersion: eventing.knative.dev/v1 kind: Broker metadata: name: default namespace: default annotations: eventing.knative.dev/broker.class: MTChannelBasedBroker spec: config: apiVersion: v1 kind: ConfigMap name: config-br-default-channel namespace: knative-eventing delivery: deadLetterSink: ref: kind: Service namespace: example-namespace name: example-service apiVersion: v1 uri: example-uri retry: 5 backoffPolicy: exponential backoffDelay: "2007-03-01T13:00:00Z/P1Y2M10DT2H30M"
  • 19. © 2021 NTT DATA Corporation 19 Trigger ・Brokerでのフィルタリングと配信先を定義するリソース。 HTTPヘッダ(CloudEvents属性/拡張属性)での完全一致フィルタリングをサポートしている。 ・右の例は、「default」brokerにある、 typeが「dev.knative.foo.bar」かつmyextensionが 「my-extension-value」のイベントのみ、 「my-service」Serviceに配信する場合。 ・filterはAND条件なので、OR条件を使いたい場合は、 Triggerが複数必要。 ・subscriberは複数定義できないので、同じフィルタ条件で 複数のsubscriberに配信したい場合は、Triggerが複数必要。 apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: my-service-trigger spec: broker: default filter: attributes: type: dev.knative.foo.bar myextension: my-extension-value subscriber: ref: apiVersion: v1 kind: Service name: my-service
  • 20. © 2021 NTT DATA Corporation 20 Broker、TriggerとChannel、Subscriptionの関係 ・Brokerを作成すると、使用するChannelが自動作成される。 # kubectl get broker NAME URL AGE READY REASON default http://broker-ingress.knative-eventing.svc.cluster.local/default/default 6s True # kubectl get channel NAME URL AGE READY REASON inmemorychannel.messaging.knative.dev/default-kne-trigger http://default-kne-trigger-kn-channel.default.svc.cluster.local 6m55s True # kubectl get trigger NAME BROKER SUBSCRIBER_URI AGE READY REASON trigger1 default http://service1.default.svc.cluster.local 8s True # kubectl get subscription NAME AGE READY REASON default-trigger1-50178dee-e2ed-4ed7-b77e-21752093d629 14s True ・Triggerを作成すると、必要なSubscriptionが自動作成される。
  • 21. © 2021 NTT DATA Corporation 21 例:Broker、Triggerを導入した場合 イベントを、その属性に応じてフィルタリングし、適切なsubscriberへ配信できる。 イベントはChannelに保存されているため、配信失敗時にイベントは消失せず、再配信が試行される。 Event Producer Event consumer Source Trigger(1) Service (APP-2) Service (APP-1) Broker Trigger(2) Subscription(1) Subscription(2) Channel フィルタ 検知/取得 配信 配信 配信 フィルタ イベントをBrokerに配信 Channelにイベントを保存した上で、 Triggerに定義された条件に従って subscriberへ配信
  • 22. © 2021 NTT DATA Corporation 22 Broker、Trigger導入のメリット ・複雑なイベント配信を行う場合、Broker、Triggerを使うことでリソースの作成、管理が簡単になる。 ※https://github.com/meteatamel/knative-tutorial/blob/master/docs/complexdeliverywithreply.md ※https://github.com/meteatamel/knative-tutorial/blob/master/docs/brokertrigger.md ■Brokerを使わない場合 Sourceからのイベント配信用と、Service2からService3への 連携用の2つのchannelが必要になる。 また、Subscriptionもユーザ側で作成することになる。 →管理が大変 ■Brokerを使う場合 Triggerの設定によって、1つのBrokerで様々な配信を行える。 Subscriptionも自動で作成してくれる。 →Triggerを管理するだけでOK
  • 23. © 2021 NTT DATA Corporation 23 カスタムリソース まとめ Event Producer Event consumer Source Trigger(1) Service (APP-2) Service (APP-1) Broker Trigger(2) Subscription(1) Subscription(2) Channel フィルタ 検知/取得 配信 配信 配信 以下のカスタムリソースを使用することで、イベントドリブンな処理を実現できる。 フィルタ
  • 24. © 2021 NTT DATA Corporation 24 カスタムリソース まとめ Event Producer Event consumer Source Trigger(1) Service (APP-2) Service (APP-1) Broker Trigger(2) Subscription(1) Subscription(2) Channel フィルタ 検知/取得 配信 配信 配信 以下のカスタムリソースを使用することで、イベントドリブンな処理を実現できる。 フィルタ イベントを検知して、 CloudEvents形式の HTTPリクエスト に変換する CloudEvents形式のリクエストを アプリケーションに配信する ・1つのイベントを複数の宛先に送信する ・リクエスト内容に応じた宛先に配信する
  • 25. © 2021 NTT DATA Corporation 25 BrokerとTriggerを 活用したイベント配信例
  • 26. © 2021 NTT DATA Corporation 26 BrokerとTriggerを活用したイベント配信例 Brokerにce-typeの異なるイベントを送信し、Triggerの設定に従って配信先が振り分けられることを確認する。 ・「ce-type:aloha」のイベント→「eventingaloha」Serviceに配信 ・「ce-type:bonjour」のイベント→「eventingbonjour」Serviceに配信 ※Sourceの代わりにcurlを使って、手動でイベントをBrokerに配信している。 curlコマンド Trigger (aloha) Service (eventingaloha) Broker Trigger (bonjour) Subscription Subscription Channel フィルタ 配信 配信 配信 フィルタ ①Broker宛てに、CloudEvents仕様で HTTPリクエストを送信 Service (eventingbonjour) ②ce-typeの値に応じて、 適切なServiceにイベントを配信 ※https://redhat-developer-demos.github.io/knative-tutorial/knative-tutorial/index.html ③受け取ったイベントを確認 ※受け取ったイベントを出力するだけのAP
  • 27. © 2021 NTT DATA Corporation 27 BrokerとTriggerを活用したイベント配信例 配信先となるPodを作成し、ClusterIPで公開する。 # kubectl get service eventingaloha NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE eventingaloha ClusterIP 10.104.233.136 <none> 80/TCP 5m17s # kubectl get service eventingbonjour NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE eventingbonjour ClusterIP 10.99.168.47 <none> 80/TCP 5m21 # kubectl get pod NAME READY STATUS RESTARTS AGE eventingaloha-v1-deployment-794c9dcdcd-sh5c2 1/1 Running 0 6m1s eventingbonjour-v1-deployment-7ccf8f4f74-jsqfq 1/1 Running 0 6m1s
  • 28. © 2021 NTT DATA Corporation 28 BrokerとTriggerを活用したイベント配信例 Brokerを作成する。 ※sugar-controllerというKnativeの拡張機能により、「eventing.knative.dev/injection=enabled」という labelを付けたnamespaceにBrokerが自動作成される。 # kubectl label namespace default eventing.knative.dev/injection=enabled namespace/default labeled # kubectl get broker NAME URL AGE READY REASON default http://broker-ingress.knative-eventing.svc.cluster.local/default/default 4s True Brokerのエンドポイント。 ここにPOSTすればイベントをBrokerに登録できる。
  • 29. © 2021 NTT DATA Corporation 29 BrokerとTriggerを活用したイベント配信例 「ce-type:aloha」のイベントを「eventingaloha」Serviceに配信するTriggerを作成 # cat trigger-aloha.yaml apiVersion: eventing.knative.dev/v1beta1 kind: Trigger metadata: name: aloha spec: filter: attributes: type: aloha subscriber: ref: apiVersion: v1 kind: Service name: eventingaloha # kubectl apply -f trigger-aloha.yaml trigger.eventing.knative.dev/aloha created # kubectl get trigger aloha NAME BROKER SUBSCRIBER_URI AGE READY REASON aloha default http://eventingaloha.default.svc.cluster.local/ 14s True
  • 30. © 2021 NTT DATA Corporation 30 BrokerとTriggerを活用したイベント配信例 「ce-type:bonjour」のイベントを「eventingbonjour」Serviceに配信するTriggerを作成 # cat trigger-bonjour.yaml apiVersion: eventing.knative.dev/v1beta1 kind: Trigger metadata: name: bonjour spec: filter: attributes: type: bonjour subscriber: ref: apiVersion: v1 kind: Service name: eventingbonjour # kubectl apply -f trigger-bonjour.yaml trigger.eventing.knative.dev/bonjour created # kubectl get trigger bonjour NAME BROKER SUBSCRIBER_URI AGE READY REASON bonjour default http://eventingbonjour.default.svc.cluster.local/ 6s True
  • 31. © 2021 NTT DATA Corporation 31 BrokerとTriggerを活用したイベント配信例 BrokerとTriggerを作成したので、ChannelとSubscriptionが自動的に作成されている。 # kubectl get channel NAME URL AGE READY REASON inmemorychannel.messaging.knative.dev/default-kne-trigger http://default-kne-trigger-kn-channel.default.svc.cluster.local 3m51s True # kubectl get subscription NAME AGE READY REASON default-aloha-ab84b7e5-a363-43fb-90c8-e2e5c5fcd926 4m32s True default-bonjour-9c99f6e7-b97e-4909-a519-7c9c00b2f24f 101s True
  • 32. © 2021 NTT DATA Corporation 32 BrokerとTriggerを活用したイベント配信例 Brokerへイベントを登録するためのPodを起動してログインする。 # cat curler.yaml apiVersion: v1 kind: Pod metadata: labels: run: curler name: curler spec: containers: - name: curler image: fedora:29 tty: true # kubectl apply -f curler.yaml pod/curler created # kubectl exec -it curler -- /bin/bash
  • 33. © 2021 NTT DATA Corporation 33 BrokerとTriggerを活用したイベント配信例 type:alohaのイベントをBrokerに対しHTTP POSTすると、 eventingalohaのみにイベントが届く。 [root@curler /]# curl -v "http://broker-ingress.knative-eventing.svc.cluster.local/default/default" -X POST -H "Ce-Id: say-hello" -H "Ce-Specversion: 1.0" -H "Ce-Type: aloha" -H "Ce-Source: mycurl" -H "Content-Type: application/json" -d '{"key":"from a curl"}' # kubectl logs eventingaloha-v1-deployment-794c9dcdcd-sh5c2 -f 2021-06-06 11:09:17,838 INFO [eventing-hello] (executor-thread-1) ce-id=say-hello 2021-06-06 11:09:17,840 INFO [eventing-hello] (executor-thread-1) ce-source=mycurl 2021-06-06 11:09:17,840 INFO [eventing-hello] (executor-thread-1) ce-specversion=1.0 2021-06-06 11:09:17,841 INFO [eventing-hello] (executor-thread-1) ce-time=null 2021-06-06 11:09:17,841 INFO [eventing-hello] (executor-thread-1) ce-type=aloha 2021-06-06 11:09:17,842 INFO [eventing-hello] (executor-thread-1) content-type=application/json 2021-06-06 11:09:17,843 INFO [eventing-hello] (executor-thread-1) content-length=21 2021-06-06 11:09:17,843 INFO [eventing-hello] (executor-thread-1) POST:{"key":"from a curl"} Eventingaloha Podのログを確認すると、POSTしたイベントが届いていることが確認できる。
  • 34. © 2021 NTT DATA Corporation 34 BrokerとTriggerを活用したイベント配信例 type:bonjourのイベントをBrokerに対しHTTP POSTすると、 eventingbonjourのみにイベントが届く。 [root@curler /]# curl -v "http://broker-ingress.knative-eventing.svc.cluster.local/default/default" -X POST -H "Ce-Id: say-hello" -H "Ce-Specversion: 1.0" -H "Ce-Type: bonjour" -H "Ce-Source: mycurl" -H "Content-Type: application/json" -d '{"key":"from a curl"}' # kubectl logs eventingbonjour-v1-deployment-7ccf8f4f74-jsqfq –f 2021-06-06 11:12:46,406 INFO [eventing-hello] (executor-thread-1) ce-id=say-hello 2021-06-06 11:12:46,406 INFO [eventing-hello] (executor-thread-1) ce-source=mycurl 2021-06-06 11:12:46,407 INFO [eventing-hello] (executor-thread-1) ce-specversion=1.0 2021-06-06 11:12:46,408 INFO [eventing-hello] (executor-thread-1) ce-time=null 2021-06-06 11:12:46,408 INFO [eventing-hello] (executor-thread-1) ce-type=bonjour 2021-06-06 11:12:46,409 INFO [eventing-hello] (executor-thread-1) content-type=application/json 2021-06-06 11:12:46,409 INFO [eventing-hello] (executor-thread-1) content-length=21 2021-06-06 11:12:46,409 INFO [eventing-hello] (executor-thread-1) POST:{"key":"from a curl"} Eventing bonjour Podのログを確認すると、POSTしたイベントが届いていることが確認できる。
  • 35. © 2021 NTT DATA Corporation 35 BrokerとTriggerを活用したイベント配信例 ChannelやBrokerの実体はknative-eventing namespaceにあるPodなので、 これらのPodログを確認すると、配信の状況や配信先が分かる。 ※Channelについてはimc-dispatcher、 Brokerはmt-broker-ingress、mt-broker-filterを見る。 # kubectl get pod -n knative-eventing NAME READY STATUS RESTARTS AGE eventing-controller-bc75b6c59-f876r 1/1 Running 0 19d eventing-webhook-ff58dfd96-lxvjf 1/1 Running 0 19d imc-controller-5676bcf5b7-lhhrv 1/1 Running 0 19d imc-dispatcher-88b5494f6-748t2 1/1 Running 0 19d mt-broker-controller-bbb65f58f-g2k5x 1/1 Running 0 19d mt-broker-filter-5c79bbf754-xz26t 1/1 Running 0 19d mt-broker-ingress-dc4b5d9d9-22nrl 1/1 Running 0 19d pingsource-mt-adapter-75754554d-9hdxc 1/1 Running 0 19d sugar-controller-7cc844bff6-5ltd6 1/1 Running 0 19d
  • 36. © 2021 NTT DATA Corporation 36 まとめ
  • 37. © 2021 NTT DATA Corporation 37 まとめ ・Eventingはイベントの検知、CloudEventsへの変換、配信を行う。 アプリケーションはCloudEvents仕様のHTTPリクエストを受けるだけでよい。 ・Kubernetes上であれば、同じ仕組みでイベントドリブンな処理を実装できる。 これにより、サーバーレスアプリケーションのポータビリティが向上する。 ・Knativeの最新バージョンはv0.23で、まだ正式リリース(v1)には到達していない。 プロダクション環境へ導入するのであれば商用Knative製品(※)がよいと思う。 ※Google Cloud Run for Anthos、Red Hat Openshift Serverlessなど
  • 38. © 2021 NTT DATA Corporation 38 まとめ ※触ってみるなら以下がおすすめ - Googleの方が公開しているチュートリアル(https://github.com/meteatamel/knative-tutorial) →最新バージョン(v0.23)まで対応している - Redhatのチュートリアル(https://redhat-developer-demos.github.io/knative-tutorial/knative-tutorial/index.html) →少しバージョンが古い(v0.19)が、Apache Kafkaとの連携もカバー
  • 39. © 2021 NTT DATA Corporation
  • 40. © 2021 NTT DATA Corporation 40 (参考) CloudEvent traces トレース機能を有効化することで、Evetingコンポーネントの通信を可視化できる(Zipkin 、Jaegerに対応)。 以下はzipkinの表示例。 ※https://knative.dev/docs/eventing/accessing-traces/
  • 41. © 2021 NTT DATA Corporation 41 (参考) CNCFによるサーバレスに関する調査結果 ※https://www.cncf.io/wp-content/uploads/2020/11/CNCF_Survey_Report_2020.pdf
  • 42. © 2021 NTT DATA Corporation 42 (参考) Source Knativeコミュニティで開発されているSourceが多数ある。自作することも可能。 ※ https://knative.dev/docs/eventing/sources/#knative-sources
  • 43. © 2021 NTT DATA Corporation 43 (参考) Eventing カスタムリソース Eventingをインストールすると、以下のCRD(カスタムリソース定義)が作成される。 # kubectl api-resources --api-group=sources.knative.dev NAME SHORTNAMES APIGROUP NAMESPACED KIND apiserversources sources.knative.dev true ApiServerSource containersources sources.knative.dev true ContainerSource pingsources sources.knative.dev true PingSource sinkbindings sources.knative.dev true SinkBinding # kubectl api-resources --api-group=messaging.knative.dev NAME SHORTNAMES APIGROUP NAMESPACED KIND channels ch messaging.knative.dev true Channel inmemorychannels imc messaging.knative.dev true InMemoryChannel subscriptions sub messaging.knative.dev true Subscription # kubectl api-resources --api-group=eventing.knative.dev NAME SHORTNAMES APIGROUP NAMESPACED KIND brokers eventing.knative.dev true Broker eventtypes eventing.knative.dev true EventType triggers eventing.knative.dev true Trigger