3. Some time ago this definition
was someone who was able to
do both backend and frontend
development
Full stack Developers 2010
Frontend
Backend
@geertvdc
4. Now we want teams to be
autonomous. Focussing on the
full product lifecycle, building
& running it!
Full stack Developers now Frontend
Backend
Pipelines
Containers
Monitoring
Cloud infra
Databases
Cost
Networks
Security @geertvdc
5. The goal of these autonomous
teams was enabling them to be
more productive, not having to
wait on others.
But we canât be masters of all
these traits. Is there a middle
ground?
Conflict! Frontend
Backend
Pipelines
Containers
Monitoring
Cloud infra
Databases
Cost
Networks
Security @geertvdc
6. What the business wants
Scalable
Fast to Market
Resilient
to failure
Secure
Cheap
Easy to
Build & run
@geertvdc
7. Current state of development
Business features
All other stuff we
spend time on as
developers
@geertvdc
10. Migrating existing
applications to a
microservice architecture
Making microservices
easier for every
language
or platform
Enable Microservices on
every infrastructure
and decoupling
dependencies
@geertvdc
11. Dapr building blocks
Runs on multiple environments for cloud, on-
prem, and small-edge including any KubernetesRuns everywhere
Make it easy for developers to create microservice
applications without being an expert in distributed
systems, including migrating existing code
Microservice Building Blocks
Developer first, standard APIs used from any
programming language or frameworkSidecar Architecture
@geertvdc
20. Kubernetes
Sidecar Architecture - Kubernetes
Placement
Sidecar
Injector
Operator
State stores
Publish and subscribe
Pod
Service A
Pod
Service B
@geertvdc
Dapr Sidecar Dapr Sidecar
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: statestore
spec:
type: state.redis
metadata:
- name: redisHost
value: redis-master:6379
- name: redisPassword
value: *****
21. Kubernetes
Sidecar Architecture - Kubernetes
Placement
Sidecar
Injector
Operator
State stores
Publish and subscribe
Pod
Service A Dapr Sidecar
Pod
Service B Dapr Sidecar
@geertvdc
23. Runs Everywhere
You donât have to use this in a green field scenario.
Dapr enables you to pick and choose whatever
components you want to use.
Connect Legacy
Almost every programming language has support for
HTTP or GRPC. You do not need any SDK to work with
Dapr
HTTP / GRPC
There are SDKs in many languages to make the life
of developers even easier. C#, Javascript, Java, Rust,
Go, C++, Python
SDKs in multiple languages
@geertvdc
25. Microservice building blocks
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
Service invocation
@geertvdc
26. Microservice building blocks
Service invocation
Service A Dapr Sidecar Service BDapr Sidecar
POST http://localhost:3500/v1.0/invoke/ServiceB/method/MethodA
POST http://localhost:80/MethodA
@geertvdc
27. Microservice building blocks
State management
Service A Dapr Sidecar
POST http://localhost:3500/v1.0/state/statestoreName
[{
"key": âorder1",
"value": {
"Order": {...}
}
}]
State stores
GET http://localhost:3500/v1.0/state/statestoreName/order1
{
"Order": {...}
}
@geertvdc
28. Publish Message bus Subscribe
Microservice building blocks
Publish & subscribe
Service A Dapr Sidecar Service BDapr Sidecar
POST http://localhost:3500/v1.0/publish/topic
{
âOrderIdâ: 123,
âCustomerIdâ: 555,
...
}
POST http://localhost:80/v1.0/topic
{
âOrderIdâ: 123,
âCustomerIdâ: 555,
...
}
GET http://localhost:80/dapr/subscribe
{
âtopicâ
}
@geertvdc
37. Demo
Order API
Building an order application
Loyalty
Service
ShippingCost
Service
Generate
Orders
Message bus
Shipping
Service
Shipping
Service
State Store
@geertvdc
39. Wrap up
@geertvdc
Dapr will make your life easier as a distributed systems
engineer
Go give it a try. Itâs free & open source.
Lotâs of samples, good docs & active community / developers
Let the community know what you like & dislike through Github