Slide 1

Slide 1 text

Dapr 101: start building distributed apps with ease

Slide 2

Slide 2 text

2 Azure MVP Dapr Community Manager ❤ pixel art Marc Duiker Sr Dev Advocate [email protected]

Slide 3

Slide 3 text

3

Slide 4

Slide 4 text

4 Demos! What is Dapr? When to use Dapr? 4 Why use Dapr? Q&A + swag

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

What is Dapr? 6

Slide 7

Slide 7 text

7 E-commerce system State Management Email Payment Front-end Shipping Checkout Inventory Cart Internet Queue I just want to trace my calls end-to-end. How do I encrypt calls with ongoing cert rotation? How do applications discover and call each other? How do I handle failed calls and perform retries? How do I secure access to my data layer? How do I handle state conflicts from multiple apps? How do I measure latency on my database? How do I orchestrate business logic transactions? How do I send messages to many applications? Developer challenges

Slide 8

Slide 8 text

8 Distributed application runtime

Slide 9

Slide 9 text

Dapr is a portable, event- driven, runtime for building distributed applications across cloud and edge. 9

Slide 10

Slide 10 text

10 virtual or physical machines

Slide 11

Slide 11 text

11 Why use Dapr?

Slide 12

Slide 12 text

Speeds up microservice development by providing a common set of building block APIs. 12

Slide 13

Slide 13 text

13 Service invocation State Management Publish & subscribe Bindings (input & output) Actors Secret Stores Configuration Observability Workflows Distributed Lock Building block APIs

Slide 14

Slide 14 text

14 HTTP/gRPC Dapr API Dapr sidecar Application App

Slide 15

Slide 15 text

15 POST http:// localhost:3500/v1.0/invoke/cart/method/order GET http:// localhost:3500/v1.0/state/inventory/item67 POST http:// localhost:3500/v1.0/publish/order GET http:// localhost:3500/v1.0/secrets/vault/password42 POST http:// localhost:3500/v1.0-alpha1/workflows/dapr/businessprocess/1234/start HTTP/gRPC Dapr API App

Slide 16

Slide 16 text

16 C# Python Java Script Java Go Client SDKs

Slide 17

Slide 17 text

17 10th largest CNCF project Submitted to CNCF Nov 2021 Incubation maturity level www .cncf.io/projects/dapr/ Dapr project

Slide 18

Slide 18 text

18

Slide 19

Slide 19 text

19 20.5K GitHub stars 2.5K Contributors +1M Docker pulls / month 290k Unique doc views / month 5.4k Discord members 19

Slide 20

Slide 20 text

20 Contributing organizations

Slide 21

Slide 21 text

21 Dapr users

Slide 22

Slide 22 text

22 Bindings Configuration State Management Publish & subscribe Observability Actors Secret Stores Workflows Distributed Lock Components AWS DynamoDB Azure CosmosDB GCP Firebase Redis Cassandra AWS SQS Azure Service Bus GCP Pub/Sub Redis RabbitMQ AWS Secrets mngr Azure KeyVault GCP Secret mngr HashiCorp Vault Kubernetes Secrets AWS DynamoDB Azure CosmosDB Redis MongoDB Postgres AWS S3 Azure Storage GCP Storage Twilio Kafka Jeager Zipkin Prometheus App Insights Datadog Redis Redis Azure App Configuration Dapr Workflow Building Block APIs

Slide 23

Slide 23 text

23 App CosmosDB

Slide 24

Slide 24 text

24 Sidecar App CosmosDB metadata: name: mystorage spec: type: state.azure.cosmosdb metadata: - name: value: state.save() state.get() yaml

Slide 25

Slide 25 text

25 Redis metadata: name: mystorage spec: type: state.redis metadata: - name: value: Sidecar App state.save() state.get() yaml

Slide 26

Slide 26 text

26 Dapr APIs are cloud agnostic. Do they implement the lowest common denominator?

Slide 27

Slide 27 text

27 Building block APIs are basic, by design. Dapr adds a lot of functionality.

Slide 28

Slide 28 text

28 https:// docs.dapr.io/reference/components-reference/supported-state-stores/

Slide 29

Slide 29 text

29 https:// docs.dapr.io/developing-applications/building-blocks/pubsub/pubsub-cloudevents/

Slide 30

Slide 30 text

30

Slide 31

Slide 31 text

31 Unified API with flexibility at the component level.

Slide 32

Slide 32 text

32 Is Dapr a service mesh?

Slide 33

Slide 33 text

33 No.

Slide 34

Slide 34 text

34 Dapr & service mesh similarities: Distributed Tracing Secure Communication Metric Collection

Slide 35

Slide 35 text

35 Developer centric docs.dapr.io/concepts/service-mesh/ Building block APIs & components Infrastructure centric Service mesh ≠ Network traffic & Routing

Slide 36

Slide 36 text

When to use Dapr? 36

Slide 37

Slide 37 text

37 You are in a large organisation with many different teams or tech stacks.

Slide 38

Slide 38 text

Greenfield projects: postpone your architecture decisions. 38

Slide 39

Slide 39 text

When not to use Dapr? 39

Slide 40

Slide 40 text

40 If your team is allergic to containers & Kubernetes ;)

Slide 41

Slide 41 text

Building block demos 41 github.com/dapr/quickstarts

Slide 42

Slide 42 text

42 Service invocation Checkout Order processor POST

Slide 43

Slide 43 text

43 Publish & subscribe Checkout Order processor

Slide 44

Slide 44 text

44 State Management Redis Order processor

Slide 45

Slide 45 text

45 Workflows Activity 1 Activity 3 Activity 2 End Start Chaining

Slide 46

Slide 46 text

46 Workflows Activity 1 Activity 3 Activity 2 End Start Fan-out fan-in

Slide 47

Slide 47 text

📖 docs.dapr.io 📖 Join the Dapr Discord! bit.ly/dapr-discord