3. Difficoltà a creare una applicazione a microservizi
Hard to incrementally migrate
from existing code to a
microservices architecture
Programming model runtimes
have narrow language
support and tightly controlled
feature sets
Runtimes only target specific
infrastructure platforms with
limited code portability across
clouds and edge
4. Microservice building blocks
Standard APIs accessed over http/gRPC protocols from user service code
http://localhost:3500/v1.0/state/inventory/orderkey
http://localhost:3500/v1.0/invoke/myapp/method/neworder
Runs as local “side car library” dynamically loaded at runtime for each service
Service-
to- service
invocation
State
management
Publish
and
subscribe
Resource
bindings
and triggers
Actors Distributed
tracing
Secrets
HTTP API gRPC API
Extensible
Application code
Any code or framework…
Microservices written in
5. Microservice building blocks
Secrets
Securely access
secrets from your
application
Distributed
tracing
See and measure
the message calls
across components
and networked
services
Actors
Encapsulate code
and data in
reusable actor
objects as a
common
microservices
design pattern
Resource
bindings
and triggers
Trigger code through
events from a large
array of inputs
Output bindings to
external resources
including databases
and queues
Publish
and
subscribe
Secure, scalable
messaging
between services
State
management
Create long
running, stateless
and stateful
services
Service-to-
service
invocation
Perform direct,
secure, service-
to-service
method calls
Use Dapr components
6. Sidecar and component architecture
State stores
Publish & subscribe
Resource bindings
Scanning
for events
Dapr APIDapr API
Messaging
Load and
save state
Service
code B
Service
code A
Input/output
Application
Sidecar Sidecar
Secure communication with mTLS
Tracing, logs
and metrics
Tracing, logs
and metrics
7. Dapr Kubernetes hosted
1
Pod
Update component changesUpdates actor partition placement
Injects Dapr runtime
Components
Component
management
Deploys and manages Dapr
Any cloud or edge infrastructure
Publish & subscribe
State stores
Resource bindings
Input/outputPod
C O N T A I N E R
Actor Placement
Pod
C O N T A I N E R
Sidecar Injector
Pod
C O N T A I N E R
Operator
Dapr API
HTTP or gRPC
Uses components
C O N T A I N E R
Sidecar
C O N T A I N E R
Application code
Pod
C O N T A I N E R
Sentry
Certificate Authority
Distributed Tracing
Prometheus AppInsightts Jaeger
11. Integration with developer frameworks
Service-
to- service
invocation
State
management
Publish
and
subscribe
Resource
bindings
and triggers
Actors Distributed
tracing
Secrets Extensible
Any cloud or edge infrastructure
HTTP API gRPC API
Application code
Any code or framework…
Microservices written in
Functions
Virtual
Actors
ASP.NET
Core
Logic Apps Spring Boot
Server Side
Blazor
12. Dapr and Azure Functions
Building an Azure Functions Dapr extension
Enables an Azure Function to interact seamlessly with Dapr
capabilities in Kubernetes, IoT Edge and other hosting
platforms
14. Announcing cloud-native workflows using Dapr and Logic Apps
https://cloudblogs.microsoft.com/opensource/2020/05/26/announcing-cloud-native-
workflows-dapr-logic-apps/
15. Roadmap
On the roadmap is to enable the ability to use the Azure
managed connectors (currently only the built-in
connectors and actions are available). Managed
connectors provide triggers and actions for accessing cloud
services, on-premises systems, including Office 365, Azure
Blob Storage, SQL Server, Dynamics 365, Salesforce,
SharePoint, and more. Currently in this preview, the state of
the workflow is saved to Azure Storage for failover
recovery. We are exploring using Dapr’s state
management building block to save the state of the
workflow, meaning that you can take advantage of any of
the supported Dapr component state stores and make your
code more portable.
16. Roadmap
• release candidate (RC) available in Nov 2020
• The Dapr v1.0 release will cover Dapr Core, CLI, and
Dashboard, as well as the SDKs for .NET, Go, Java,
Node.js, and Python. In addition, about 15 of the 75+
Dapr components will be certified as “stable”
https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/