5. ⬡ AWS Lambda lets you run code without provisioning or managing
servers. You pay only for the compute time you consume - there is no
charge when your code is not running. With Lambda, you can run
code for virtually any type of application or backend service - all with
zero administration.
— According to AWS Developer Guide
AWS Lambda
6. Serverless are applications where some amount of server-side logic is
written by the application developer but is run in stateless compute
containers that are event-triggered, ephemeral, and fully managed by
a third party. Serverless is also called Function As A Service (FaaS).
— According to Martin Fowler
Serverless
7. How does Serverless help?
It helps developers focus on the core business problem and reduces
the amount of code they need to write by abolishing the need to run
servers and manage infrastructure.
16. 1. Lock into AWS ecosystem
2. New tech that is not battled tested throughout history
3. Long running task that cannot be split into smaller subtasks
4. Non customizable execution environment
5. Not ideal for complex computations with high resource requirements
Drawbacks
18. API Gateway
Example 1 - API Backend
Lambda DynamoDB
S3
1. Download static website
2. AJAX request to website
3. Proxy HTTP message 4. Get state from storage
19. Example 2 - Image Compression
LambdaS3
1. User uploads photo
2. Notify that photo
has been uploaded
3. Process photo
and store result
S3
20. CloudWatch Event
Example 3 - Cron Management
Lambda
Every 5 minutes
CloudWatch Event Lambda
Every 6 hours
21. Example 4 - Auxilliary FaaS
LambdaServer
1. Register to website 3. Async Invoke Lambda
4. Send
confirmation e-mail
Mailchimp
2. Save to
database
Database
22. Example 5 - Data Pipeline
Lambda Redshift
1. Send data
2. Filtered data 3. Transformed data
Lambda
25. ⬡ Google Cloud Functions
⬡ IBM OpenWhisk
⬡ Auth0 webtask.io
⬡ Azure Cloud Functions
Alternatives
26. References
⬡ AWS Lambda documentation
http://docs.aws.amazon.com/lambda/latest/dg/welcome.html?shortFooter=true
⬡ Awesome curated list of server less resources
https://github.com/anaibol/awesome-serverless
⬡ Another list of awesome server less resources
https://github.com/ServerlessHeroes/serverless-resources
https://www.reddit.com/r/serverless/
https://martinfowler.com/articles/serverless.html
Architectural patterns are not straightforward => a. Limited information, tooling & frameworks b.New tech stack that is not battled tested throughout history
No easy way to shut the system down if required
programming language/version is not supported
Resource = memory and GPU