SlideShare a Scribd company logo
1 of 25
Download to read offline
No More, No Less
A Formal Model for Serverless Computing
Maurizio Gabbrielli, Ivan Lanese, Stefano Pio Zingaro
INRIA, France / Università di Bologna, Italy
Coordination 2019
Saverio Giallorenzo, Fabrizio Montesi, Marco Peressotti
University of Southern Denmark, Denmark
A gentle introduction to “serverless”...
...
Adapted from “Serverless Architecture Patterns” by Abby Fuller, AWS
Event Source Function Cloud Architecture
A gentle introduction to “serverless”...
Monolith Microservices Serverless
provisioned,
pay-per-deployment
on-demand,
pay-per-execution
A gentle introduction to “serverless”...
Monolith Microservices Serverless
A gentle introduction to “serverless”...
Monolith Microservices Serverless
?!
Still rough
around theedges
A gentle introduction to “serverless”...
https://aws.amazon.com/serverless/
Tailor
A gentle introduction to “serverless”...
https://github.com/alanwill/aws-tailor
Tailor
an excerpt
… and its current limitations (non-exhaustive)
● Currently ~15’ execution timeout;
● No function-to-function invocation. Functions need an in-between
stateful service to call each other;
● Sparse coordination logic.
… and its current limitations (non-exhaustive)
● Traffic-dependent scaling of
functions implies:
○ complex cost model;
○ complex system load
estimations.
● Poor performance for
standard communication
patterns
Jonas, Eric, et al. "Cloud Programming Simplified: A Berkeley View on Serverless Computing."
Block
Storage
Object
Storage
File
System
Elastic
Database
Memory
Store
Function access
Transparent
Provisioning
Availability and
persistence
Latency
Costs
… and its current limitations (non-exhaustive)
Lock-in due to absence of standards on:
● function support/execution environments;
● function call semantics;
● semantics of stateful services.
Direction
● We want to study S.C. avoiding any vendor/technology specifics
● We need a formal model for Serverless Computing that
○ Captures current incarnations of S.C.
(e.g. event-based, storage-mediated as in AWS)
○ Supports proposed approaches/features
(e.g. function-to-function invocation, updatable function definitions)
Serverless Kernel Calculus (SKC)
● Systems: ⟨S,𝒟⟩
● Function definitions: f↦M
● Running functions: c◂M
Repository of function definitionsNetwork of running functions
λ-termFunction name
λ-termPromise
Serverless Kernel Calculus (SKC)
● Systems: ⟨S,𝒟⟩
● Function definitions: f↦M
● Running functions: c◂M
Repository of function definitionsNetwork of running functions
λ-termFunction name
λ-termPromise
Serverless Kernel Calculus (SKC)
● Systems: ⟨S,𝒟⟩
● Function definitions: f↦M
● Running functions: c◂M
Repository of function definitionsNetwork of running functions
λ-termFunction name
λ-termPromise
Serverless Kernel Calculus (SKC)
● Systems: ⟨S,𝒟⟩
● Function definitions: f↦M
● Running functions: c◂M
Repository of function definitionsNetwork of running functions
λ-termFunction name
λ-termPromise
SKC function terms
M ::= M M' ∣ V
∣ f
∣ async M
∣ set f M
∣ take f
V ::= x ∣ λx.M
∣ c
⟨ℰ[async M],𝒟⟩ ⟶ ⟨ℰ[c] ∣ c◂M,𝒟⟩
⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩
⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩
Function invocation
Asynchronous eval
Function Repository
Updates
⟨ℰ[f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟⟩
Futures ⟨c◂V ∣ S,𝒟⟩ ⟶ ⟨S[V/c],𝒟⟩
SKC function terms
M ::= M M' ∣ V
∣ f
∣ async M
∣ set f M
∣ take f
V ::= x ∣ λx.M
∣ c
⟨ℰ[async M],𝒟⟩ ⟶ ⟨ℰ[c] ∣ c◂M,𝒟⟩
⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩
⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩
Function invocation
Asynchronous eval
Function Repository
Updates
⟨ℰ[f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟⟩
Futures ⟨c◂V ∣ S,𝒟⟩ ⟶ ⟨S[V/c],𝒟⟩
SKC function terms
M ::= M M' ∣ V
∣ f
∣ async M
∣ set f M
∣ take f
V ::= x ∣ λx.M
∣ c
⟨ℰ[async M],𝒟⟩ ⟶ ⟨ℰ[c] ∣ c◂M,𝒟⟩
⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩
⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩
Function invocation
Asynchronous eval
Function Repository
Updates
Futures ⟨c◂V ∣ S,𝒟⟩ ⟶ ⟨S[V/c],𝒟⟩
SKC function terms
M ::= M M' ∣ V
∣ f
∣ async M
∣ set f M
∣ take f
V ::= x ∣ λx.M
∣ c
⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩
⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩
Function invocation
Asynchronous eval
Function Repository
Updates
Futures
SKC function terms
M ::= M M' ∣ V
∣ f
∣ async M
∣ set f M
∣ take f
V ::= x ∣ λx.M
∣ c
⟨ℰ[async M],𝒟⟩ ⟶ ⟨ℰ[c] ∣ c◂M,𝒟⟩
⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩
⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩
Function invocation
Asynchronous eval
Function Repository
Updates
⟨ℰ[f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟⟩
Futures ⟨c◂V ∣ S,𝒟⟩ ⟶ ⟨S[V/c],𝒟⟩
λ + Futures + Function Repository
Programmable events in SKC
● Store handlers for event e in the definition repository 𝒟:
install_handler ↦ λe.λhandler.
let old_handler = take e
let new_handler = λv.do async (handler v)
(current_handler v)
set e new_handler
● Raise event e (with v) by invoking its handlers in 𝒟:
e v
● ( See the paper for Tailor in SKC )
Programmable events in SKC
● Store handlers for event e in the definition repository 𝒟:
install_handler ↦ λe.λhandler.
let old_handler = take e
let new_handler = λv.do async (handler v)
(current_handler v)
set e new_handler
● Raise event e (with v) by invoking its handlers in 𝒟:
e v
● ( See the paper for Tailor in SKC )
Updatable function
definitions
Programmable events in SKC
● Store handlers for event e in the definition repository 𝒟:
install_handler ↦ λe.λhandler.
let old_handler = take e
let new_handler = λv.do async (handler v)
(current_handler v)
set e new_handler
● Raise event e (with v) by invoking its handlers in 𝒟:
e v
● ( See the paper for Tailor in SKC )
Updatable function
definitions
Function-to-function
invocation
Conclusions and future work
We introduced SKC a Kernel Calculus for Serverless Computing:
● Build on established models (λ-calculus + futures + function repository)
● captures current programming models
● supports next-gen features e.g. function-to-function invocation
Serverless: current challenges SKC: research direction
The coordination logic is spare and
loosely-consistent
Choreographic Programming
targeting SKC.
Estimation of performance and
costs is complex
Quantitative SKC
No More, No Less
λ + Futures + Function Repository
=
A formal model for Serverless Computing
Thanks for your attention

More Related Content

What's hot

Real World Optimization
Real World OptimizationReal World Optimization
Real World OptimizationDavid Golden
 
InfluxData Platform Future and Vision
InfluxData Platform Future and VisionInfluxData Platform Future and Vision
InfluxData Platform Future and VisionInfluxData
 
Qsam simulator in IBM Quantum Lab cloud
Qsam simulator in IBM Quantum Lab cloudQsam simulator in IBM Quantum Lab cloud
Qsam simulator in IBM Quantum Lab cloudVijayananda Mohire
 
Passing stuctures to function
Passing stuctures to functionPassing stuctures to function
Passing stuctures to functionALI RAZA
 
OPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKOPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKInfluxData
 
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData InfluxData
 
Node Summit 2018 - Optimize your Lambda functions
Node Summit 2018 - Optimize your Lambda functionsNode Summit 2018 - Optimize your Lambda functions
Node Summit 2018 - Optimize your Lambda functionsMatt Lavin
 
.Net Garbage Collector 101
.Net Garbage Collector 101.Net Garbage Collector 101
.Net Garbage Collector 101Woody Pewitt
 
Two-StageCreation
Two-StageCreationTwo-StageCreation
Two-StageCreationgillygize
 
MBrace: Large-scale cloud computation with F# (CUFP 2014)
MBrace: Large-scale cloud computation with F# (CUFP 2014)MBrace: Large-scale cloud computation with F# (CUFP 2014)
MBrace: Large-scale cloud computation with F# (CUFP 2014)Eirik George Tsarpalis
 
IBM Spectrum Control creating a heat map with Cognos
IBM Spectrum Control creating a heat map with CognosIBM Spectrum Control creating a heat map with Cognos
IBM Spectrum Control creating a heat map with CognosJohan van Arendonk
 
Dask for Fast Distributed Batch Scoring of Computer Vision Workloads
Dask for Fast Distributed Batch Scoring of Computer Vision WorkloadsDask for Fast Distributed Batch Scoring of Computer Vision Workloads
Dask for Fast Distributed Batch Scoring of Computer Vision WorkloadsMathew Salvaris
 
Small eigen collider
Small eigen colliderSmall eigen collider
Small eigen colliderAndrew Grimm
 
Nextflow and AWS Batch - GCC/BOSC 2018
Nextflow and AWS Batch - GCC/BOSC 2018Nextflow and AWS Batch - GCC/BOSC 2018
Nextflow and AWS Batch - GCC/BOSC 2018Francesco Strozzi
 
Improving Performance of a WebKit Port MIPS Platform (ELC 2014)
Improving Performance of a WebKit Port MIPS Platform (ELC 2014)Improving Performance of a WebKit Port MIPS Platform (ELC 2014)
Improving Performance of a WebKit Port MIPS Platform (ELC 2014)Igalia
 
Deswik Software Suite v5.0: Pseudoflow pit optimization algorithm
Deswik Software Suite v5.0: Pseudoflow pit optimization algorithmDeswik Software Suite v5.0: Pseudoflow pit optimization algorithm
Deswik Software Suite v5.0: Pseudoflow pit optimization algorithmDeswik
 

What's hot (20)

Real World Optimization
Real World OptimizationReal World Optimization
Real World Optimization
 
InfluxData Platform Future and Vision
InfluxData Platform Future and VisionInfluxData Platform Future and Vision
InfluxData Platform Future and Vision
 
Qsam simulator in IBM Quantum Lab cloud
Qsam simulator in IBM Quantum Lab cloudQsam simulator in IBM Quantum Lab cloud
Qsam simulator in IBM Quantum Lab cloud
 
Passing stuctures to function
Passing stuctures to functionPassing stuctures to function
Passing stuctures to function
 
Gearman & PHP
Gearman & PHPGearman & PHP
Gearman & PHP
 
OPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKOPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACK
 
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
 
Flamingo in Production
Flamingo in ProductionFlamingo in Production
Flamingo in Production
 
Node Summit 2018 - Optimize your Lambda functions
Node Summit 2018 - Optimize your Lambda functionsNode Summit 2018 - Optimize your Lambda functions
Node Summit 2018 - Optimize your Lambda functions
 
.Net Garbage Collector 101
.Net Garbage Collector 101.Net Garbage Collector 101
.Net Garbage Collector 101
 
Two-StageCreation
Two-StageCreationTwo-StageCreation
Two-StageCreation
 
MBrace: Large-scale cloud computation with F# (CUFP 2014)
MBrace: Large-scale cloud computation with F# (CUFP 2014)MBrace: Large-scale cloud computation with F# (CUFP 2014)
MBrace: Large-scale cloud computation with F# (CUFP 2014)
 
ES6 ECMA2015
ES6 ECMA2015ES6 ECMA2015
ES6 ECMA2015
 
V781 throttling
V781 throttlingV781 throttling
V781 throttling
 
IBM Spectrum Control creating a heat map with Cognos
IBM Spectrum Control creating a heat map with CognosIBM Spectrum Control creating a heat map with Cognos
IBM Spectrum Control creating a heat map with Cognos
 
Dask for Fast Distributed Batch Scoring of Computer Vision Workloads
Dask for Fast Distributed Batch Scoring of Computer Vision WorkloadsDask for Fast Distributed Batch Scoring of Computer Vision Workloads
Dask for Fast Distributed Batch Scoring of Computer Vision Workloads
 
Small eigen collider
Small eigen colliderSmall eigen collider
Small eigen collider
 
Nextflow and AWS Batch - GCC/BOSC 2018
Nextflow and AWS Batch - GCC/BOSC 2018Nextflow and AWS Batch - GCC/BOSC 2018
Nextflow and AWS Batch - GCC/BOSC 2018
 
Improving Performance of a WebKit Port MIPS Platform (ELC 2014)
Improving Performance of a WebKit Port MIPS Platform (ELC 2014)Improving Performance of a WebKit Port MIPS Platform (ELC 2014)
Improving Performance of a WebKit Port MIPS Platform (ELC 2014)
 
Deswik Software Suite v5.0: Pseudoflow pit optimization algorithm
Deswik Software Suite v5.0: Pseudoflow pit optimization algorithmDeswik Software Suite v5.0: Pseudoflow pit optimization algorithm
Deswik Software Suite v5.0: Pseudoflow pit optimization algorithm
 

Similar to No More, No Less: A Formal Model for Serverless Computing

Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
 
StackWatch: A prototype CloudWatch service for CloudStack
StackWatch: A prototype CloudWatch service for CloudStackStackWatch: A prototype CloudWatch service for CloudStack
StackWatch: A prototype CloudWatch service for CloudStackChiradeep Vittal
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVMJohn Lee
 
Serverless in-action
Serverless in-actionServerless in-action
Serverless in-actionAssaf Gannon
 
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav DukhinFwdays
 
Saturn 2019 - Serveless Integration on Kubernetes/OpenShift by Kurt Stam
Saturn 2019 - Serveless Integration on Kubernetes/OpenShift by Kurt StamSaturn 2019 - Serveless Integration on Kubernetes/OpenShift by Kurt Stam
Saturn 2019 - Serveless Integration on Kubernetes/OpenShift by Kurt StamKurt Stam
 
Devfest 2023 - Service Weaver Introduction - Taipei.pdf
Devfest 2023 - Service Weaver Introduction - Taipei.pdfDevfest 2023 - Service Weaver Introduction - Taipei.pdf
Devfest 2023 - Service Weaver Introduction - Taipei.pdfKAI CHU CHUNG
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesClaus Ibsen
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...Amazon Web Services
 
Caching with Varnish
Caching with VarnishCaching with Varnish
Caching with Varnishschoefmax
 
How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...Animesh Singh
 
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and AnsibleService Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and AnsibleIsaac Christoffersen
 
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...Codemotion
 
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...Codemotion
 
Apache Spark Streaming: Architecture and Fault Tolerance
Apache Spark Streaming: Architecture and Fault ToleranceApache Spark Streaming: Architecture and Fault Tolerance
Apache Spark Streaming: Architecture and Fault ToleranceSachin Aggarwal
 
Node.js kubernetes-cloud all the buzzwords coming together with microsoft azure
Node.js kubernetes-cloud all the buzzwords coming together with microsoft azureNode.js kubernetes-cloud all the buzzwords coming together with microsoft azure
Node.js kubernetes-cloud all the buzzwords coming together with microsoft azurePatriek van Dorp
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile InfrastructuresAntons Kranga
 
2023-09-28-AWS Las Palmas UG - Dynamic Anti-Frigile Systems.pdf
2023-09-28-AWS Las Palmas UG - Dynamic Anti-Frigile Systems.pdf2023-09-28-AWS Las Palmas UG - Dynamic Anti-Frigile Systems.pdf
2023-09-28-AWS Las Palmas UG - Dynamic Anti-Frigile Systems.pdfAndrey Devyatkin
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerAndrew Phillips
 

Similar to No More, No Less: A Formal Model for Serverless Computing (20)

Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...
 
StackWatch: A prototype CloudWatch service for CloudStack
StackWatch: A prototype CloudWatch service for CloudStackStackWatch: A prototype CloudWatch service for CloudStack
StackWatch: A prototype CloudWatch service for CloudStack
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVM
 
Serverless in-action
Serverless in-actionServerless in-action
Serverless in-action
 
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
 
Saturn 2019 - Serveless Integration on Kubernetes/OpenShift by Kurt Stam
Saturn 2019 - Serveless Integration on Kubernetes/OpenShift by Kurt StamSaturn 2019 - Serveless Integration on Kubernetes/OpenShift by Kurt Stam
Saturn 2019 - Serveless Integration on Kubernetes/OpenShift by Kurt Stam
 
Devfest 2023 - Service Weaver Introduction - Taipei.pdf
Devfest 2023 - Service Weaver Introduction - Taipei.pdfDevfest 2023 - Service Weaver Introduction - Taipei.pdf
Devfest 2023 - Service Weaver Introduction - Taipei.pdf
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Caching with Varnish
Caching with VarnishCaching with Varnish
Caching with Varnish
 
How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...
 
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and AnsibleService Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
 
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
 
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
 
Apache Spark Streaming: Architecture and Fault Tolerance
Apache Spark Streaming: Architecture and Fault ToleranceApache Spark Streaming: Architecture and Fault Tolerance
Apache Spark Streaming: Architecture and Fault Tolerance
 
Node.js kubernetes-cloud all the buzzwords coming together with microsoft azure
Node.js kubernetes-cloud all the buzzwords coming together with microsoft azureNode.js kubernetes-cloud all the buzzwords coming together with microsoft azure
Node.js kubernetes-cloud all the buzzwords coming together with microsoft azure
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
 
Concurrecny inf sharp
Concurrecny inf sharpConcurrecny inf sharp
Concurrecny inf sharp
 
2023-09-28-AWS Las Palmas UG - Dynamic Anti-Frigile Systems.pdf
2023-09-28-AWS Las Palmas UG - Dynamic Anti-Frigile Systems.pdf2023-09-28-AWS Las Palmas UG - Dynamic Anti-Frigile Systems.pdf
2023-09-28-AWS Las Palmas UG - Dynamic Anti-Frigile Systems.pdf
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
 

Recently uploaded

Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgsaravananr517913
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitterShivangiSharma879191
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm Systemirfanmechengr
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptJasonTagapanGulla
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 

Recently uploaded (20)

Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm System
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.ppt
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 

No More, No Less: A Formal Model for Serverless Computing

  • 1. No More, No Less A Formal Model for Serverless Computing Maurizio Gabbrielli, Ivan Lanese, Stefano Pio Zingaro INRIA, France / Università di Bologna, Italy Coordination 2019 Saverio Giallorenzo, Fabrizio Montesi, Marco Peressotti University of Southern Denmark, Denmark
  • 2. A gentle introduction to “serverless”... ... Adapted from “Serverless Architecture Patterns” by Abby Fuller, AWS Event Source Function Cloud Architecture
  • 3. A gentle introduction to “serverless”... Monolith Microservices Serverless provisioned, pay-per-deployment on-demand, pay-per-execution
  • 4. A gentle introduction to “serverless”... Monolith Microservices Serverless
  • 5. A gentle introduction to “serverless”... Monolith Microservices Serverless ?! Still rough around theedges
  • 6. A gentle introduction to “serverless”... https://aws.amazon.com/serverless/ Tailor
  • 7. A gentle introduction to “serverless”... https://github.com/alanwill/aws-tailor Tailor an excerpt
  • 8. … and its current limitations (non-exhaustive) ● Currently ~15’ execution timeout; ● No function-to-function invocation. Functions need an in-between stateful service to call each other; ● Sparse coordination logic.
  • 9. … and its current limitations (non-exhaustive) ● Traffic-dependent scaling of functions implies: ○ complex cost model; ○ complex system load estimations. ● Poor performance for standard communication patterns Jonas, Eric, et al. "Cloud Programming Simplified: A Berkeley View on Serverless Computing." Block Storage Object Storage File System Elastic Database Memory Store Function access Transparent Provisioning Availability and persistence Latency Costs
  • 10. … and its current limitations (non-exhaustive) Lock-in due to absence of standards on: ● function support/execution environments; ● function call semantics; ● semantics of stateful services.
  • 11. Direction ● We want to study S.C. avoiding any vendor/technology specifics ● We need a formal model for Serverless Computing that ○ Captures current incarnations of S.C. (e.g. event-based, storage-mediated as in AWS) ○ Supports proposed approaches/features (e.g. function-to-function invocation, updatable function definitions)
  • 12. Serverless Kernel Calculus (SKC) ● Systems: ⟨S,𝒟⟩ ● Function definitions: f↦M ● Running functions: c◂M Repository of function definitionsNetwork of running functions λ-termFunction name λ-termPromise
  • 13. Serverless Kernel Calculus (SKC) ● Systems: ⟨S,𝒟⟩ ● Function definitions: f↦M ● Running functions: c◂M Repository of function definitionsNetwork of running functions λ-termFunction name λ-termPromise
  • 14. Serverless Kernel Calculus (SKC) ● Systems: ⟨S,𝒟⟩ ● Function definitions: f↦M ● Running functions: c◂M Repository of function definitionsNetwork of running functions λ-termFunction name λ-termPromise
  • 15. Serverless Kernel Calculus (SKC) ● Systems: ⟨S,𝒟⟩ ● Function definitions: f↦M ● Running functions: c◂M Repository of function definitionsNetwork of running functions λ-termFunction name λ-termPromise
  • 16. SKC function terms M ::= M M' ∣ V ∣ f ∣ async M ∣ set f M ∣ take f V ::= x ∣ λx.M ∣ c ⟨ℰ[async M],𝒟⟩ ⟶ ⟨ℰ[c] ∣ c◂M,𝒟⟩ ⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩ ⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩ Function invocation Asynchronous eval Function Repository Updates ⟨ℰ[f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟⟩ Futures ⟨c◂V ∣ S,𝒟⟩ ⟶ ⟨S[V/c],𝒟⟩
  • 17. SKC function terms M ::= M M' ∣ V ∣ f ∣ async M ∣ set f M ∣ take f V ::= x ∣ λx.M ∣ c ⟨ℰ[async M],𝒟⟩ ⟶ ⟨ℰ[c] ∣ c◂M,𝒟⟩ ⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩ ⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩ Function invocation Asynchronous eval Function Repository Updates ⟨ℰ[f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟⟩ Futures ⟨c◂V ∣ S,𝒟⟩ ⟶ ⟨S[V/c],𝒟⟩
  • 18. SKC function terms M ::= M M' ∣ V ∣ f ∣ async M ∣ set f M ∣ take f V ::= x ∣ λx.M ∣ c ⟨ℰ[async M],𝒟⟩ ⟶ ⟨ℰ[c] ∣ c◂M,𝒟⟩ ⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩ ⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩ Function invocation Asynchronous eval Function Repository Updates Futures ⟨c◂V ∣ S,𝒟⟩ ⟶ ⟨S[V/c],𝒟⟩
  • 19. SKC function terms M ::= M M' ∣ V ∣ f ∣ async M ∣ set f M ∣ take f V ::= x ∣ λx.M ∣ c ⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩ ⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩ Function invocation Asynchronous eval Function Repository Updates Futures
  • 20. SKC function terms M ::= M M' ∣ V ∣ f ∣ async M ∣ set f M ∣ take f V ::= x ∣ λx.M ∣ c ⟨ℰ[async M],𝒟⟩ ⟶ ⟨ℰ[c] ∣ c◂M,𝒟⟩ ⟨ℰ[set f M],𝒟⟩ ⟶ ⟨ℰ[f],𝒟[f↦M]⟩ ⟨ℰ[take f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟∖f⟩ Function invocation Asynchronous eval Function Repository Updates ⟨ℰ[f],𝒟[f↦M]⟩ ⟶ ⟨ℰ[M],𝒟⟩ Futures ⟨c◂V ∣ S,𝒟⟩ ⟶ ⟨S[V/c],𝒟⟩ λ + Futures + Function Repository
  • 21. Programmable events in SKC ● Store handlers for event e in the definition repository 𝒟: install_handler ↦ λe.λhandler. let old_handler = take e let new_handler = λv.do async (handler v) (current_handler v) set e new_handler ● Raise event e (with v) by invoking its handlers in 𝒟: e v ● ( See the paper for Tailor in SKC )
  • 22. Programmable events in SKC ● Store handlers for event e in the definition repository 𝒟: install_handler ↦ λe.λhandler. let old_handler = take e let new_handler = λv.do async (handler v) (current_handler v) set e new_handler ● Raise event e (with v) by invoking its handlers in 𝒟: e v ● ( See the paper for Tailor in SKC ) Updatable function definitions
  • 23. Programmable events in SKC ● Store handlers for event e in the definition repository 𝒟: install_handler ↦ λe.λhandler. let old_handler = take e let new_handler = λv.do async (handler v) (current_handler v) set e new_handler ● Raise event e (with v) by invoking its handlers in 𝒟: e v ● ( See the paper for Tailor in SKC ) Updatable function definitions Function-to-function invocation
  • 24. Conclusions and future work We introduced SKC a Kernel Calculus for Serverless Computing: ● Build on established models (λ-calculus + futures + function repository) ● captures current programming models ● supports next-gen features e.g. function-to-function invocation Serverless: current challenges SKC: research direction The coordination logic is spare and loosely-consistent Choreographic Programming targeting SKC. Estimation of performance and costs is complex Quantitative SKC
  • 25. No More, No Less λ + Futures + Function Repository = A formal model for Serverless Computing Thanks for your attention