3. The Serverless Computing
Also known as Function as a Service(FaaS) or nano-service.
Deploy your applications as independent functions, that respond to events or
rest-api, charge you only when they run, and scale automatically.
4. FaaS
● AWS Lambda, Azure Functions, Google Cloud Functions*
● Backend code without explicit server or server app
● Usually small functions responding to events(nanoservices?)
● Can be written several popular languages (C#, Python, Nodejs,
Java...)
● Resources allocated when needed, surrendered after execution
● Horizontal scaling is automatic, elastic and managed by provider
● Open source and hybrid alternatives are available
5. FaaS
● Faster time to market, reduced packaging and deployment effort
● Improves developer productivity, focus on business logic
● Monitoring and logging built-in
● Can work with source control and CI
● Local dev tooling is improving
● Wide range of triggers and templates
● You are only charged when code is executing (memory*sec) • Eg. 128 MB for 8 seconds = 0.128gb * 8 = 1
GB-sec
● Greener computing
● Security
6. FaaS - concerns
• Execution environment limitations
• Time • Memory • Storage
• Throttling
• Startup latency
• All code must to be stateless
• Loss of sever-level optimization
• Testing
7. AWS Lambda Azure functions
JavaScript, Python, Java and C#
• Independent functions
• Versioning
• Limits
• 512mb (/tmp)
• 1000 - 3000 concurrent requests*
• 5 mins execution time
• Free:
• 1 million requests
• 0.4 million GB seconds
• 888 hours (128 MB)
* Depends on the region
Javascript, C#, F#, PHP, Python, Bash, PowerShell, Batch
• Functions grouped into App
• No versioning (yet)
• Open source
• Easy to use
• Lower execution cost (~22p/hr)
• Classic/Dynamic App Service Plan
Note: bandwidth, storage costs