SlideShare a Scribd company logo
@cloudgen_verona
#GlobalAzure
#CloudGenVerona
BASIC SPONSOR
PREMIUM SPONSOR
Thanks to all the sponsors
3
TOPIC
Reactive
Programming
Gestiamo una flotta di veicoli in movimento
Who I am
@riccardozamana
https://github.com/zama202
https://www.linkedin.com/in/riccardozamana/
RICCARDO ZAMANA
Intro
..where are we going?..
• Why reactive architecture is
important?
• What problem it's trying to solve?
• How are Reactive Systems related
to Reactive Programming?
… Is "wrong" the answer, really?
The past and the present
Key factor Yesterday Today
Size of Installation Large inst - Few nodes Small inst – many nodes
Among of data Gbs Tbs/Pb
Data change Nightly (batches) Constantly change
Maintenance Window 3 hours … Comeback
later!
101% SLA
User patience < 30sec < 3sec
Whats happen
• In case of failure, is difficult to recover data stream
• 100% SLA is achievable
• Small maintenance, no more hours
• Micro Deployments are born
• User patience is less then 3seconds
• Software must respond… otherwise user search for
alternatives
REACTIVE Does!
PROVIDE THE SAME EXPERIENCE IN EVERY KIND OF
CONDITION
PRINCIPLES
RESPONSIVE (faster
then ever)
• Generate USER
CONFIDENCE
RESILIENT (remain
responsive in case of
failure)
• Replication,Isolation,
Containment,
Delegation
• Failures isolated in
every single
component
• Only recovery may be
delegated to external
components
ELASTIC (active during
deployments or scaling)
• responsive during
scale out or scale
down
• predictive auto scaling
tecnique
• cost effectiveness
MESSAGE Driven
(async, non blocking)
• Decouple everything,
isolation, location
transparency
• Resource
Consumption only
when are «active and
«GREEN LIGHT»
Programming vs Architecture
• Reactive SYSTEMS: Apply principles to Architecture
• Reactive Programming: Used to implement Reactive Systems
• RX.NET is only a programming tecnique
• You can do a ReactiveSystem WITHOUT ReactiveProgramming
• REACTIVE Systems (based on Reactive Microservice) are separated throw
Async mimic and boundaries
Reactive Programming VS Reactive Systems/Architecture
REACTIVE MICROSERVICES
Entities/Domains with dedicated
services, with different Database,
using other services throw API.
My Opinion: No Black, nor white.
But a spectrum of capabilities between Monolith
and MicroServices
MicroServ is a SOA subsystem… but the difference?
• Independent Govern
• Async communication
• Continuous deloyment
• Independent team delivery
SINGLE RESPONSABILITY PRICIPLE <||> BOUNDED CONTEXT
Remember the SOA dream?
KEYWORD n.1: ISOLATION
ISOLATION
IN STATE
No backdoor straight to other DBs
Evolve internally throw API version
Health State API embedded
ISOLATION
IN SPACE
Discovery or Gateway to find out the MS Location – not hard coded
Independent scale out/down
ISOLATION
IN TIME
No wait for other MS. Async message Driven mimic and Not Blocking also.
Eventual consistency is a MUST
ISOLATION
IN FAILURE
Other consequences on other MS if there is a failure
ISOLATION TENCHIQUES
BULK HEADING
Failure is isolated in failure zones (made by more ms)
Failure is not propagated
It admits a degraded flow but not dead flow => doubling the way or
Health API
CIRCUIT BREAKER
Problem: OverLoaded Services? pMaybe other MS could retry and
worse the situation.
With a 3 state semaphore, I can send the retry time or predict it !!
COMPETING CONSUMER
Message Driven: Enqueue, Exchange, Dequeue with Async messaging
ISOLATION TECNIQUES
GATEWAY SERVICES
Managing complexitty: Who
aggregates MS.API in macro
services? Should client know
how to aggregate MS.API? i
client hanno bisogno di
gestire loro i casini di
disponibilità dei micro servizi?
PROXY/GATEWAY: not only
binding! But aggregation also.AUTONOMY:
Every service must have strategies to solve its wn problem (mantaining internal state, with
eventual consistency, avoiding direct dependencies on external services
REACTIVE PROGRAMMING
Small discrete steps
async based, with CALLBACK:
- FUTURE/PROMISES
- STREAMS
ANY DOUBT?
Is it possible to have ReactiveProgramming without a
Reactive System?
YES. Examples:
1) One unique node => No Resilience
2) Local cache and no way to sync cache with other nodes
=> NO Elasticity
ACTOR MODEL
• An Actor is a primitive unit of computation
• Actors are completely isolated from each other
• They will never share memory.
• Actor can maintain a private state
• They come in systems, never alone
• They need to have addresses
• It will just execute one at a time
• Concurrence means Actor of Actors
• Communicate with asynchronous messages
When an actor receives a
message, it can do one of
these 3 things:
A) Create more actors
B) Send messages to other actors
C) Designate what to do with the next message
LOCATION TRANSPARENCY
LOCATION TRANSPARENCY:
Local or remote, it doesnt matter.
They ca be ROUTEE, routed by a ROUTER
YES. I can send msgs to a Router, without knowing about
the subscribers.
WE HAVE TO COMBINE REACTIVE Systems, message driven, in order to have
Location Transparency. Location TRANSPARENCY = Elasticty + Resilience
REACTIVE SYSTEMWITHOUT ACTORS?
Could be…
1. Service Registry
2. Load Balancer
3. Message BUS
4. Service that interchange msgs using a BUS
IT’s a reactive system... But not inside the Microservices,
because they lack of an Observer, and there isnt an entity
alive.
HEXAGONAL ARCHITECTURE
WHAT’S ABOUT THE REAL DESIGN?
• HEXAGON Fulcrum is DOMAIN
• 2 SIDES, RIGHT & LEFT
• FIRST SIDE: DATA SIDE API with ADAPTERS to
DBs, Fs, etc. consumed by DOMAIN
• SECOND SIDE: USER SIDE API, where PORTS
(they are API) that serve Domain data to USER
(interface, API, message broker)
• INFRASTRUCTURE: where
Adapters maps PORTS
REAL DECOUPLING || REAL PORTABILITY || REAL SCALING
“My 2 cents ..
DEMO
Event GRID
ORLEANS
Everything is an actor.
Computational entity that, in response to a message it receives,
can concurrently:
• send a finite number of messages to other actors;
• create a finite number of new actors;
• designate the behavior to be used for the next message it
receives.
Asynchronous communication and control
structures
Recipients of messages are identified by address, sometimes
called "mailing address". Thus an actor can only communicate
with actors whose addresses it has.
Event GRID
QUESTA E' la chiamata da mettere nel WebHook del EventGrid
https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={systemkey}
COME SI FA ad ottenere la system key? QUESTA è la chiamata GET per ottenere la SystemKEY
http://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code={masterkey}
DA DOVE PRENDI LA MASTER KEY? Pubblichi la funzione, vai su MANAGE e trovi la _Master
ESEMPIO COMPLETO:
http://FuncAppEventTrigger20190422124458.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code=Sri9I
KxvpbbpJdFn6dF3dlXZoAuk4DF6URWYf5g1yVGw1A0q0787AQ==
ECCO LA RISPOSTA:
QUINDI:
https://FuncAppEventTrigger20190422124458.azurewebsites.net/runtime/webhooks/eventgrid?functionName=StartSessi
on&code=Bks9oZKL9VS9aB2O/Poir073bW671UBZhGc34//vdK9ZtMqw2ZwQiQ==
{
"name": "eventgrid_extension",
"value": "Bks9oZKL9VS9aB2O/Poir073bW671UBZhGc34//vdK9ZtMqw2ZwQiQ==",
"links": [{
"rel": "self",
"href": "https://funcappeventtrigger20190422124458.azurewebsites.net/admin/host/systemkeys/eventgrid_extension"
}]
}
Azure Maps
• SDK WEB
• API REST
• Map controls
• Android SDK
• Azure Maps Services
• Rendering service
• Route planning service
• Research service
• Time zone service
• Traffic information service
• IP to location (country)
• Batch geocoding service
• Batch routing service
Azure Container Instances
Advantages:
- Start containers in seconds => NO NEED to
provision VMs.
- Simple Public IP connectivity and DNS
name
- Exact specifications of CPU cores and
memory
- Get billed by the second
NEWS: Virtual network deployment (preview)
NOTES:
• Persist state with Azure Container
Instances, we offer direct mounting of
Azure Files shares.
• Azure Container Instances can schedule
both Windows and Linux containers with
the same API
• Co-scheduled groups that share a host
machine, local network, storage, and
lifecycle
Great solution for
- isolated containers
- including simple applications
- task automation
- jobs
Azure Container Instances
Co-scheduled groups that share a host
machine, local network, storage, and lifecycle
az container create --resource-group myResourceGroup --file deploy-aci.yaml
DEMO
USE CASE
Thanks
Questions?
https://github.com/zama202 @riccardozamana https://www.linkedin.com/in/riccardozamana/

