Slide 1

Slide 1 text

Cloud-native application development with Dapr PragmaCoders.NET linkedin.com/in/karoldeland/ Karol Deland

Slide 2

Slide 2 text

HELLO! I’m Karol, Top Geek @ Vooban. 2 PragmaCoders.NET linkedin.com/in/karoldeland/

Slide 3

Slide 3 text

3 Digital Transformation Strategy Mobile and Web Development Cloud and IoT Data Management Artificial Intelligence WE BRING INNOVATIVE SOLUTIONS TO LIFE

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Distributed applications Microservices Cloud-native

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

DISTRIBUTED APPLICATION RUNTIME Portable, event-driven, runtime for building distributed applications across cloud and edge dapr.io

Slide 9

Slide 9 text

DAPR APIs

Slide 10

Slide 10 text

DEMO Fundamentals and daperizing an application 10

Slide 11

Slide 11 text

Sidecar Crédit photo : http://www.1966batmobile.com/batcycle1.htm

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

DEMO Service invocation, Auth, DevEx + Resiliency 15

Slide 16

Slide 16 text

OBSERVABILITY OpenTelemetry collector Logging & tracing extensions My App Redis Twitter Service B Service A

Slide 17

Slide 17 text

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"}

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

AND THERE IS MORE! •Certificate management •Virtual Actors •Workflows •Extensibility •Distributed Locks •mTLS

Slide 20

Slide 20 text

RESSOURCES •dapr.io •docs.dapr.io •Discord

Slide 21

Slide 21 text

THANK YOU! 21 PragmaCoders.NET linkedin.com/in/karoldeland/

Slide 22

Slide 22 text

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