SlideShare a Scribd company logo
16 APRILE 2021 VIRTUAL EVENT
MASSIMO BONANNI
IOT IN SALSA SERVERLESS
@MASSIMOBONANNI
#GLOBALAZURE
SPONSOR
il partner tecnologico per chi ha idee ambiziose. Innovazione pratica da 15 anni.
empower every person and every organization on the planet to achieve more.
16 APRILE 2021 VIRTUAL EVENT
aka.ms/global-
azure/30D2L
blog.globalazure.net/Swag
#GLOBALAZURE
A SIMPLE IOT SCENARIO….
Simulator
IoT Hub
Telemetry
Dashboard
Telemetry Devices
?
Devices
Every single device
produces telemetries
about temperature and
humidity
IoTHub ingests
telemetry in Azure
We need a
simulator to test
our solution
We want to
• elaborate the telemetries
• store the last m minutes
• provide APIs to retrieve the telemetries
• having many types of devices with different logic
We need a
dashboard to
show the devices
and telemetries.
External Services
We need to
interact with
external services
to provide alerts
or notifications
Photo by Andrea Piacquadio from Pexels
We need:
• Event-driven scalability
• State management abstraction
• Asynchronous interaction
• Different types of devices
Photo by Andrea Piacquadio from Pexels
Durable
Entities….
why not?
#GLOBALAZURE
Azure Functions
Extension
Based on Azure
Functions
Adds new Triggers
and Bindings
Manages state,
checkpoints, and
restarts
Durable Task
Framework
Long running
persistent workflows
in C#
Used within various
teams at Microsoft
to reliably
orchestrate long
running operations
Languages
C#
JavaScript
F#
Python
Powershell (few
patterns)
WHAT ARE DURABLE FUNCTIONS?
#GLOBALAZURE
Client
It is the triggered
functions that will create
new instances of an
orchestration.
It is the entry point for
creating an instance of a
durable orchestration
Orchestrator
It is the heart of a durable
function.
Orchestrator functions
describe the way and
order actions are
executed.
Activity
It is the basic unit of work
in a durable
orchestration.
An activity function must
be triggered by
an activity trigger.
COMPONENTS OF DURABLE FUNCTIONS
#GLOBALAZURE
Based on Durable Functions
Functions with special
trigger
Entity Functions define
operations for reading and
updating small piece of state
(serialized in a storage table)
Entity Functions are
accessed using:
Entity Name
Entity Key
Entity Functions operations
can be accessed using:
Entity Key
Operation Name
Operation Input
Scheduled time
DURABLE ENTITIES AKA ENTITY
FUNCTIONS
#GLOBALAZURE
ENTITY ID
AN ENTITY ID IS SIMPLY A PAIR OF STRINGS THAT UNIQUELY
IDENTIFIES AN ENTITY INSTANCE.
Entity Name
It is a name that identifies the
type of the entity.
This name must match the
name of the entity function
that implements the entity.
It isn't sensitive to case
Entity Key
It is a string that uniquely
identifies the entity among all
other entities of the same
name
#GLOBALAZURE
DEFINE THE ENTITY
FUNCTION-BASED SYNTAX
Entities are represented as
functions and operations are
explicitly executed in the function
body.
This syntax works well for entities
with simple state, few operations,
or a dynamic set of operations like
in application frameworks.
This syntax doesn't catch type
errors at compile time
#GLOBALAZURE
DEFINE THE ENTITY
CLASS-BASED SYNTAX
Entities are represented by classes.
This syntax produces more easily
readable code and allows
operations to be invoked in a type-
safe way.
Function-based and Class –based
variants can be used
interchangeably in the same
application.
#GLOBALAZURE
DEFINE THE ENTITY
CLASS-BASED SYNTAX
The class must be
constructible
The class must be
JSON-serializable
Operations must have at
most one argument, and
not have any overloads
or generic type
arguments.
Arguments and return
values must be
serializable values or
objects.
You can define an
interface for the
entity
#GLOBALAZURE
WHAT AN OPERATION CAN DO
Reads or updates entity state
Makes an external I/O operation
Uses context to interact with other entities
Uses context to start an orchestration
#GLOBALAZURE
DEFINE AN INTERFACE FOR AN ENTITY
Entity interfaces must only define methods.
Entity interfaces must not contain generic parameters.
Entity interface methods must not have more than one
parameter.
Entity interface methods must return void, Task, or Task<T>
#GLOBALAZURE
ACCESSING THE ENTITIES
Two-way (round-trip) communication.
You send an operation message to the entity, and then
wait for the response message before you continue.
Calling
(round-trip)
One-way (fire and forget) communication.
You send an operation message but don't wait for a
response.
Signaling
(fire-and-forget)
Two-way communication.
You can retrieve the state of an entity
State
Orchestrator
Orchestrator
Client
Entity
Client
#GLOBALAZURE
A POSSIBLE SOLUTION….
IoT Hub
Telemetry
Dashboard
Telemetry
Dispatcher
#GLOBALAZURE
A POSSIBLE SOLUTION…. Front-End Layer:
Azure Functions expose Rest APIs to send
telemetry, search devices and retrieve
status for each device
Stateful Data Layer:
Durable Entities provide stateful layer to
manage status for each device.
Integration Layer:
Durable Functions provide integration with
external services and allow you to create
complex workflow to integrate more than
one external service.
Front-End Layer Stateful Data Layer Integration Layer
#GLOBALAZURE
FROM DEVICE TO ENTITIES…
Telemetry
Dispatcher
MQTT Event
Processor
REST
API
CLIENT
Signal
ORCHESTRATOR
Start
ENTITY
STORAGE
Devices produce and send
telemetries to IoTHub using
JSON and MQTT protocol
#GLOBALAZURE
FROM DEVICE TO ENTITIES…
Telemetry
Dispatcher
MQTT Event
Processor
REST
API
CLIENT
Signal
ORCHESTRATOR
Start
ENTITY
STORAGE
Telemetry Dispatcher
retrieves telemetries
from IoTHub
#GLOBALAZURE
FROM DEVICE TO ENTITIES…
Telemetry
Dispatcher
MQTT Event
Processor
REST
API
CLIENT
Signal
ORCHESTRATOR
Start
ENTITY
STORAGE
Telemetry Dispatcher calls
the REST APIs exposed by the
Azure Functions (Client
Function)
#GLOBALAZURE
FROM DEVICE TO ENTITIES…
Telemetry
Dispatcher
MQTT Event
Processor
REST
API
CLIENT
Signal
ORCHESTRATOR
Start
ENTITY
STORAGE
Each client function signals the
telemetry to the specific device
(Entity Function)
#GLOBALAZURE
FROM DEVICE TO ENTITIES…
Telemetry Dispatcher
MQTT Event
Processor
REST
API
CLIENT
Signal
ORCHESTRATOR
Start
ENTITY
STORAGE
The Entity manages the status (last
telemetries) and start an Orchestrator
Function if an alert occurs
#GLOBALAZURE
DEMO
SERVERLESS IOT
PLATFORM
Photo by Andrea Piacquadio from Pexels
We need:
• Event-driven scalability
• State management abstraction
• Asynchronous interaction
• Different types of devices
We need:
✓ Event-driven scalability → Serverless
• State management abstraction
• Asynchronous interaction
• Different types of devices
Photo by Andrea Piacquadio from Pexels
We need:
✓ Event-driven scalability → Serverless
✓ State management abstraction → Durable Entities
• Asynchronous interaction
• Different types of devices
Photo by Andrea Piacquadio from Pexels
We need:
✓ Event-driven scalability → Serverless
✓ State management abstraction → Durable Entities
✓ Asynchronous interaction → Signaling
• Different types of devices
Photo by Andrea Piacquadio from Pexels
We need:
✓ Event-driven scalability → Serverless
✓ State management abstraction → Durable Entities
✓ Asynchronous interaction → Signaling
✓ Different types of devices → Entity Interface
Photo by Andrea Piacquadio from Pexels
#GLOBALAZURE
Thanks for your
attention!!!!!
Massimo Bonanni
Azure Technical Trainer
massimo.bonanni@microsoft.com
@massimobonanni
Connect with me on LinkedIn
linkedin.com/in/massimobonanni/
http://bit.ly/MasteringServerless
#GLOBALAZURE
Azure Functions
Documentation
https://docs.microsoft.com/en-
US/azure/azure-functions/
Durable Functions overview
https://docs.microsoft.com/en-
us/azure/azure-
functions/durable/durable-functions-
overview?tabs=csharp
Developer's guide to durable
entities in .NET
https://docs.microsoft.com/en-
us/azure/azure-
functions/durable/durable-functions-
dotnet-entities
Entity Functions
https://docs.microsoft.com/en-
us/azure/azure-
functions/durable/durable-functions-
entities?tabs=csharp
Durable Task Framework
https://github.com/Azure/durabletask
GitHub ServerlessIoT Demo
https://github.com/massimobonanni
/ServerlessIoT
REFERENCES
Photo by Ashim D’Silva on Unsplash

