AKS + Azure Event Hubs で試す Dapr の Resource Bindings / dapr resource bindings with AKS and Event Hubs

E2640ce3612d9e7848dc957b519d8ca0?s=47 polar3130
December 24, 2019

AKS + Azure Event Hubs で試す Dapr の Resource Bindings / dapr resource bindings with AKS and Event Hubs

Microsoft Open Tech Night #3 - クラウドネイティブ編
「AKS + Azure Event Hubs で試す Dapr の Resource Bindings」のスライド資料です

E2640ce3612d9e7848dc957b519d8ca0?s=128

polar3130

December 24, 2019
Tweet

Transcript

  1. AKS + Azure Event Hubs で試す Dapr の Resource Bindings

    Masahiko Utsunomiya 2019/12/24 Microsoft Open Tech Night #3
  2. 1 #mstechnight 掲載内容は個人の見解であり、 所属する企業や組織の立場、戦略、意見を 代表するものではありません

  3. 2 #mstechnight Whois ✓ 金融分野のお客様のクラウド導入支援 ✓ 興味:Observability(Prometheus, Fluentd, Loki, Jaeger,

    etc.) ✓ Grafana Loki コントリビュータ Helm Chart のメンテナンスなどしています polar3130 Masahiko Utsunomiya Infrastructure Engineer / Relationship Builder
  4. 3 #mstechnight 制作に参加した書籍がでました “Kubernetes ポケットリファレンス” ISBN : 978-4-297-10957-8 2019/11/16発売 技術評論社より

    主にレビュアとして参加、 本編・コラムの一部執筆も担当させて頂きました
  5. 4 #mstechnight Dapr とは イベント駆動・多言語対応・ステート管理可能な、オープンソースの 分散アプリケーション向けランタイム https://github.com/dapr

  6. 5 #mstechnight Dapr の使い方 アプリケーションは HTTP/gRPC で Dapr API にアクセス

    Dapr API はサイドカーで提供されるため、アプリケーションにランタイムコードを含める必要はない https://github.com/dapr/docs/blob/master/overview.md
  7. 6 #mstechnight Daprの使い方(Kubernetes mode) 3つの統合サービスが展開され、分散アプリケーションの実行をサポート Dapr Actor placement アクターパターンを実装する際に利用する アクターセット全体の状態管理、配置、操作

    Dapr Sidecar-injector Deployment に付与された Annotations に基づき Admission Webhook により Dapr サイドカーを注入 Dapr Operator kind: Component として外部リソースを抽象化 ランタイムへ Component の変更を通知
  8. 7 #mstechnight Microservice building blocks としての Dapr 大別して6つの機能を提供 https://github.com/dapr/docs/blob/master/overview.md

  9. 8 #mstechnight Resource Bindings スケーラビリティと回復性を備えた、外部リソースとの連携機能 外部リソースのイベントをトリガにアプリケーションを呼び出せる アプリケーションから外部リソースの実装を意識することなく呼び出せる https://github.com/dapr/docs/blob/master/concepts/bindings

  10. 9 #mstechnight Sample で Dapr Bindings に入門 AKS 上で Kafka

    を展開、Dapr Component としてアプリケーションと連携 https://github.com/dapr/samples/tree/master/5.bindings
  11. 10 #mstechnight 想定シナリオ Dapr Sidecar-Injector Dapr Operator Dapr Actor placement

  12. 11 #mstechnight Kafka を用いた Input / Output Bindings • AKS

    クラスタを用意
  13. 12 #mstechnight Kafka を用いた Input / Output Bindings • AKS

    クラスタを用意 • Dapr の各サービスを展開 Dapr Sidecar-Injector Dapr Operator Dapr Actor placement $ dapr init --kubernetes
  14. 13 #mstechnight Kafka を用いた Input / Output Bindings • AKS

    クラスタを用意 • Dapr の各サービスを展開 • Kafka を Helm で展開 Dapr Sidecar-Injector Dapr Operator Dapr Actor placement
  15. 14 #mstechnight Kafka を用いた Input / Output Bindings Dapr Sidecar-Injector

    Dapr Operator Dapr Actor placement • AKS クラスタを用意 • Dapr の各サービスを展開 • Kafka を Helm で展開 • アプリケーションを展開 • Injector によりサイドカーを注入 まずは Kafka を使ったサンプルを確認
  16. 15 #mstechnight リソースを Event Hubs に切り替え...? (唐突な)おわり Kafka を使ったサンプルを確認 →アプリケーションへの変更なく

    外部リソースを Azure Event Hubs に切替? ...ない !?
  17. 16 #mstechnight 続きを作ってみた Dapr Sidecar-Injector Dapr Operator Dapr Actor placement

    • Event Hubs を設定 • アクセスする Topic を作成 • Event Hubs Component の YAMLファイル を作成 • kafka の Component YAML ファイルと差替 • 再デプロイ
  18. 17 #mstechnight Sample(No.5) とその続きを実装した結果 アプリケーションは一切変更せず外部リソースを切り替えできた 注意点 • Azure Event Hubs

    の kafka interface は standard 以上のプランが必要 • TopicName の option を指定してもトピックは自動作成されないため、別途作成する必要がある
  19. 18 #mstechnight Bindings のつかいどころ ローカル/本番の環境差分を吸収 Prod Dev python.yaml node.yaml eventhubs_bindings.yaml

    python.yaml node.yaml kafka_bindings.yaml
  20. 19 #mstechnight 参考URL① Microsoft Ignite 2019 in Orlando より Azure

    CTO, Mark Russinovich による Dapr の各機能の解説 & デモ https://www.slideshare.net/keiomizo1/open-shiftrun2019-dapr
  21. 20 #mstechnight 参考URL② 日本語資料 Microsoft 大溝さんの Dapr 紹介資料(OpenShift.Run にて講演) https://www.slideshare.net/keiomizo1/open-shiftrun2019-dapr

  22. 21 #mstechnight まとめ Dapr の Resource Bindings の機能を紹介 アプリケーションのステート管理を仲介し、外部リソースを抽象化して取り扱うことができる 現在は

    16 のリソース/プロトコルに対応、今後拡充予定 Sample(5. Bindings)の続きを実装し、コンセプトを確認 Bindings の使いどころ アプリケーション開発時のローカル/本番の環境差分を吸収できる 例えば、クラウドサービスを使ったアプリケーションのローカル環境での開発/テストなどに有効
  23. Thank you for your attention!