SlideShare a Scribd company logo
1 of 15
Lorenzo Maiorfi
www.innovactive.it
maiorfi@innovactive.it
Serverless, actor-based,
flow-oriented e altri
gustosi pattern per lo
sviluppo di backend a
microservizi
#microservices #stateless #flowmodel #actormodel
Razionalizzare il back-end!
• Transaction Script?
• Active Record?
• DDD?
• CQRS?
• SOA?
• ???
Modularizzare il back-end!
Il modello a «microservizi» è allettante,
ma come implemento…
• Affidabilità?
• Disponibilità?
• Scalabilità?
• Performance?
Vogliamo provare…
• Serverless «lambda»-style
• Flow-oriented model
• Actor-based model
modello ≠ tecnologia!
«lambda»-style
Trigger  Task
• Concettualmente è
• Trigger di molti tipi (webhook, eventi di
servizi cloud di ingestion, UI, ecc.)
• Scalabililtà (scale-up, scale-out),
sicurezza, affidabilità e disponibilità
fornite dalla piattaforma (AWS Lambda,
Azure Functions, ecc.)
«lambda»-style
Stateless / Stateful
Stateless:
• Semplice
Stateful:
• Quando, dove, come e in che termini
persistere lo stato?
• Come orchestrare i «Durable Task»?
«lambda»-style
Demo Stateless
1. Azure Function (online) che processa
un webhook
2. Azure Function (offline) time-triggered
che invoca una API http-rest e
«pusha» messaggi in una coda
3. (+ applicazione NodeJS che processa
la coda…)
«lambda»-style
Demo Stateful (durable functions)
1. Sequence
2. Fan-Out / Fan-In
3. Stateful Singleton
4. Human Interaction
«flow»-style
Event driven (ogni messaggio è un evento
di attivazione di un flusso)
Intrinsecamente asincrono
Stateless per natura (e stateful a fatica)
Eccellente per sviluppare servizi adapter
di altri microservizi
La killer application è un «ingestor» IoT
«flow»-style
1. Node-Red, di IBM Engineering
Services, basato su NodeJS,
lightweight, adattissimo a scenari
«embedded»
2. Apache Ni-Fi, basato su Java,
rigoroso e strutturato, enterprise in
tutto e per tutto, ma molto più
«pesante»
«actor»-style
Il «modulo» è un attore, ossia
un tipo di oggetto con stato e
comportamento, ma che «parla»
con gli altri attori
ESCLUSIVAMENTE inviando e
ricevendo messaggi.
Intrinsecamente «protetto» da
potenziali race-conditions
perché single-threaded, scala
da paura!
«actor»-style
Demo
• Remotizzazione interazione Actors
• Clustering
• Supervisione gerarchica
• Persistenza
• Comportamento basato su stato
• Modello «middleware» a pipeline
CV (e qualsiasi altra cosa riteniate
interessante da valutare) a:
staff@innovactive.it
Lorenzo Maiorfi
www.innovactive.it
maiorfi@innovactive.it

More Related Content

Similar to Mokapp - Serveless

Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
MongoDB
 
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e MongodbRealizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
MongoDB
 
Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettive
Emanuele Della Valle
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
Luca Milan
 
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
Emanuele Della Valle
 

Similar to Mokapp - Serveless (20)

PHP Serverless in ambiente AWS
PHP Serverless in ambiente AWSPHP Serverless in ambiente AWS
PHP Serverless in ambiente AWS
 
Laravel & Passport
Laravel & PassportLaravel & Passport
Laravel & Passport
 
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
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
 
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e MongodbRealizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
 
Alla ricerca della ricerca - JeffConf Milan 2017
Alla ricerca della ricerca - JeffConf Milan 2017Alla ricerca della ricerca - JeffConf Milan 2017
Alla ricerca della ricerca - JeffConf Milan 2017
 
Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?
 
Code quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptCode quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScript
 
CQRS ed Event Sourcing su Windows Azure: Applicazioni Distribuite, Scalabilit...
CQRS ed Event Sourcing su Windows Azure: Applicazioni Distribuite, Scalabilit...CQRS ed Event Sourcing su Windows Azure: Applicazioni Distribuite, Scalabilit...
CQRS ed Event Sourcing su Windows Azure: Applicazioni Distribuite, Scalabilit...
 
Microservizi & DevOps
Microservizi & DevOpsMicroservizi & DevOps
Microservizi & DevOps
 
IAMdev @ TECH JOBS fair 2018 Pisa
IAMdev @ TECH JOBS fair 2018 PisaIAMdev @ TECH JOBS fair 2018 Pisa
IAMdev @ TECH JOBS fair 2018 Pisa
 
Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game Developers
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
Quando SOA Incontra Enterprise 2.0
Quando SOA Incontra Enterprise 2.0Quando SOA Incontra Enterprise 2.0
Quando SOA Incontra Enterprise 2.0
 
Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettive
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e Microservizi
 
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
 
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
 

Mokapp - Serveless