More Related Content

What's hot

Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)
Igor Moochnick
 
Servicehost Customization
Servicehost CustomizationServicehost Customization
Servicehost Customization
Eyal Vardi
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!
Massimo Bonanni
 
Stateful patterns in Azure Functions
Stateful patterns in Azure FunctionsStateful patterns in Azure Functions
Stateful patterns in Azure Functions
Massimo Bonanni
 
First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)
Daniel Toomey
 
Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!
Massimo Bonanni
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .net
Marco Parenzan
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
Massimo Bonanni
 
Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!
Massimo Bonanni
 
Using Cookies to Store Your Postman Secrets
Using Cookies to Store Your Postman SecretsUsing Cookies to Store Your Postman Secrets
Using Cookies to Store Your Postman Secrets
Postman
 
Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe
Erica Windisch
 
03 spring cloud eureka service discovery
03 spring cloud eureka   service discovery03 spring cloud eureka   service discovery
03 spring cloud eureka service discovery
Janani Velmurugan
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
Massimo Bonanni
 
Content as a Service with Umbraco Headless
Content as a Service with Umbraco HeadlessContent as a Service with Umbraco Headless
Content as a Service with Umbraco Headless
Filip Bruun Bech-Larsen
 
Building Cloud-agnostic Serverless APIs
Building Cloud-agnostic Serverless APIsBuilding Cloud-agnostic Serverless APIs
Building Cloud-agnostic Serverless APIs
Postman
 
