Skip to content

A comparison of hosts / providers for Python serverless functions (aka Faas)

License

Notifications You must be signed in to change notification settings

hbmartin/comparison-hosts-serverless-cloud-function-faas-for-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Comparing hosts / providers for serverless cloud functions (FaaS) for Python

discord twitter

No Python support: Netlify Edge Functions, StackPath EdgeEngine. IBM Cloud Functions are deprecated.

This document provides a comparison between hosted, serverless (no cost or management to spin down to zero) providers of cloud function hosts with Python runtimes. Note the distinction between edge providers (execution at PoP) and non-edge (typically predetermined DS region).

Please join our discussions or fix/update information by editing this doc!

See also the Serverless SQL DB Comparison

DevEx

Python Version Status API Framework Requirements Local Testing Docs Hello World
Alibaba Cloud Function Compute 3.10 GA Plain object Vend in zip 🎉 Link
AWS Lambda & Lambda@Edge 3.12 GA Plain object Vend in zip 👍 Link
Azure Functions 3.11 GA azure functions 🎉 Link
Cloudflare Workers (WASM) 3.12 Beta fastapi and others 🚫 🚫 🎉 Link
Fermyon (WASM) 3.11+ No-native Spin 🎉 Link
Fly.io (microVM) Any GA Any 👍 Link
Google / Firebase Cloud Functions 3.12 GA Flask 🎉
IBM Code Engine 3.11 GA Plain object 👍 Link
Oracle (OCI) Functions 3.11 GA FDK Min. Link
Tencent Cloud Functions 3.6 GA SCF Vend in zip Min. Link
Vercel Functions 3.12 Beta HTTP handler or WSGI / ASGI 👍 Link

Pricing

Note that the "Free Plan" is intended to represent ongoing free resources i.e. not trials or sign-up credits.

Free Plan Bill Limits First Paid Tier
Alibaba Cloud Function Compute 3 month trial with resource limits ? Based on requests and resources
AWS Lambda 1m reqs / mo + 400,000 GB-s / mo (based on memory configuration) + data egress (~$0.09 per GB) 🚫 $0.20 per 1m reqs + $0.00001667 per GB-s (over free tier) + data egress (~$0.09 per GB)
AWS Lambda@Edge None 🚫 $0.60 per 1m reqs + $0.00000625125 per GB-s + egress (~$0.09 per GB)
Azure Functions 1m reqs / mo + 400,000 GB-s / mo + first 100 GB / mo egress Yes $0.20 per 1m reqs + $0.000016 per GB-s (over free) + $0.08 per GB egress (over 100 GB)
Cloudflare Workers 100k reqs / day, 10ms CPU / req ? $20 / mo for 10m reqs / mo, 30ms CPU / req + $0.02 per million CPU ms
Fermyon 100k reqs + 5GB egress NA 1m reqs + 50GB egress at $20 / mo
Fly.io 3 shared-cpu-1x 256mb VMs + 100GB egress NA Depends on VM + $0.02 per GB egress (over free, min $5 / mo) + $0.15 per GB / mo stopped VMs
Google / Firebase Cloud Functions 2m / mo reqs + 400k / mo GB-s + 200k / mo CPU-s + 5 GB / mo egress Yes $0.40 per 1m reqs + $0.0000025 per GB-s + $0.0000100 per CPU-s + $0.12 per GB egress
IBM Code Engine 100k vCPU-s + 200k GB-s + 100k reqs per mo ? $0.00003431 / vCPU-s + $0.00000356 / GB-s + $0.538 / 1m reqs
Oracle (OCI) Functions 2m / mo reqs + 400k / mo GB-s Yes $0.0000002 per req + $0.00001417 per GB-s
Tencent Cloud Functions 3 month trial with resource limits ? $0.0000167 per GB-s + $0.002 per 10k reqs + $0.00000847 per idle GB-s + $0.06 per day + $0.0752 per GB egress
Vercel Functions 100 GB-hrs + 100 GB data transfer Yes 1,000 GB-hrs + 1TB data transfer

reqs = requests, m = million, mo = month, s = seconds, mem = memory, k = thousand, ms = milliseconds

Runtime Limits

Memory Execution Time (s) Payloads (MB) Code Size (MB) Scale Limits
Default Max Default Max Request Response
Alibaba Cloud Function Compute 32 GB 32 GB 86k 86k 32 ? 500 300
AWS Lambda 128 MB 10 GB 3s 15min 6 6 50 (zip) 10k per reg. per sec.
AWS Lambda@Edge 128 MB 3 GB 3s 30s ? 1 50 (zip) 10k per reg. per sec.
Azure Functions 1.5 GB 14 GB 5min 10min 100 ? ? 100 inst.
Cloudflare Workers 128 MB 128 MB 10ms 30ms ? ? 1 / 10 100 / 500
Fermyon ? ? 30s 30s ? ? 100 1k RPS
Fly.io 256 MB 128 GB NA NA NA NA NA NA
Google / Firebase Cloud Functions - 32GB - 60min 32 32 None 1k RPS / inst.
IBM Code Engine 2 GB 4 GB 120s - ? ? 100 KB ?
Oracle (OCI) Functions 128 MB 2 GB 30s 300s ? ? ? 40 GB total mem
Tencent Cloud Functions 64 MB 3 GB 1s 900s 6 6 500 (unzip) 64 GB total mem
Vercel Functions 1 GB 3 GB 10s 300s ? ? 250 (zip) 1k RPS per 10 sec per reg

AWS allocates 1 vCPU per 1,769 MB of memory configured.

Other Platform Products

SQL DB No SQL DB Blob Store File Hosting GPU
Alibaba Cloud Function Compute
AWS Lambda and Lambda@Edge
Azure Functions
Cloudflare Workers SQLite
Fermyon SQLite 🚫 🚫 🚫
Fly.io 🚫 🚫
Google / Firebase Cloud Functions
IBM Code Engine
Oracle (OCI) Functions
Tencent Cloud Functions
Vercel Functions 🚫

Performance (median times)

TODO: Need a benchmark suite for Python, see this JS suite

PoPs (if edge) or regions Uptime Cold Response (ms) Warm Response (ms) Overhead (ms)
Alibaba Cloud Function Compute
AWS Lambda
AWS Lambda@Edge
Azure Functions
Fermyon
Fly.io
Google / Firebase Cloud Functions
IBM Code Engine
Oracle (OCI) Functions
Tencent Cloud Functions
Vercel Functions

Security Considerations

TODO: e.g. compliance certifications, data encryption, and network security options

See also awesome serverless security

Discussions, Community, and Support

Ours Forum GitHub SO Reddit
Alibaba Cloud Function Compute Link Forum SO r/AlibabCloud
AWS Lambda and Lambda@Edge Link re:Post GitHub SO r/aws
Azure Functions Link Forum GitHub SO r/AZURE
Cloudflare Workers Link Forum SO r/CloudFlare
Fermyon Link Discord Feedback SO
Fly.io Link Forum SO
Google / Firebase Cloud Functions Link Group GitHub SO r/Firebase and r/googlecloud
IBM Code Engine Link Slack GitHub SO
Oracle (OCI) Functions Link Forum GitHub SO r/oraclecloud
Vercel Functions Link Help GitHub SO r/Vercel

References and Useful Links