More Related Content

Similar to Azure reactive systems

Magento Developer Talk. Microservice Architecture and Actor Model
Magento Developer Talk. Microservice Architecture and Actor ModelMagento Developer Talk. Microservice Architecture and Actor Model
Magento Developer Talk. Microservice Architecture and Actor Model
Igor Miniailo
 
distcomp.ppt
distcomp.pptdistcomp.ppt
distcomp.ppt
kaoutarghaffour
 
distcomp.ppt
distcomp.pptdistcomp.ppt
distcomp.ppt
kaoutarghaffour
 
distcomp.ppt
distcomp.pptdistcomp.ppt
distcomp.ppt
Sathya266487
 
Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating System
AjithaG9
 
Designing distributed systems
Designing distributed systemsDesigning distributed systems
Designing distributed systems
Malisa Ncube
 
CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMS
Kathirvel Ayyaswamy
 
Tef con2016 (1)
Tef con2016 (1)Tef con2016 (1)
Tef con2016 (1)
ggarber
 
Distributed Computing
Distributed ComputingDistributed Computing
Distributed Computing
adil raja
 
Zookeeper big sonata
Zookeeper  big sonataZookeeper  big sonata
Zookeeper big sonataAnh Le
 
Reactive programming with rx java
Reactive programming with rx javaReactive programming with rx java
Reactive programming with rx java
CongTrung Vnit
 