Deep dive into Conversational Ai development
Deep dive into Conversational Ai developmentDeep dive into Conversational Ai development
Deep dive into Conversational Ai development
Marco Parenzan
 
Develop a Messaging App on AWS in One Day
Develop a Messaging App on AWS in One DayDevelop a Messaging App on AWS in One Day
Develop a Messaging App on AWS in One Day
Amazon Web Services
 
Serverless Computing With Azure Functions
Serverless Computing With Azure FunctionsServerless Computing With Azure Functions
Serverless Computing With Azure Functions
Jaliya Udagedara
 
Azure Durable Functions
Azure Durable FunctionsAzure Durable Functions
Azure Durable Functions
Karthikeyan VK
 
Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)
Daniel Toomey
 

What's hot (20)

Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)
 
Servicehost Customization
Servicehost CustomizationServicehost Customization
Servicehost Customization
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!
 
Stateful patterns in Azure Functions
Stateful patterns in Azure FunctionsStateful patterns in Azure Functions
Stateful patterns in Azure Functions
 
First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)
 
Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .net
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
 
Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!
 
Using Cookies to Store Your Postman Secrets
Using Cookies to Store Your Postman SecretsUsing Cookies to Store Your Postman Secrets
Using Cookies to Store Your Postman Secrets
 
Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe
 
03 spring cloud eureka service discovery
03 spring cloud eureka   service discovery03 spring cloud eureka   service discovery
03 spring cloud eureka service discovery
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
 
Content as a Service with Umbraco Headless
Content as a Service with Umbraco HeadlessContent as a Service with Umbraco Headless
Content as a Service with Umbraco Headless
 
Building Cloud-agnostic Serverless APIs
Building Cloud-agnostic Serverless APIsBuilding Cloud-agnostic Serverless APIs
Building Cloud-agnostic Serverless APIs
 
Deep dive into Conversational Ai development
Deep dive into Conversational Ai developmentDeep dive into Conversational Ai development
Deep dive into Conversational Ai development
 
Develop a Messaging App on AWS in One Day
Develop a Messaging App on AWS in One DayDevelop a Messaging App on AWS in One Day
Develop a Messaging App on AWS in One Day
 
Serverless Computing With Azure Functions
Serverless Computing With Azure FunctionsServerless Computing With Azure Functions
Serverless Computing With Azure Functions
 
Azure Durable Functions
Azure Durable FunctionsAzure Durable Functions
Azure Durable Functions
 
Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)
 

