Providers

The serverless technology has raised a lot of eyebrows in the community in the last few years and a few big players have stepped up to release their own serverless compute infrastructure platforms.

The Serverless Framework recognizes the concerns involving provider lock-in and complexity to adopt these platforms. The Serverless Framework provides flexibility for the developer to pick an infrastructure provider of their choosing, develop and deploy applications using it.

Commercial Hosted Platforms

We will take a look at some popular commercial hosted platforms, namely, AWS Lambda, Microsoft Azure Functions, Google Cloud Functions, and IBM Cloud Functions in more detail.

A Comparative Look

Features/Providers AWS Lambda Azure Functions Google Cloud Functions IBM Cloud Functions  
Language Support Node.js, Java, C#, Python Node.js, C#, F#, Python, PHP Node.js Node.js, Python, Java, Swift, Docker  
Security AWS IAM, VPC support OAuth providers such as Azure Active Directory, Facebook, Google, Twitter, and Microsoft Account Cloud IAM IBM Cloud IAM, OAuth providers such as Google, Facebook, and GitHub.  
Monitoring AWS CloudWatch Azure Application Insights Stackdriver Monitoring IBM Cloud Functions Dashboard  
Logging AWS CloudWatch Azure Application Insights Analytics Stackdriver Logging IBM Cloud Functions Dashboard  
Auditing AWS CloudTrail Azure Audit Logs Cloud Audit Logging    
Alerts AWS CloudWatch Alarms Azure Application Insights, Log Analytics, and Azure Monitor Stackdriver Monitoring IBM Cloud Functions Dashboard  
Tooling Support AWS CodePipeline, AWS CodeBuild Azure Portal, Azure Powershell, Azure CLI, Azure SDK gcloud CLI (beta) for functions IBM Cloud Functions UI, IBM Cloud Functions CLI, OpenWhisk Shell  
Debugging Support AWS X-Ray Azure CLI - local debugging, Azure App Service - remote debugging Stackdriver Debugger wskdb: The OpenWhisk Debugger openwhisk-light  
Pricing * $0.20/million requests with 1 million requests per month free.
More details…
* Execution Time: $0.000016/GBs, 400,000 GBs/month are free
* Total Executions: $0.20/million executions, with 1 million executions/month free
More details…
* Invocations: $0.40/million invocations with 2 million invocations free
* Compute Time: $0.0000025/GB-sec with 400,00 GB-sec/month free & $0.0000100/GHz-sec with 200,000 GHz-sec/month free
More details…
* Execution Time: $0.000017 GB-s, 400,000 GBs/month are free
* No extra charge per invocation or API gateway call
More details….
 
Limits * Memory allocation range: Min. 128 MB / Max. 1536 MB (with 64 MB increments)
* Ephemeral disk capacity (“/tmp” space): 512 MB
* Number of file descriptors: 1,024
* Number of processes and threads (combined total): 1,024
* Maximum execution duration per request: 300 seconds * Invoke request body payload size (RequestResponse): 6 MB * Invoke request body payload size (Event): 128 K
* Invoke response body payload size (RequestResponse): 6 MB
More details…
* Allow only 10 concurrent executions per function * No limitations on max. execution time limit Resource, Time and Rate Limits are defined under Google Cloud Functions Quota limits IBM Cloud Functions System Limits  

AWS Lambda

AWS Lambda is Amazon’s serverless compute offering, announced in 2015.

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. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app.

More details

Microsoft Azure Functions

Azure Functions is Microsoft’s serverless compute offering, announced in spring of 2016.

Process events with a serverless code architecture. An event-based serverless compute experience to accelerate your development. Scale based on demand and pay only for the resources you consume.

More details

Google Cloud Functions

Cloud Functions is Google’s serverless compute offering, with Beta announced in spring of 2017.

A serverless environment to build and connect cloud services. Construct applications from bite-sized business logic billed to the nearest 100 milliseconds, only while your code is running. Serve users from zero to planet-scale, all without managing any infrastructure.

More details

IBM Cloud Functions

IBM Cloud Functions is IBM’s serverless compute offering, based on Apache OpenWhisk, which launched in early 2016.

IBM Cloud Functions is an event-driven compute platform that executes application logic in response to events or through direct invocations–from web/mobile apps or other endpoints. The IBM Cloud Functions serverless architecture accelerates development as a set of small, distinct, and independent actions. By abstracting away infrastructure, IBM Cloud Functions frees members of small teams to rapidly work on different pieces of code simultaneously, keeping the overall focus on creating user experiences customers want.

More details

Opensource Platforms

We will take a look at some popular opensource platforms, namely, Kubeless, OpenFaaS, and Apache OpenWhisk in more detail.

A Comparative View

Features/Providers Kubeless OpenFaaS Apache OpenWhisk
Language Support Node.js, Python, Ruby    
Security Kubernetes Role Based Access Control (RBAC)    
Monitoring Prometheus    
Logging Fluentd    
Auditing      
Alerts Prometheus Alert Manager    
Tooling Support Kubeless UI, Kubeless CLI, Kubeless serverless plugin    
Debugging Support      
Pricing Open-source solution to be deployed for free on any Kubernetes cluster    
Limits Memory limits using Pod limits    

Kubeless

Kubeless is an open source project initiated by Bitnami, first introduced in December 2016.

Kubeless is a Kubernetes native serverless solution. It leverages Kubernetes API primitives to deploy functions within Kubernetes Pods and expose them via Kubernetes services. Functions can be triggered by events or via regular HTTP calls. Monitoring and scaling come from the underlying Kubernetes features.

More details


Credits: Rupak Ganguly (@rupakg), James Thomas (@thomasj) ***