Client Server Model and Distributed Computing
Client Server Model and Distributed ComputingClient Server Model and Distributed Computing
Client Server Model and Distributed Computing
Abhishek Jaisingh
 
Cloud Native & Service Mesh
Cloud Native & Service MeshCloud Native & Service Mesh
Cloud Native & Service Mesh
Roi Ezra
 
Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016
Peter Lawrey
 
Operating System- INTERPROCESS COMMUNICATION.docx
Operating System- INTERPROCESS COMMUNICATION.docxOperating System- INTERPROCESS COMMUNICATION.docx
Operating System- INTERPROCESS COMMUNICATION.docx
minaltmv
 
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
confluent
 
Updated: Should you be using an Event Driven Architecture
Updated: Should you be using an Event Driven ArchitectureUpdated: Should you be using an Event Driven Architecture
Updated: Should you be using an Event Driven Architecture
Jeppe Cramon
 
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
confluent
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
Sistek Yazılım
 
KEY CONCEPTS FOR SCALABLE STATEFUL SERVICES
KEY CONCEPTS FOR SCALABLE STATEFUL SERVICESKEY CONCEPTS FOR SCALABLE STATEFUL SERVICES
KEY CONCEPTS FOR SCALABLE STATEFUL SERVICES
Mykola Novik
 

Similar to Azure reactive systems (20)

Magento Developer Talk. Microservice Architecture and Actor Model
Magento Developer Talk. Microservice Architecture and Actor ModelMagento Developer Talk. Microservice Architecture and Actor Model
Magento Developer Talk. Microservice Architecture and Actor Model
 
distcomp.ppt
distcomp.pptdistcomp.ppt
distcomp.ppt
 
distcomp.ppt
distcomp.pptdistcomp.ppt
distcomp.ppt
 
distcomp.ppt
distcomp.pptdistcomp.ppt
distcomp.ppt
 
Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating System
 
Designing distributed systems
Designing distributed systemsDesigning distributed systems
Designing distributed systems
 
CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMS
 
Tef con2016 (1)
Tef con2016 (1)Tef con2016 (1)
Tef con2016 (1)
 
Distributed Computing
Distributed ComputingDistributed Computing
Distributed Computing
 
Zookeeper big sonata
Zookeeper  big sonataZookeeper  big sonata
Zookeeper big sonata
 
Reactive programming with rx java
Reactive programming with rx javaReactive programming with rx java
Reactive programming with rx java
 
Client Server Model and Distributed Computing
Client Server Model and Distributed ComputingClient Server Model and Distributed Computing
Client Server Model and Distributed Computing
 
