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

  • https://www.martinfowler.com/articles/serverless.html
  • https://twitter.com/copyconstruct/status/1112652524119441408
Edited Apr 04, 2019 by Sebastiaan Deckers
Assignee Loading
Time tracking Loading