Slide 1

Slide 1 text

@bibryam Bilgin Ibryam Product Manager, Diagrid A 10x Developer Framework for Any Language

Slide 2

Slide 2 text

Bilgin Ibryam 2 ● Product Manager at Diagrid ● Former Architect at Red Hat ● Former Committer at Apache Camel ● Blogger and Author ○ Camel Design Patterns ○ Kubernetes Patterns @bibryam https://k8spatterns.io

Slide 3

Slide 3 text

What is a “10x developer”, anyway? 3 Someone who is 10 times better than the worst developer? Someone who made their team or company 10 times better? Small org Large org

Slide 4

Slide 4 text

Development benefits 4

Slide 5

Slide 5 text

Cart E-commerce app Email Payment Inventory Checkout Frontend Notify Internet State Management Queue Shipping Oh no, this coordination logic requires stateful orchestration! How do I send messages to many applications? How do applications discover and call each other? How to I handle failed calls and perform retries? Developer challenges How do I connect to external systems?

Slide 6

Slide 6 text

HTTP API gRPC API Microservices written in Any cloud or edge infrastructure Application code Any code or framework… Microservices written in virtual or physical machines Dapr architecture Service-to -service invocation State management Publish and subscribe Resource bindings and triggers Actors Observability Secrets Configuration Distributed Lock

Slide 7

Slide 7 text

7 Service invocation S2S Features ● Pluggable service discovery ● End-to-end security with mTLS ● Transient failures recovery ● Observability with tracing and metrics ● Access Control with service identities ● Middleware pipeline components

Slide 8

Slide 8 text

8 Publish and subscribe Pub/Sub features ● Broker-agnostic API using Cloud Events ● Message routing and filtering ● Retries and dead letter topics ● Bulk operations (Splitter/Aggregator) ● Message Time-to-Live (TTL) ● Scoping topics for added security

Slide 9

Slide 9 text

9 Output bindings Connector features ● Keep your code free from libraries ● Handle retries and failure recovery ● Switch between bindings at runtime

Slide 10

Slide 10 text

10 Input bindings Connector features ● Keep your code free from libraries ● Avoid connecting to and polling ● Ack, reject, route events

Slide 11

Slide 11 text

Dapr APIs API proposals ● Document Store (5146) ● Offline APIs (4289) ● Database API (3354) ● Change Data Capture(?)

Slide 12

Slide 12 text

Operational benefits 12

Slide 13

Slide 13 text

Cart E-commerce app Email Payment Inventory Checkout Frontend RCM D Internet State Management Queue Shipping How do I secure access to data layer? How to trace all calls end–to-end? How do I rotate certs? How to I handle failed calls and perform retries? Operational challenges How can Devs start coding locally before cloud env is ready? How to patch this CVE quickly?

Slide 14

Slide 14 text

14 Dapr components My App ● Over 100 components available ● Swappable connection configurations ● Kubernetes operator, Helm charts State Stores Firebase Cassandra Redis Azure CosmosDB AWS DynamoDB PubSub Brokers Redis AW S SQS Azure Service Bus RabbitMQ GCP Pub/Sub Bindings & Triggers GCP Storage AWS S3 Kafka Azure Storage Twilio Secret Stores AWS Secrets Manager Azure KeyVault GCP Secret Manager HashiCorp Vault Kubernetes Secret Observability Prometheus AppInsights Jaeger Zipkin Configuration Distributed Lock Redis Redis

Slide 15

Slide 15 text

15 End-to-end security Security features ● In-transit encryption mTLS ● App to/from sidecar authentication ● OAuth2 authentication/authorization ● API scoping

Slide 16

Slide 16 text

16 End-to-end resiliency Resiliency features ● Retries, timeouts, circuit breaker ● Service invocation, components, actors

Slide 17

Slide 17 text

17 End-to-end observability Observability features ● Logs ● Metrics ● Distributed tracing

Slide 18

Slide 18 text

Architectural benefits 18

Slide 19

Slide 19 text

Cross-team and cross-project reuse Long-term alignment with business goals Architectural challenges

Slide 20

Slide 20 text

20 Architectural benefits ● Optionality and portability in multiple dimensions: ○ Polyglot ○ Multi-cloud ○ Architecture agnostic: monolith, microservice, function ● Simplifies long-term maintainability / upgradability ● Non-intrusive and extensible ● Open source: part of CNCF since 2021 Dapr drawbacks ● Mental complexity ● Additional network latency (1-2ms) ● Additional resource overhead ● Debugging and testing?

Slide 21

Slide 21 text

21 Dapr community momentum 21k GitHub stars 5.6k Discord members Contributing organizations include: +1M Docker Hub monthly pulls 2.5k Contributors +300k Unique docs views/mo +100 Components 3 year contributor growth 10/157 Largest CNCF project

Slide 22

Slide 22 text

22 https://www.diagrid.io/blog/dapr-as-a-10x-platform Day 0 Ensure consistency and portability across the organization Day 2 Operate distributed applications confidently Day 1 Create distributed applications faster In summary

Slide 23

Slide 23 text

@bibryam Thank You https://k8spatterns.io https://www.diagrid.io https://dapr.io