Session together with Pim at a RubiX event. Regarding an introduction to serverless architecture (FaaS) concluding with a demo using the AWS stack (Lambda, IoT, API Gateway, DynamoDB) with a raspberryPI and AngularJS2 front-end.
4. Evolution of runtimes
• Monolithic runtime
• Multiple applications/services share a single runtime
• Containerization
• A single application/service runs in its own runtime
(container)
• Serverless
• Every request/message is handled in its own runtime
10. Amazon AWS Lambda
• First commercial offering for FaaS / serverless
• Tightly integrated in the AWS Cloud Offering
• Amazon API Gateway
• API Gateway can forward requests to AWS Lambda
applications
• Faas triggers include
• Amazon DynamoDB table updates
• Object modifications in AWS Buckets
• Amazon Kinesis stream
• Amazon IoT events
• Billing is for uptime – pay per use
• Billing is metered in increments of 100 milliseconds
12. Google functions
• Triggers include
• HTTP triggers
• Cloud pub/sub triggers*
• Cloud storage triggers**
• Direct triggers
Currently the following technologies are supported:
• NodeJS
*Google Cloud Pub/Sub is a fully-managed real-time messaging service that
allows you to send and receive messages between independent applications.
**Cloud Functions can respond to Object Change Notifications emerging
from Google Cloud Storage. These change notifications are triggered in
response to object addition (create), update (modify), or deletion.
13. Azure functions
• Triggers include
• Timer based triggers
• Azure service triggers (record inserted in Azure db)
• Microsoft SaaS triggers (e.g. file is uploaded to one Drive)
• HTTP triggers
• Streaming triggers
• Cortana/chat bot triggers
• Currently the following technologies are supported:
• NodeJS
• C#
• F#
• Python
• PHP
14. Challenges and advantages
• Challenges
• No form of state (Session, object, etc.) can be stored/used in the
function. This includes in memory state!
• Execution time is restricted, AWS Lambda restricts execution
time to 5 minutes.
• Startup latency
• Advantages
• "Infinite" scalability
• Easier operational management
• Greener computing
• Reduced packaging/deployment complexity