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

Dapr on AKS: building distributed applications with ease

Dapr on AKS: building distributed applications with ease

Presentation I gave at the AKS meetup in Utrecht (NL).

GitHub repo: http://bit.ly/dapr-on-aks

Marc Duiker

March 29, 2023
Tweet

More Decks by Marc Duiker

Other Decks in Technology

Transcript

  1. Dapr on AKS:
    building distributed
    apps with ease

    View full-size slide

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

    View full-size slide

  3. 3
    Building
    block demos
    Deploy
    to AKS
    What is
    Dapr?

    View full-size slide

  4. What is Dapr?
    4

    View full-size slide

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

    View full-size slide

  6. 6
    Distributed
    application
    runtime

    View full-size slide

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

    View full-size slide

  8. 8
    virtual or
    physical machines

    View full-size slide

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

    View full-size slide

  10. 10
    Service
    invocation
    State
    Management
    Publish &
    subscribe
    Bindings
    (input & output)
    Actors Secret
    Stores
    Configuration
    Observability
    Workflows
    Distributed Lock

    View full-size slide

  11. 11
    HTTP/gRPC
    Dapr API
    Dapr sidecar
    Application
    App

    View full-size slide

  12. 12
    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
    GET http://localhost:3500/v1.0-alpha1/workflows/dapr/businessprocess/1234/start
    HTTP/gRPC
    Dapr API
    App

    View full-size slide

  13. 13
    C#
    Python
    Java
    Script
    Java
    Go
    SDKs

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. 16
    Contributing organizations

    View full-size slide

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

    View full-size slide

  18. 18
    bit.ly/dapr-state-stores

    View full-size slide

  19. 19
    App
    CosmosDB

    View full-size slide

  20. 20
    Sidecar
    App
    CosmosDB
    metadata:
    name: mystorage
    spec:
    type: state.azure.cosmosdb
    metadata:
    - name:
    value:
    SaveStateAsync()
    GetStateAsync()
    yaml

    View full-size slide

  21. 21
    Redis
    metadata:
    name: mystorage
    spec:
    type: state.redis
    metadata:
    - name:
    value:
    Sidecar
    App
    SaveStateAsync()
    GetStateAsync()
    yaml

    View full-size slide

  22. 22
    Is Dapr a service mesh?

    View full-size slide

  23. 24
    Developer centric Infrastructure centric
    Service
    mesh
    docs.dapr.io/concepts/service-mesh/

    Building block APIs & components Network traffic & Routing

    View full-size slide

  24. Building block demos
    25
    github.com/dapr/quickstarts

    View full-size slide

  25. 26
    Service
    invocation
    Checkout
    Order
    processor
    POST

    View full-size slide

  26. 27
    Publish &
    subscribe
    Checkout
    Order
    processor

    View full-size slide

  27. 28
    State
    Management
    Redis
    Order
    processor

    View full-size slide

  28. 29
    Deploy to AKS

    View full-size slide

  29. 30
    Redis
    Pods
    POST /neworder
    Python
    Pod
    read / write
    Node
    Pod
    Operator/Injector/Sentry
    Pods
    Deploy and
    manage Dapr
    Dapr on AKS
    az aks create
    --resource-group dapr-aks-rg
    --name dapr-aks
    --node-count 2
    --enable-addons http_application_routing
    --generate-ssh-keys

    View full-size slide

  30. 31
    bit.ly/dapr-on-aks

    View full-size slide

  31. 41
    Building
    block demos
    Deploy
    to AKS
    What is
    Dapr?

    View full-size slide

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

    View full-size slide