Cloud Native & Service Mesh
Cloud Native & Service MeshCloud Native & Service Mesh
Cloud Native & Service Mesh
 
Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016
 
Operating System- INTERPROCESS COMMUNICATION.docx
Operating System- INTERPROCESS COMMUNICATION.docxOperating System- INTERPROCESS COMMUNICATION.docx
Operating System- INTERPROCESS COMMUNICATION.docx
 
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
 
Updated: Should you be using an Event Driven Architecture
Updated: Should you be using an Event Driven ArchitectureUpdated: Should you be using an Event Driven Architecture
Updated: Should you be using an Event Driven Architecture
 
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
KEY CONCEPTS FOR SCALABLE STATEFUL SERVICES
KEY CONCEPTS FOR SCALABLE STATEFUL SERVICESKEY CONCEPTS FOR SCALABLE STATEFUL SERVICES
KEY CONCEPTS FOR SCALABLE STATEFUL SERVICES
 

More from Riccardo Zamana

Copilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana
 
At the core you will have KUSTO
At the core you will have KUSTOAt the core you will have KUSTO
At the core you will have KUSTO
Riccardo Zamana
 
Data saturday malta - ADX Azure Data Explorer overview
Data saturday malta - ADX Azure Data Explorer overviewData saturday malta - ADX Azure Data Explorer overview
Data saturday malta - ADX Azure Data Explorer overview
Riccardo Zamana
 
MCT Virtual Summit 2021
MCT Virtual Summit 2021MCT Virtual Summit 2021
MCT Virtual Summit 2021
Riccardo Zamana
 
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Riccardo Zamana
 
Azure Data Explorer deep dive - review 04.2020
Azure Data Explorer deep dive - review 04.2020Azure Data Explorer deep dive - review 04.2020
Azure Data Explorer deep dive - review 04.2020
Riccardo Zamana
 
Azure Industrial Iot Edge
Azure Industrial Iot EdgeAzure Industrial Iot Edge
Azure Industrial Iot Edge
Riccardo Zamana
 
Time Series Analytics Azure ADX
Time Series Analytics Azure ADXTime Series Analytics Azure ADX
Time Series Analytics Azure ADX
Riccardo Zamana
 
Azure satpn19 time series analytics with azure adx
Azure satpn19   time series analytics with azure adxAzure satpn19   time series analytics with azure adx
Azure satpn19 time series analytics with azure adx
Riccardo Zamana
 
Industrial iot: dalle parole ai fatti
Industrial iot: dalle parole ai fatti Industrial iot: dalle parole ai fatti
Industrial iot: dalle parole ai fatti
Riccardo Zamana
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
Riccardo Zamana
 
Industrial Iot - IotSaturday
Industrial Iot - IotSaturday Industrial Iot - IotSaturday
Industrial Iot - IotSaturday
Riccardo Zamana
 
Industrial IoT on azure
Industrial IoT on azureIndustrial IoT on azure
Industrial IoT on azure
Riccardo Zamana
 

More from Riccardo Zamana (13)

Copilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
 
At the core you will have KUSTO
At the core you will have KUSTOAt the core you will have KUSTO
At the core you will have KUSTO
 
Data saturday malta - ADX Azure Data Explorer overview
Data saturday malta - ADX Azure Data Explorer overviewData saturday malta - ADX Azure Data Explorer overview
Data saturday malta - ADX Azure Data Explorer overview
 
MCT Virtual Summit 2021
MCT Virtual Summit 2021MCT Virtual Summit 2021
MCT Virtual Summit 2021
 
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
 
Azure Data Explorer deep dive - review 04.2020
Azure Data Explorer deep dive - review 04.2020Azure Data Explorer deep dive - review 04.2020
Azure Data Explorer deep dive - review 04.2020
 
Azure Industrial Iot Edge
Azure Industrial Iot EdgeAzure Industrial Iot Edge
Azure Industrial Iot Edge
 
Time Series Analytics Azure ADX
Time Series Analytics Azure ADXTime Series Analytics Azure ADX
Time Series Analytics Azure ADX
 
Azure satpn19 time series analytics with azure adx
Azure satpn19   time series analytics with azure adxAzure satpn19   time series analytics with azure adx
Azure satpn19 time series analytics with azure adx
 
Industrial iot: dalle parole ai fatti
Industrial iot: dalle parole ai fatti Industrial iot: dalle parole ai fatti
Industrial iot: dalle parole ai fatti
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Industrial Iot - IotSaturday
Industrial Iot - IotSaturday Industrial Iot - IotSaturday
Industrial Iot - IotSaturday
 
