Edge Computing
Goal
Commons Host should offer edge computing as a service/platform. This is becoming a new primitive in web development. Having an open source and open standards based implementation would be meaningful to anyone wanting to avoid vendor lock-in of proprietary solutions.
Many existing "FaaS" (Functions as a Service) platforms are based on VM/container technology which is not competitive with current, best-of-breed, commercial offerings.
Motivation
Edge computing changes the performance and cost metrics of backend services. Previous migrations of such significance were from dedicated servers in fixed clusters to "clouds" of virtual machines that can scale up or down by instance unit size.
Edge computing scales both up and down:
- Down aka Scaling to Zero - At rest an edge computing unit is just code in persistent (redundant) storage. No CPU or RAM overhead, no minimum instance size, absolutely minimal cost.
- Up aka Scaling to Infinity - Incoming requests or other triggers would launch edge computing instances. The minimum active instance is a CPU thread. With asynchronous code threads could be idled in RAM or swap. This means all CPU cores on all edge servers could theoretically be activated to run the same code at extreme peak demands, without the overhead of setting up monitoring and "auto" scaling as for cloud computing with VMs.
Alternatives
Name | Health | Ownership | Platform | Supported | URL |
---|---|---|---|---|---|
OpenFaas | Alive | FOSS | Docker on Kubernetes/Swarm | Any container | https://www.openfaas.com |
Asyncy | Alive | Proprietary | Kubernetes | Custom DSL | https://asyncy.com |
Fastly Lucet | Alive | FOSS | WASI | WASM | https://www.fastly.com/blog/announcing-lucet-fastly-native-webassembly-compiler-runtime |
Cloudflare Workers | Alive | Proprietary | V8 Isolates | JS/WASM | https://www.cloudflare.com/products/cloudflare-workers/ |
AWS Lambda | Alive | Proprietary | Node.js, Python, Java, Go, Ruby, and C# | https://aws.amazon.com/lambda/ | |
Google Cloud Functions | Alive | Proprietary | Node.js, Python, and Go | https://cloud.google.com/functions/ | |
Microsoft Azure Functions | Alive | Proprietary | various Microsoft languages | https://azure.microsoft.com/en-us/services/functions/ | |
Zeit Now | Alive | Proprietary | Node.js | https://zeit.co/now | |
Firecracker (AWS) | Alive | FOSS | KVM | microVM | https://firecracker-microvm.github.io |
Fn Project (Oracle) | Dead | FOSS | Docker | Any container | http://fnproject.io |
OpenLambda | Dead | FOSS | https://github.com/open-lambda/open-lambda | ||
VMWare Dispatch | Dead | FOSS | https://github.com/vmware/dispatch | ||
Apache OpenWhisk (IBM) | Alive | FOSS | Kubernetes | Many language runtimes | https://openwhisk.apache.org |
Platform9 Fission | Alive | FOSS | Kubernetes | Any container | https://fission.io |
Iron Functions | Dead | FOSS | Docker | Go | https://open.iron.io |
Nuclio | Alive | FOSS | Docker Swarm or Kubernetes | SDK for Go, Python, Java, .Net | https://nuclio.io |
Binaris | Alive | Proprietary | Node.js and Python | https://www.binaris.com |
See Also
Edited by Sebastiaan Deckers