Building Event-Driven Apps with Dapr in Kubernetes

Building Event-Driven Apps with Dapr in Kubernetes

Dapr (Distributed Application Runtime) is a portable, event-driven runtime that makes it easy for developers to build resilient, microservice stateless and stateful applications that run on the cloud. In this session, we will go through an overview of Dapr, how it enables distributed application development. Dapr brings proven patterns and practices to you. It unifies event-driven, and actors semantics into a simple, consistent programming model and Dapr supports all programming languages without framework lock-in. This talk goes more in-depth into these building blocks of distributed microservices such as state stores, messaging, resource bindings, etc. with demos and workflow of the deployment of services and runtime.

F90901a95c7fbb99b541e8189838cf43?s=128

Sivamuthu Kumar

August 05, 2020
Tweet

Transcript

  1. Building Event Driven Apps with Dapr in Kubernetes SivamuthuKumar August

    5, 2020
  2. Sivamuthu Kumar Technical Advisor, Architect, Dev Advocate, Cloud, Mobile, IoT,

    ML Orlando, FL ksivamuthu ksivamuthu ksivamuthu
  3. Dapr Distributed Application Runtime https://dapr.io

  4. Distributed Application Runtime Portable event-driven runtime Building event driven, stateless

    and stateful applications Building blocks for cloud and edge Standard APIs for portability and extensibility Sidecar architecture and supported infrastructures Developer language SDKs and frameworks
  5. None
  6. None
  7. Sidecar Architecture Standalone Kubernetes

  8. None
  9. Demo

  10. “frontend” “cart” Post http://localhost:3500/v1.0/invoke/cart/method/checkout { "user":"johndoe", "cart":"0001" } Post http://10.0.0.2:8000/checkout

    { "user":"johndoe", "cart":"0001" } Service invocation Microservice building blocks
  11. App “myApp” { "name": "Tatooine" } Get http://localhost:3500/v1.0/state/<store-name>/planet Post http://localhost:3500/v1.0/state/<store-name>

    [{ "key": "weapon", "value": "DeathStar" }, { "key": "planet", "value": { "name": "Tatooine" } }] key value myApp- weapon "DeathStar" myApp-planet { "name": "Tatooine" } State management: key/value Microservice building blocks State store of your choice CosmosDB AWS DynamoDB …others
  12. Subscribe Publish Post http://localhost:3500/v1.0/publish/ "topic":"order", "data":{ "user":"johndoe", "item":"ZeroDay" }, “cart”

    Publish and subscribe Microservice building blocks “shipping” Post http://10.0.0.5:8005/order "data":{ "user":"johndoe", "item":"ZeroDay" } “email” Post http://10.0.0.4:8004/order
  13. App Get / Post http://localhost:8000/trigger { "user":"johndoe" } Redis SQS

    Event Hubs Kafka Redis Kafka SQS Event Hubs Resource triggers: Input Microservice building blocks
  14. { "data": { "sku":"v100", "quantity":"50" } } Post http://localhost:3500/v1.0/bindings/myDatabase Resource

    bindings: Output Microservice building blocks App “myApp” DynamoDB Redis Event Hubs CosmosDB Kafka Twilio Redis DynamoDB Kafka Twilio Event Hubs CosmosDB
  15. App Insights Datadog Instana Jaeger SignalFX Prometheus + many more

    App Insights Azure Monitor + many more Datadog Instana Jaeger SignalFX Prometheus Distributed tracing and diagnostics Microservice building blocks App “frontend” App “backend” OpenCensus
  16. None
  17. None
  18. Reference • https://dapr.io • https://github.com/dapr • Twitter - @daprdev •

    https://dev.to/abhirockzz/dapr-qna-34m5 • Aaron Schlesinger & Jennifer Davis – CloudNative Wednesdays https://www.twitch.tv/arschles • https://github.com/ksivamuthu/cloud-dapr-demo
  19. Thank you Sivamuthu Kumar ksivamuthu