Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AKS + Azure Event Hubs で試す Dapr の Resorce Binding (Microsoft Open Tech Night #3, 2019/12/24)

100 views

Published on

「AKS + Azure Event Hubs で試す Dapr の Resorce Binding」
(Microsoft Open Tech Night #3, 2019/12/24)

Masahiko Utsunomiya, NTT DATA

Published in: Technology
  • Be the first to comment

  • Be the first to like this

AKS + Azure Event Hubs で試す Dapr の Resorce Binding (Microsoft Open Tech Night #3, 2019/12/24)

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

×