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. @bibryam
    Bilgin Ibryam
    Product Manager, Diagrid
    A 10x Developer Framework
    for Any Language

    View Slide

  2. 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

    View Slide

  3. 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

    View Slide

  4. Development benefits
    4

    View Slide

  5. 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?

    View Slide

  6. 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

    View Slide

  7. 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

    View Slide

  8. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. Operational benefits
    12

    View Slide

  13. 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?

    View Slide

  14. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. Architectural benefits
    18

    View Slide

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

    View Slide

  20. 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?

    View Slide

  21. 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

    View Slide

  22. 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

    View Slide

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

    View Slide