Industrial IoT on azure
Industrial IoT on azureIndustrial IoT on azure
Industrial IoT on azure
 

Recently uploaded

Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
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
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
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
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
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
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
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
 
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
 
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
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 

Recently uploaded (20)

Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
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
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
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
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
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...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
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?
 
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 -...
 
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
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 

Azure reactive systems

  • 5. Intro ..where are we going?.. • Why reactive architecture is important? • What problem it's trying to solve? • How are Reactive Systems related to Reactive Programming? … Is "wrong" the answer, really?
  • 6. The past and the present Key factor Yesterday Today Size of Installation Large inst - Few nodes Small inst – many nodes Among of data Gbs Tbs/Pb Data change Nightly (batches) Constantly change Maintenance Window 3 hours … Comeback later! 101% SLA User patience < 30sec < 3sec
  • 7. Whats happen • In case of failure, is difficult to recover data stream • 100% SLA is achievable • Small maintenance, no more hours • Micro Deployments are born • User patience is less then 3seconds • Software must respond… otherwise user search for alternatives
  • 8. REACTIVE Does! PROVIDE THE SAME EXPERIENCE IN EVERY KIND OF CONDITION
  • 9. PRINCIPLES RESPONSIVE (faster then ever) • Generate USER CONFIDENCE RESILIENT (remain responsive in case of failure) • Replication,Isolation, Containment, Delegation • Failures isolated in every single component • Only recovery may be delegated to external components ELASTIC (active during deployments or scaling) • responsive during scale out or scale down • predictive auto scaling tecnique • cost effectiveness MESSAGE Driven (async, non blocking) • Decouple everything, isolation, location transparency • Resource Consumption only when are «active and «GREEN LIGHT»
  • 10. Programming vs Architecture • Reactive SYSTEMS: Apply principles to Architecture • Reactive Programming: Used to implement Reactive Systems • RX.NET is only a programming tecnique • You can do a ReactiveSystem WITHOUT ReactiveProgramming • REACTIVE Systems (based on Reactive Microservice) are separated throw Async mimic and boundaries Reactive Programming VS Reactive Systems/Architecture
  • 11. REACTIVE MICROSERVICES Entities/Domains with dedicated services, with different Database, using other services throw API. My Opinion: No Black, nor white. But a spectrum of capabilities between Monolith and MicroServices MicroServ is a SOA subsystem… but the difference? • Independent Govern • Async communication • Continuous deloyment • Independent team delivery SINGLE RESPONSABILITY PRICIPLE <||> BOUNDED CONTEXT Remember the SOA dream?
  • 12. KEYWORD n.1: ISOLATION ISOLATION IN STATE No backdoor straight to other DBs Evolve internally throw API version Health State API embedded ISOLATION IN SPACE Discovery or Gateway to find out the MS Location – not hard coded Independent scale out/down ISOLATION IN TIME No wait for other MS. Async message Driven mimic and Not Blocking also. Eventual consistency is a MUST ISOLATION IN FAILURE Other consequences on other MS if there is a failure
  • 13. ISOLATION TENCHIQUES BULK HEADING Failure is isolated in failure zones (made by more ms) Failure is not propagated It admits a degraded flow but not dead flow => doubling the way or Health API CIRCUIT BREAKER Problem: OverLoaded Services? pMaybe other MS could retry and worse the situation. With a 3 state semaphore, I can send the retry time or predict it !! COMPETING CONSUMER Message Driven: Enqueue, Exchange, Dequeue with Async messaging
  • 14. ISOLATION TECNIQUES GATEWAY SERVICES Managing complexitty: Who aggregates MS.API in macro services? Should client know how to aggregate MS.API? i client hanno bisogno di gestire loro i casini di disponibilità dei micro servizi? PROXY/GATEWAY: not only binding! But aggregation also.AUTONOMY: Every service must have strategies to solve its wn problem (mantaining internal state, with eventual consistency, avoiding direct dependencies on external services
  • 15. REACTIVE PROGRAMMING Small discrete steps async based, with CALLBACK: - FUTURE/PROMISES - STREAMS
  • 16. ANY DOUBT? Is it possible to have ReactiveProgramming without a Reactive System? YES. Examples: 1) One unique node => No Resilience 2) Local cache and no way to sync cache with other nodes => NO Elasticity
  • 17. ACTOR MODEL • An Actor is a primitive unit of computation • Actors are completely isolated from each other • They will never share memory. • Actor can maintain a private state • They come in systems, never alone • They need to have addresses • It will just execute one at a time • Concurrence means Actor of Actors • Communicate with asynchronous messages When an actor receives a message, it can do one of these 3 things: A) Create more actors B) Send messages to other actors C) Designate what to do with the next message
  • 18. LOCATION TRANSPARENCY LOCATION TRANSPARENCY: Local or remote, it doesnt matter. They ca be ROUTEE, routed by a ROUTER YES. I can send msgs to a Router, without knowing about the subscribers. WE HAVE TO COMBINE REACTIVE Systems, message driven, in order to have Location Transparency. Location TRANSPARENCY = Elasticty + Resilience
  • 19. REACTIVE SYSTEMWITHOUT ACTORS? Could be… 1. Service Registry 2. Load Balancer 3. Message BUS 4. Service that interchange msgs using a BUS IT’s a reactive system... But not inside the Microservices, because they lack of an Observer, and there isnt an entity alive.
  • 21. WHAT’S ABOUT THE REAL DESIGN? • HEXAGON Fulcrum is DOMAIN • 2 SIDES, RIGHT & LEFT • FIRST SIDE: DATA SIDE API with ADAPTERS to DBs, Fs, etc. consumed by DOMAIN • SECOND SIDE: USER SIDE API, where PORTS (they are API) that serve Domain data to USER (interface, API, message broker) • INFRASTRUCTURE: where Adapters maps PORTS REAL DECOUPLING || REAL PORTABILITY || REAL SCALING
  • 23. DEMO
  • 25. ORLEANS Everything is an actor. Computational entity that, in response to a message it receives, can concurrently: • send a finite number of messages to other actors; • create a finite number of new actors; • designate the behavior to be used for the next message it receives. Asynchronous communication and control structures Recipients of messages are identified by address, sometimes called "mailing address". Thus an actor can only communicate with actors whose addresses it has.
  • 26. Event GRID QUESTA E' la chiamata da mettere nel WebHook del EventGrid https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={systemkey} COME SI FA ad ottenere la system key? QUESTA è la chiamata GET per ottenere la SystemKEY http://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code={masterkey} DA DOVE PRENDI LA MASTER KEY? Pubblichi la funzione, vai su MANAGE e trovi la _Master ESEMPIO COMPLETO: http://FuncAppEventTrigger20190422124458.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code=Sri9I KxvpbbpJdFn6dF3dlXZoAuk4DF6URWYf5g1yVGw1A0q0787AQ== ECCO LA RISPOSTA: QUINDI: https://FuncAppEventTrigger20190422124458.azurewebsites.net/runtime/webhooks/eventgrid?functionName=StartSessi on&code=Bks9oZKL9VS9aB2O/Poir073bW671UBZhGc34//vdK9ZtMqw2ZwQiQ== { "name": "eventgrid_extension", "value": "Bks9oZKL9VS9aB2O/Poir073bW671UBZhGc34//vdK9ZtMqw2ZwQiQ==", "links": [{ "rel": "self", "href": "https://funcappeventtrigger20190422124458.azurewebsites.net/admin/host/systemkeys/eventgrid_extension" }] }
  • 27. Azure Maps • SDK WEB • API REST • Map controls • Android SDK • Azure Maps Services • Rendering service • Route planning service • Research service • Time zone service • Traffic information service • IP to location (country) • Batch geocoding service • Batch routing service
  • 28. Azure Container Instances Advantages: - Start containers in seconds => NO NEED to provision VMs. - Simple Public IP connectivity and DNS name - Exact specifications of CPU cores and memory - Get billed by the second NEWS: Virtual network deployment (preview) NOTES: • Persist state with Azure Container Instances, we offer direct mounting of Azure Files shares. • Azure Container Instances can schedule both Windows and Linux containers with the same API • Co-scheduled groups that share a host machine, local network, storage, and lifecycle Great solution for - isolated containers - including simple applications - task automation - jobs
  • 29. Azure Container Instances Co-scheduled groups that share a host machine, local network, storage, and lifecycle az container create --resource-group myResourceGroup --file deploy-aci.yaml
  • 30. DEMO
  • 32.