Similar to IoT in salsa serverless

FIWARE Developers Week_Managing context information at large scale_conference
FIWARE Developers Week_Managing context information at large scale_conferenceFIWARE Developers Week_Managing context information at large scale_conference
FIWARE Developers Week_Managing context information at large scale_conference
FIWARE
 
Develop a portal to manage your IoT Hub solution
 Develop a portal to manage your IoT Hub solution Develop a portal to manage your IoT Hub solution
Develop a portal to manage your IoT Hub solution
Marco Parenzan
 
IoT Smart Home
IoT Smart HomeIoT Smart Home
IoT Smart Home
Sergey Seletsky
 
Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)
Fernando Lopez Aguilar
 
Reply Webinar Online - Mastering AWS - IoT Foundations
Reply Webinar Online - Mastering AWS - IoT FoundationsReply Webinar Online - Mastering AWS - IoT Foundations
Reply Webinar Online - Mastering AWS - IoT Foundations
Andrea Mercanti
 
Inside Logic Apps
Inside Logic AppsInside Logic Apps
Inside Logic Apps
BizTalk360
 
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloAzure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
ITCamp
 
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
Amazon Web Services
 
IOT.pptx
IOT.pptxIOT.pptx
IOT.pptx
NeyaShree1
 
AWS IoT - Introduction - Pop-up Loft
AWS IoT - Introduction - Pop-up LoftAWS IoT - Introduction - Pop-up Loft
AWS IoT - Introduction - Pop-up Loft
Amazon Web Services
 
FIWARE: an open standard platform for smart cities
FIWARE: an open standard platform for smart citiesFIWARE: an open standard platform for smart cities
FIWARE: an open standard platform for smart cities
Juanjo Hierro
 
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
Amazon Web Services
 
Alfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of ThingsAlfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of Things
Nathan McMinn
 
IoT Discovery GE: An Introduction
IoT Discovery GE: An IntroductionIoT Discovery GE: An Introduction
IoT Discovery GE: An Introduction
Tarek Elsaleh
 
TechEd NZ 2014: Intelligent Systems Service - Concept, Code and Demo
TechEd NZ 2014: Intelligent Systems Service - Concept, Code and DemoTechEd NZ 2014: Intelligent Systems Service - Concept, Code and Demo
TechEd NZ 2014: Intelligent Systems Service - Concept, Code and Demo
Intergen
 
#ATAGTR2018 Presentation "Performance Testing and Monitoring of Containerized...
#ATAGTR2018 Presentation "Performance Testing and Monitoring of Containerized...#ATAGTR2018 Presentation "Performance Testing and Monitoring of Containerized...
#ATAGTR2018 Presentation "Performance Testing and Monitoring of Containerized...
Agile Testing Alliance
 
PATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event ModelPATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event Model
Michael Heron
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
João Pedro Martins
 
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
Amazon Web Services Korea
 
abstract.docx
abstract.docxabstract.docx
abstract.docx
Sami Siddiqui
 

Similar to IoT in salsa serverless (20)

FIWARE Developers Week_Managing context information at large scale_conference
FIWARE Developers Week_Managing context information at large scale_conferenceFIWARE Developers Week_Managing context information at large scale_conference
FIWARE Developers Week_Managing context information at large scale_conference
 
Develop a portal to manage your IoT Hub solution
 Develop a portal to manage your IoT Hub solution Develop a portal to manage your IoT Hub solution
Develop a portal to manage your IoT Hub solution
 
IoT Smart Home
IoT Smart HomeIoT Smart Home
IoT Smart Home
 
Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)
 
Reply Webinar Online - Mastering AWS - IoT Foundations
Reply Webinar Online - Mastering AWS - IoT FoundationsReply Webinar Online - Mastering AWS - IoT Foundations
Reply Webinar Online - Mastering AWS - IoT Foundations
 
Inside Logic Apps
Inside Logic AppsInside Logic Apps
Inside Logic Apps
 
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloAzure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
 
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
 
IOT.pptx
IOT.pptxIOT.pptx
IOT.pptx
 
AWS IoT - Introduction - Pop-up Loft
AWS IoT - Introduction - Pop-up LoftAWS IoT - Introduction - Pop-up Loft
AWS IoT - Introduction - Pop-up Loft
 
FIWARE: an open standard platform for smart cities
FIWARE: an open standard platform for smart citiesFIWARE: an open standard platform for smart cities
FIWARE: an open standard platform for smart cities
 
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
 
Alfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of ThingsAlfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of Things
 
IoT Discovery GE: An Introduction
IoT Discovery GE: An IntroductionIoT Discovery GE: An Introduction
IoT Discovery GE: An Introduction
 
TechEd NZ 2014: Intelligent Systems Service - Concept, Code and Demo
TechEd NZ 2014: Intelligent Systems Service - Concept, Code and DemoTechEd NZ 2014: Intelligent Systems Service - Concept, Code and Demo
TechEd NZ 2014: Intelligent Systems Service - Concept, Code and Demo
 
#ATAGTR2018 Presentation "Performance Testing and Monitoring of Containerized...
#ATAGTR2018 Presentation "Performance Testing and Monitoring of Containerized...#ATAGTR2018 Presentation "Performance Testing and Monitoring of Containerized...
#ATAGTR2018 Presentation "Performance Testing and Monitoring of Containerized...
 
PATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event ModelPATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event Model
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
 
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
 
abstract.docx
abstract.docxabstract.docx
abstract.docx
 

More from Massimo Bonanni

Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure Functions
Massimo Bonanni
 
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Massimo Bonanni
 
Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...
Massimo Bonanni
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0
Massimo Bonanni
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
Massimo Bonanni
 
Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!
Massimo Bonanni
 
Project Gesture & RealSense: gestures in a simple way!!
Project Gesture & RealSense: gestures in a simple way!!Project Gesture & RealSense: gestures in a simple way!!
Project Gesture & RealSense: gestures in a simple way!!
Massimo Bonanni
 
Project Prague & RealSense: il potere nelle mani!!
Project Prague & RealSense: il potere nelle mani!!Project Prague & RealSense: il potere nelle mani!!
Project Prague & RealSense: il potere nelle mani!!
Massimo Bonanni
 
L'approccio ai microservizi secondo Service Fabric
L'approccio ai microservizi secondo Service FabricL'approccio ai microservizi secondo Service Fabric
L'approccio ai microservizi secondo Service Fabric
Massimo Bonanni
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
Massimo Bonanni
 
Microservices architecture & Service Fabric
Microservices architecture & Service FabricMicroservices architecture & Service Fabric
Microservices architecture & Service Fabric
Massimo Bonanni
 
Introduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBoxIntroduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBox
Massimo Bonanni
 
Cognitive Services & LUIS
Cognitive Services & LUISCognitive Services & LUIS
Cognitive Services & LUIS
Massimo Bonanni
 
Service Fabric: la potenza dei micro servizi
Service Fabric:  la potenza dei micro serviziService Fabric:  la potenza dei micro servizi
Service Fabric: la potenza dei micro servizi
Massimo Bonanni
 
Automated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile appsAutomated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile apps
Massimo Bonanni
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
Massimo Bonanni
 
Xamarin Test Cloud
Xamarin Test CloudXamarin Test Cloud
Xamarin Test Cloud
Massimo Bonanni
 

More from Massimo Bonanni (17)

Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure Functions
 
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
 
Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
 
Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!
 
Project Gesture & RealSense: gestures in a simple way!!
Project Gesture & RealSense: gestures in a simple way!!Project Gesture & RealSense: gestures in a simple way!!
Project Gesture & RealSense: gestures in a simple way!!
 
Project Prague & RealSense: il potere nelle mani!!
Project Prague & RealSense: il potere nelle mani!!Project Prague & RealSense: il potere nelle mani!!
Project Prague & RealSense: il potere nelle mani!!
 
L'approccio ai microservizi secondo Service Fabric
L'approccio ai microservizi secondo Service FabricL'approccio ai microservizi secondo Service Fabric
L'approccio ai microservizi secondo Service Fabric
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
 
Microservices architecture & Service Fabric
Microservices architecture & Service FabricMicroservices architecture & Service Fabric
Microservices architecture & Service Fabric
 
Introduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBoxIntroduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBox
 
Cognitive Services & LUIS
Cognitive Services & LUISCognitive Services & LUIS
Cognitive Services & LUIS
 
Service Fabric: la potenza dei micro servizi
Service Fabric:  la potenza dei micro serviziService Fabric:  la potenza dei micro servizi
Service Fabric: la potenza dei micro servizi
 
Automated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile appsAutomated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile apps
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
 
