/serverless-computing-resources

A collection of important resources including current university research on serverless computing.

Serverless Computing

Cloud Vendors Serverless

  • CloudFunctios: Cloud Functions is serverless execution environment to deploy and run single purpose functions that are invoked in response to events triggers or HTTP requests. Main advantages of CloudFunctions are: no servers to provision, manage, or upgrade, automatically scale based on the load, integrated logging & monitoring with stackdriver, builtin security and key networking features for hybrid and multi-cloud senarios. But they come with some limitations..
  • Cloud Run: Cloud Run is fully managed google cloud service that can be used to develop and deploy highly scalable containeraized applications written in any language in fully managed serverless platform. This serverless platform is build upon an open standard Knative Serving, that enables rapid deployement of serverless containers in Kubernetes with 'scale to zero' functionality.
  • App Engine: App Engine is gcp service that can be used to build and deploy highly availbale applications on fully managed serverless platform. It has support for wide range of languages in standard environment and any languages in case of flexible environment setup.
  • AWS Lambda: AWS Lambda is a serverless compute service that lets you deploy and run code in wide range of runtimes, that can be configured to be triggered by 100s of AWS services or call it directly from web or mobile app . You can upload code as zip, container image, use template or write from scratch. Some advantages of AWS Lambda are: no servers to provision or manage, continuous scaling based on the size of workload and requests/triggers, integrated logging & monitoring with cloudwatch, cost-optimized with millisecond metering and . But they come with some limitations.
  • AWS Fargate: AWS Fargate is fully managed serverless compute engine for containers that works with both Amazon Elastic Container Service and Amazon Elastic Kubernetes Service.Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design.
  • AWS SQS: AWS SQS is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications. SQS scales elastically with your application so you don’t have to worry about capacity planning and pre-provisioning. There is no limit to the number of messages per queue, and standard queues provide nearly unlimited throughput.
  • AWS DyanamoDB: AWS DyanamodDB is fully managed, key-value and document database that delivers very high performance in scale of single-digit millisecond at any scale. It is serverless with no need to provision and manage servers that automatically scales up and down the tables to adjust capacity based on load.
  • Others: AWS also have other services that falls under serverless computing landscape such as: for application integration: Amazon EventBridge, AWS Setup Functions, Amazon SQS, Amazon SNS, Amazon API Gateway, Amazon AppSync and for data store: AWS S3, Amazon Dynamodb, Amazon RDS Proxy and Amazon Aurora Serverless.

Opensource Serverless Frameworks

  • Apache OpenWhisk: It is opensource serverless platform that allows to execute code in response to events at any scale. This framework written in Scala lanaguage, process the inputs from triggers like HTTP requests and later fires snippet of code on either JavaScript or Swift.
  • Fission: It is a serverless computing framework that enables developers to build short lived functions in Kubernetes, and map them to event triggers like HTTP requests.
  • IronFunctios: It is serverless computing framework that offers a cohesive microservices platform by integrating its existing services and embracing Docker. It is written in Go language.
  • Fn Project: It is opensource container native serverless platform that can be run anywhere cloud or premise.
  • Kubeless: It is kubernetes native serverless platform that lets you deploy small bits of code without having to worry about underlying K8s infrastructure.
  • Knative Serving: It is Kubernetes based serverless microservices with "scale-to-zero" functionality. With Knative serving, you can build and deploy serverless applications and functions in Kubernetes and used Istio to scale, rapidly deploy serverless containers, automatic scalig down to zero, routing and networking with Istio, point in time snapshots of deployed code and configuratiions.
  • OpenFaas: It is framework for building serverless functions with Docker and Kubernetes, with support for metrics.
  • nuclio: A high-performance serverless framework focused on data, I/O, and compute intensive workloads. It is well integrated with popular data science tools, such as Jupyter and Kubeflow; supports a variety of data and streaming sources; and supports execution over CPUs and GPUs.
  • Hydrosphere Mist: It is serverless proxy for Apache Spark clusters.
  • Hydrosphere ML Lambda: It is Open source model management cluster for deploying, serving and monitoring machine learning models and ad-hoc algorithms with a FaaS architecture.

Online Courses

Articles and Blogs

General Serverless

Serverless for AI and Machine Learning

Current University Research

George Mason University:

University of Chicago:

Georgia Tech:

International Serverless Conference

Serverless Publications/Journals