Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A 10x Developer Framework for Any Language

A 10x Developer Framework for Any Language

We explore the basics of the Dapr project and why it is a 10x developer tool that emerged at the right time, what concrete benefits it brings to developers, operations, and architects, and understand its limitations.

Recording: https://www.youtube.com/watch?v=BZQs_0Loc5M

Bilgin Ibryam

May 17, 2023
Tweet

More Decks by Bilgin Ibryam

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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?
  4. 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
  5. 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
  6. 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
  7. 9 Output bindings Connector features • Keep your code free

    from libraries • Handle retries and failure recovery • Switch between bindings at runtime
  8. 10 Input bindings Connector features • Keep your code free

    from libraries • Avoid connecting to and polling • Ack, reject, route events
  9. Dapr APIs API proposals • Document Store (5146) • Offline

    APIs (4289) • Database API (3354) • Change Data Capture(?)
  10. 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?
  11. 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
  12. 15 End-to-end security Security features • In-transit encryption mTLS •

    App to/from sidecar authentication • OAuth2 authentication/authorization • API scoping
  13. 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?
  14. 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
  15. 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