Xamarin Test Cloud
Xamarin Test CloudXamarin Test Cloud
Xamarin Test Cloud
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 

IoT in salsa serverless

  • 1. 16 APRILE 2021 VIRTUAL EVENT MASSIMO BONANNI IOT IN SALSA SERVERLESS @MASSIMOBONANNI
  • 2. #GLOBALAZURE SPONSOR il partner tecnologico per chi ha idee ambiziose. Innovazione pratica da 15 anni. empower every person and every organization on the planet to achieve more.
  • 3. 16 APRILE 2021 VIRTUAL EVENT aka.ms/global- azure/30D2L blog.globalazure.net/Swag
  • 4. #GLOBALAZURE A SIMPLE IOT SCENARIO…. Simulator IoT Hub Telemetry Dashboard Telemetry Devices ? Devices Every single device produces telemetries about temperature and humidity IoTHub ingests telemetry in Azure We need a simulator to test our solution We want to • elaborate the telemetries • store the last m minutes • provide APIs to retrieve the telemetries • having many types of devices with different logic We need a dashboard to show the devices and telemetries. External Services We need to interact with external services to provide alerts or notifications
  • 5. Photo by Andrea Piacquadio from Pexels We need: • Event-driven scalability • State management abstraction • Asynchronous interaction • Different types of devices
  • 6. Photo by Andrea Piacquadio from Pexels Durable Entities…. why not?
  • 7. #GLOBALAZURE Azure Functions Extension Based on Azure Functions Adds new Triggers and Bindings Manages state, checkpoints, and restarts Durable Task Framework Long running persistent workflows in C# Used within various teams at Microsoft to reliably orchestrate long running operations Languages C# JavaScript F# Python Powershell (few patterns) WHAT ARE DURABLE FUNCTIONS?
  • 8. #GLOBALAZURE Client It is the triggered functions that will create new instances of an orchestration. It is the entry point for creating an instance of a durable orchestration Orchestrator It is the heart of a durable function. Orchestrator functions describe the way and order actions are executed. Activity It is the basic unit of work in a durable orchestration. An activity function must be triggered by an activity trigger. COMPONENTS OF DURABLE FUNCTIONS
  • 9. #GLOBALAZURE Based on Durable Functions Functions with special trigger Entity Functions define operations for reading and updating small piece of state (serialized in a storage table) Entity Functions are accessed using: Entity Name Entity Key Entity Functions operations can be accessed using: Entity Key Operation Name Operation Input Scheduled time DURABLE ENTITIES AKA ENTITY FUNCTIONS
  • 10. #GLOBALAZURE ENTITY ID AN ENTITY ID IS SIMPLY A PAIR OF STRINGS THAT UNIQUELY IDENTIFIES AN ENTITY INSTANCE. Entity Name It is a name that identifies the type of the entity. This name must match the name of the entity function that implements the entity. It isn't sensitive to case Entity Key It is a string that uniquely identifies the entity among all other entities of the same name
  • 11. #GLOBALAZURE DEFINE THE ENTITY FUNCTION-BASED SYNTAX Entities are represented as functions and operations are explicitly executed in the function body. This syntax works well for entities with simple state, few operations, or a dynamic set of operations like in application frameworks. This syntax doesn't catch type errors at compile time
  • 12. #GLOBALAZURE DEFINE THE ENTITY CLASS-BASED SYNTAX Entities are represented by classes. This syntax produces more easily readable code and allows operations to be invoked in a type- safe way. Function-based and Class –based variants can be used interchangeably in the same application.
  • 13. #GLOBALAZURE DEFINE THE ENTITY CLASS-BASED SYNTAX The class must be constructible The class must be JSON-serializable Operations must have at most one argument, and not have any overloads or generic type arguments. Arguments and return values must be serializable values or objects. You can define an interface for the entity
  • 14. #GLOBALAZURE WHAT AN OPERATION CAN DO Reads or updates entity state Makes an external I/O operation Uses context to interact with other entities Uses context to start an orchestration
  • 15. #GLOBALAZURE DEFINE AN INTERFACE FOR AN ENTITY Entity interfaces must only define methods. Entity interfaces must not contain generic parameters. Entity interface methods must not have more than one parameter. Entity interface methods must return void, Task, or Task<T>
  • 16. #GLOBALAZURE ACCESSING THE ENTITIES Two-way (round-trip) communication. You send an operation message to the entity, and then wait for the response message before you continue. Calling (round-trip) One-way (fire and forget) communication. You send an operation message but don't wait for a response. Signaling (fire-and-forget) Two-way communication. You can retrieve the state of an entity State Orchestrator Orchestrator Client Entity Client
  • 17. #GLOBALAZURE A POSSIBLE SOLUTION…. IoT Hub Telemetry Dashboard Telemetry Dispatcher
  • 18. #GLOBALAZURE A POSSIBLE SOLUTION…. Front-End Layer: Azure Functions expose Rest APIs to send telemetry, search devices and retrieve status for each device Stateful Data Layer: Durable Entities provide stateful layer to manage status for each device. Integration Layer: Durable Functions provide integration with external services and allow you to create complex workflow to integrate more than one external service. Front-End Layer Stateful Data Layer Integration Layer
  • 19. #GLOBALAZURE FROM DEVICE TO ENTITIES… Telemetry Dispatcher MQTT Event Processor REST API CLIENT Signal ORCHESTRATOR Start ENTITY STORAGE Devices produce and send telemetries to IoTHub using JSON and MQTT protocol
  • 20. #GLOBALAZURE FROM DEVICE TO ENTITIES… Telemetry Dispatcher MQTT Event Processor REST API CLIENT Signal ORCHESTRATOR Start ENTITY STORAGE Telemetry Dispatcher retrieves telemetries from IoTHub
  • 21. #GLOBALAZURE FROM DEVICE TO ENTITIES… Telemetry Dispatcher MQTT Event Processor REST API CLIENT Signal ORCHESTRATOR Start ENTITY STORAGE Telemetry Dispatcher calls the REST APIs exposed by the Azure Functions (Client Function)
  • 22. #GLOBALAZURE FROM DEVICE TO ENTITIES… Telemetry Dispatcher MQTT Event Processor REST API CLIENT Signal ORCHESTRATOR Start ENTITY STORAGE Each client function signals the telemetry to the specific device (Entity Function)
  • 23. #GLOBALAZURE FROM DEVICE TO ENTITIES… Telemetry Dispatcher MQTT Event Processor REST API CLIENT Signal ORCHESTRATOR Start ENTITY STORAGE The Entity manages the status (last telemetries) and start an Orchestrator Function if an alert occurs
  • 25. Photo by Andrea Piacquadio from Pexels We need: • Event-driven scalability • State management abstraction • Asynchronous interaction • Different types of devices
  • 26. We need: ✓ Event-driven scalability → Serverless • State management abstraction • Asynchronous interaction • Different types of devices Photo by Andrea Piacquadio from Pexels
  • 27. We need: ✓ Event-driven scalability → Serverless ✓ State management abstraction → Durable Entities • Asynchronous interaction • Different types of devices Photo by Andrea Piacquadio from Pexels
  • 28. We need: ✓ Event-driven scalability → Serverless ✓ State management abstraction → Durable Entities ✓ Asynchronous interaction → Signaling • Different types of devices Photo by Andrea Piacquadio from Pexels
  • 29. We need: ✓ Event-driven scalability → Serverless ✓ State management abstraction → Durable Entities ✓ Asynchronous interaction → Signaling ✓ Different types of devices → Entity Interface Photo by Andrea Piacquadio from Pexels
  • 30. #GLOBALAZURE Thanks for your attention!!!!! Massimo Bonanni Azure Technical Trainer massimo.bonanni@microsoft.com @massimobonanni Connect with me on LinkedIn linkedin.com/in/massimobonanni/ http://bit.ly/MasteringServerless
  • 31. #GLOBALAZURE Azure Functions Documentation https://docs.microsoft.com/en- US/azure/azure-functions/ Durable Functions overview https://docs.microsoft.com/en- us/azure/azure- functions/durable/durable-functions- overview?tabs=csharp Developer's guide to durable entities in .NET https://docs.microsoft.com/en- us/azure/azure- functions/durable/durable-functions- dotnet-entities Entity Functions https://docs.microsoft.com/en- us/azure/azure- functions/durable/durable-functions- entities?tabs=csharp Durable Task Framework https://github.com/Azure/durabletask GitHub ServerlessIoT Demo https://github.com/massimobonanni /ServerlessIoT REFERENCES Photo by Ashim D’Silva on Unsplash