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
AKS + Azure Event Hubs で試す Dapr の Resource Bindings Masahiko Utsunomiya 2019/12/24 Microsoft Open Tech Night #3
Slide 2
Slide 2 text
1 #mstechnight 掲載内容は個人の見解であり、 所属する企業や組織の立場、戦略、意見を 代表するものではありません
Slide 3
Slide 3 text
2 #mstechnight Whois ✓ 金融分野のお客様のクラウド導入支援 ✓ 興味:Observability(Prometheus, Fluentd, Loki, Jaeger, etc.) ✓ Grafana Loki コントリビュータ Helm Chart のメンテナンスなどしています polar3130 Masahiko Utsunomiya Infrastructure Engineer / Relationship Builder
Slide 4
Slide 4 text
3 #mstechnight 制作に参加した書籍がでました “Kubernetes ポケットリファレンス” ISBN : 978-4-297-10957-8 2019/11/16発売 技術評論社より 主にレビュアとして参加、 本編・コラムの一部執筆も担当させて頂きました
Slide 5
Slide 5 text
4 #mstechnight Dapr とは イベント駆動・多言語対応・ステート管理可能な、オープンソースの 分散アプリケーション向けランタイム https://github.com/dapr
Slide 6
Slide 6 text
5 #mstechnight Dapr の使い方 アプリケーションは HTTP/gRPC で Dapr API にアクセス Dapr API はサイドカーで提供されるため、アプリケーションにランタイムコードを含める必要はない https://github.com/dapr/docs/blob/master/overview.md
Slide 7
Slide 7 text
6 #mstechnight Daprの使い方(Kubernetes mode) 3つの統合サービスが展開され、分散アプリケーションの実行をサポート Dapr Actor placement アクターパターンを実装する際に利用する アクターセット全体の状態管理、配置、操作 Dapr Sidecar-injector Deployment に付与された Annotations に基づき Admission Webhook により Dapr サイドカーを注入 Dapr Operator kind: Component として外部リソースを抽象化 ランタイムへ Component の変更を通知
Slide 8
Slide 8 text
7 #mstechnight Microservice building blocks としての Dapr 大別して6つの機能を提供 https://github.com/dapr/docs/blob/master/overview.md
Slide 9
Slide 9 text
8 #mstechnight Resource Bindings スケーラビリティと回復性を備えた、外部リソースとの連携機能 外部リソースのイベントをトリガにアプリケーションを呼び出せる アプリケーションから外部リソースの実装を意識することなく呼び出せる https://github.com/dapr/docs/blob/master/concepts/bindings
Slide 10
Slide 10 text
9 #mstechnight Sample で Dapr Bindings に入門 AKS 上で Kafka を展開、Dapr Component としてアプリケーションと連携 https://github.com/dapr/samples/tree/master/5.bindings
Slide 11
Slide 11 text
10 #mstechnight 想定シナリオ Dapr Sidecar-Injector Dapr Operator Dapr Actor placement
Slide 12
Slide 12 text
11 #mstechnight Kafka を用いた Input / Output Bindings • AKS クラスタを用意
Slide 13
Slide 13 text
12 #mstechnight Kafka を用いた Input / Output Bindings • AKS クラスタを用意 • Dapr の各サービスを展開 Dapr Sidecar-Injector Dapr Operator Dapr Actor placement $ dapr init --kubernetes
Slide 14
Slide 14 text
13 #mstechnight Kafka を用いた Input / Output Bindings • AKS クラスタを用意 • Dapr の各サービスを展開 • Kafka を Helm で展開 Dapr Sidecar-Injector Dapr Operator Dapr Actor placement
Slide 15
Slide 15 text
14 #mstechnight Kafka を用いた Input / Output Bindings Dapr Sidecar-Injector Dapr Operator Dapr Actor placement • AKS クラスタを用意 • Dapr の各サービスを展開 • Kafka を Helm で展開 • アプリケーションを展開 • Injector によりサイドカーを注入 まずは Kafka を使ったサンプルを確認
Slide 16
Slide 16 text
15 #mstechnight リソースを Event Hubs に切り替え...? (唐突な)おわり Kafka を使ったサンプルを確認 →アプリケーションへの変更なく 外部リソースを Azure Event Hubs に切替? ...ない !?
Slide 17
Slide 17 text
16 #mstechnight 続きを作ってみた Dapr Sidecar-Injector Dapr Operator Dapr Actor placement • Event Hubs を設定 • アクセスする Topic を作成 • Event Hubs Component の YAMLファイル を作成 • kafka の Component YAML ファイルと差替 • 再デプロイ
Slide 18
Slide 18 text
17 #mstechnight Sample(No.5) とその続きを実装した結果 アプリケーションは一切変更せず外部リソースを切り替えできた 注意点 • Azure Event Hubs の kafka interface は standard 以上のプランが必要 • TopicName の option を指定してもトピックは自動作成されないため、別途作成する必要がある
Slide 19
Slide 19 text
18 #mstechnight Bindings のつかいどころ ローカル/本番の環境差分を吸収 Prod Dev python.yaml node.yaml eventhubs_bindings.yaml python.yaml node.yaml kafka_bindings.yaml
Slide 20
Slide 20 text
19 #mstechnight 参考URL① Microsoft Ignite 2019 in Orlando より Azure CTO, Mark Russinovich による Dapr の各機能の解説 & デモ https://www.slideshare.net/keiomizo1/open-shiftrun2019-dapr
Slide 21
Slide 21 text
20 #mstechnight 参考URL② 日本語資料 Microsoft 大溝さんの Dapr 紹介資料(OpenShift.Run にて講演) https://www.slideshare.net/keiomizo1/open-shiftrun2019-dapr
Slide 22
Slide 22 text
21 #mstechnight まとめ Dapr の Resource Bindings の機能を紹介 アプリケーションのステート管理を仲介し、外部リソースを抽象化して取り扱うことができる 現在は 16 のリソース/プロトコルに対応、今後拡充予定 Sample(5. Bindings)の続きを実装し、コンセプトを確認 Bindings の使いどころ アプリケーション開発時のローカル/本番の環境差分を吸収できる 例えば、クラウドサービスを使ったアプリケーションのローカル環境での開発/テストなどに有効
Slide 23
Slide 23 text
Thank you for your attention!