Editor's Notes

  1. Size of Sw installation is grown (multi node..ten) Among of data (gb of data) Data at REST: non cambiava frequentemente (batch notturno) Long mantenance windows is changed (reduced) Oggi NEWER sistem small installation + scaleout petabytes! il dato czmbia costanatemente
  2. se c'è un fallback, non siamo in grado di recuperare..troppi dati 100% uptime è raggungibile. No more mantenance per ore.. per aggiornamenti NON ACCEPTABLE DEployment è cambiato Natura del cambiamento. Utente odierno Cambiata l'aspettativa dell'utente. poche ore di down.. gran casini ora! gmail giu? github giu? o365 giu? In quanto tempo devono rispondere? 30secondi? noooooo utenti non vogliono aspettare. Sito è giu, passa dopo... MORTO! il software eve rispondere. altrimenti oggi.. ne ccerco un altro.
  3. Non cambia in qualsiasi condizione!
  4. RESILIENT (remain responsive in case of failure) ELASTIC (rimane attivo anche se lo cambio sotto) << Scalability sia in scale UP, ma anche in SCALE DOWN << MOOOLLTO DIFFICILE!! MESSAGE Driven (async, non blocking) GREENLIGHT = CIRCUIT BREAKER con semaforo di stato
  5. Remember the SOA dream? Entità/Dominio hanno servizi staccati, ognuno con un DB - mai dritti sul DB ma sempre via API MicroServ è un sottoinsieme di SOA. Deploy è indipendente, questa è la differenza e ognuno scala come vuole. MicroServ è govern independent comunicazione async continuous deloyment team delivery in modo indipendente (tramite versioni di api differenti) i model comuni..... sono il primo errore per me!!! CQRS ragazzi, CQRS!! SINGLE RESPONSABILITY PRICIPLE BOUNDED CONTEXT
  6. ISOLATION! STATE, SPACE, TIME, FAILURE Quindi devo dare ad ognuno una dimensione propria. Il problema quindi è la correlazione! ISOLATION IN STATE no backdoor per andare drritti verso DB evolve internally tru API versioni ogni ms deve avere il proprio API di stato SPAZIO non devo avere il punto fisico dove c'è un Microservice (discovery? Gateway?) scale out/down indipendente TIME: no wait altri microservices. Async message Driven. async and Non Blocking Eventual consistency between ISOLATION IN FAILURE gli altri non devono fallire se uno fallisce
  7. BulkHEading (scompartimenti della nave) failure is isolated in failure zone (fatte da piu microservizi) non propaga fallimento teoricamente sta in piedi cn degrado ma non fallimento totale => doppia strada? oppure chiamo API Status, e avviso che non è su. OverLoaded Services? chiamo un ms già stressato, e faccio retry... e peggioro solo lo stato di stress CIRCUIT BREAKER: Il ms ha un semaforo che dice se è verde/giallo/rosso dando info per il retry o il fail. (chiamami poco, chiamami pure quanto vuoi, chiamami tra un po sono fallito) MEssageDriven Architecture Async messaging
  8. AUTONOMY: Autonomous Service – every service must have strategies to solve its wn problem (mantaining internal state, with eventual consistency, avoiding direct dependencies on external services GATEWAY SERVICES Managing complexitty: Who aggregates MS.API in macro services? Should client know how to aggregate MS.API? i client hanno bisogno di gestire loro i casini di disponibilità dei micro servizi? i PROXY/GATEWAY: non fanno SOLO binding!!! ma fanno aggregazione! così il client rimane ignorante
  9. Is it possible to have ReactiveProgramming without a Reactive System? YES. Examples: 1) One unique node => No Resilience 2) Local cache e no way per fare sync con altri nodi... => NO ELASTIC
  10. DOMMINIO => API => Infrastructure (che adapts incoming e outcoming traffic into the ports) fa in modo che il domian sia portable (cambio il DATA SIDE tra cloud e onprem) FACCIO Adattatori verso DATI li chiamo come librerie dentro il DOMAIN nel DOMAIN mappo verso i dati POI FAccio le API verso i DOMINI API non sanno ildb , ma sanno solo che usi un dominio il dominio è fatto di ATTORI? 1) DOMINIO CHIAMA ADAPTERS verso API (PORTS) DEI DATASOURCE 2) USER CHIAMA API (PORTS) CHE MAPPANO API di DOMINIO
  11. DEMO DI RX.NET ARCHITETTURA LAMBDA SU AZURE con MAPPA