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

Cloud-native application development with Dapr

Karol Deland
February 24, 2023

Cloud-native application development with Dapr

Dapr is a runtime that facilitates the development of distributed and event-driven applications often associated to microservices architectures. Through its building blocks and components, it allows developers to externalize several elements of complexity and works with any language. You won't have to worry about retry loops, proprietary SDKs and protocols, and observability.

Karol Deland

February 24, 2023
Tweet

Other Decks in Technology

Transcript

  1. 3 Digital Transformation Strategy Mobile and Web Development Cloud and

    IoT Data Management Artificial Intelligence WE BRING INNOVATIVE SOLUTIONS TO LIFE
  2. STATE OF ENTERPRISE DEVELOPERS Must deploy scale-out apps for flexibility,

    cost, and efficiency Must develop resilient, scalable, microservice-based apps that interact with services Want to focus on building applications, not learning infrastructure Trending toward serverless platforms with simple code to cloud pipelines Use multiple languages and frameworks during development
  3. Cloud-native technologies empower organizations to build and run scalable applications

    in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. DEFINITION
  4. Cloud-native technologies empower organizations to build and run scalable applications

    in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. DEFINITION
  5. SIDECAR MODEL My App Dapr API POST http://localhost:3500/v1.0/invoke/cart/method/neworder GET http://localhost:3500/v1.0/state/inventory/item67

    POST http://localhost:3500/v1.0/publish/shipping/order GET http://localhost:3500/v1.0/secrets/vault/password42 HTTP/gRPC Application Dapr sidecar
  6. DAPR COMPONENTS My App Observability Prometheus AppInsights Jaeger Zipkin Bindings

    & Triggers GCP Storage AWS S3 Kafk a Azure Storage Twilio Swappable YAML files with resource connection details Over 97 components available Create components for your resource at: github.com/dapr/components-contrib State Stores Firebase Cassandra Redis Azure CosmosDB AWS DynamoDB Secret Stores AWS Secrets Manager Azure KeyVault GCP Secret Manager HashiCorp Vault Kubernetes Secret PubSub Brokers Redis AWS SQS Azure Service Bus RabbitMQ GCP Pub/Sub
  7. State stores Publish & subscribe Resource bindings Scanning for events

    Dapr API Dapr API Messaging Load and save state GCP pub/sub …others …others AWS SQS EventHub Kafka …others CosmosDB AWS DynamoDB Service code B Service code A Input/output Application Sidecar Sidecar Service Bus Secure communication with mTLS Tracing, logs and metrics Tracing, logs and metrics ARCHITECTURE
  8. PUB/SUB Service B My App Redis Service A POST http://localhost:3500/v1.0/publish/order

    {"data":"MyOrder"} POST http://10.0.0.4:8000/factory/order {"data":"MyOrder"} POST http://10.0.0.2:8000/order {"data":"MyOrder"}
  9. DAPR HOSTING ENVIRONMENTS • Get started with dapr init -k

    • Integrated Dapr control plane • Deploys dashboard, placement, operator, sentry, and injector pods • Automatically inject Dapr sidecar into all annotated pods • Upgrade with dapr upgrade or Helm • Get started with dapr init • Easy setup with Docker images • Sets up placement, Zipkin, Redis • slim-init available without Docker • Run any application with Dapr sidecar using dapr run • Slim mode does executable deployment (no Docker images) Self-hosted • Self-deploy Dapr control plane per machine • Deploy Hashicorp Consul per machine • Run any application with Dapr sidecar using dapr run • Dapr Installer Package allows for offline/remote deployments with no network connectivity Virtual/Physical Machines
  10. RÉFÉRENCES ⬡ https://dapr.io/ ⬡ https://docs.dapr.io/ ⬡ https://discord.com/invite/ptHhX6jc34 ⬡ https://www.oreilly.com/library/view/learning-dapr/9781492072416/ ⬡

    https://www.amazon.ca/Practical-Microservices-Dapr-NET-cloud-native/dp/1800568371 ⬡ https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/ ⬡ https://github.com/dotnet-architecture/eshopondapr ⬡ https://github.com/vietnam-devs/coolstore-microservices ⬡ https://github.com/karoldeland/daprShowcase