@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
Stateless and ephemeral functions
Run in fully-managed containers
@lynnaloo
Developers focus on writing code
Easily deploy independent services
You pay only while your code runs
You don't pay for idle services
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
Open-source serverless compute platform
Executes functions with event triggers
@lynnaloo
@lynnaloo
The containers are Docker
All of the runtimes are all in Docker Hub
If you don't like them, roll your own!
You can also install it on your Kubernetes cluster
@lynnaloo
Load Balancing: Nginx
Orchestration: Custom Scala controller
System State: CouchDB
Event Bus: Kafka and Zookeeper
All of the above run as a container
@lynnaloo
Node.js and Python are pre-warmed and reliably fast on IBM Cloud
Slowest runtime is Java, but only on cold start
@lynnaloo
@lynnaloo
@lynnaloo
Azure's Serverless compute service
Focus is developer satisfaction
Function runtimes are open-source
Infrastructure is closed-source
Easy integrations with services like Event Grid and Logic Apps
@lynnaloo
All GA runtimes are "pre-warmed"
Java runtime is in preview, but will be GA soon
First class support for CloudEvents as part of EventGrid
@lynnaloo
Runtimes for Go and Powershell are "coming soon"
Working internally on better/more tools to facilitate local development
Azure Function Apps can be used to make much less awkward "pingers"
@lynnaloo
@lynnaloo
@lynnaloo
Google Cloud Platform's "event-driven compute service"
Last of the major four platforms to release a FaaS service
Supports both Node 8 and Python (Beta) runtimes
@lynnaloo
Cloud Functions probably are are definitely not using Kubernetes
Hot Take: Knative integration completes the circle for moving on-prem workloads directly into a serverless architecture
Another Hot Take: Serverless Containers is more interesting than Knative.
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
AWS Lambda was the first major FaaS service and is still the most widely used
There are more Lambdas in production than any other FaaS service
Has an execution environment of some sort that might be a is not a "container"
@lynnaloo
AWS operates internally less like a startup and more like a bank or trading floor
The future focus for Lambda is Enterprise support and adoption
Security and performance are key
AWS dogfoods Lambda internally and is supporting many services
@lynnaloo
Lambdas using Go are the fastest, followed by Java (not a cold start)
While C# is the slowest, it's a really tiny difference (sub-ms)
If you allocate more than 1.8GB of memory, it will get a multi-core CPU
@lynnaloo
If a runtime needs patching, all containers will be updated within 12 hours
Amazon will make cold starts not a thing by the end of the year
While not the primary focus, a hybrid-cloud solution may be in the near future
@lynnaloo
@lynnaloo
@lynnaloo
Don't create monolithic functions
Reduce unused dependencies
Minimize the code you write
Don't use Functions to replace other cloud services
Don't ping more than every 5 minutes
'use strict';
const catNames = require('cat-names');
function getCatName(event, context, callback) {
callback(null, { payload: `Your cat name is ${catNames.random()}.` });
}
module.exports = getCatName;
@lynnaloo
@lynnaloo
https://www.jeremydaly.com/15-key-takeaways-from-the-serverless-talk-at-aws-startup-day/
https://epsagon.com/blog/lambda-internals-exploring-aws-lambda
https://read.acloud.guru/comparing-aws-lambda-performance-when-using-node-js-java-c-or-python-281bef2c740f
https://functionmonkey.azurefromthetrenches.com/
https://medium.com/@PaulDJohnston/why-aws-lambda-and-zip-is-a-recipe-for-serverless-success-4f547a6e87c3
https://thenewstack.io/behind-scenes-apache-openwhisk-serverless-platform/
https://medium.com/openwhisk/uncovering-the-magic-how-serverless-platforms-really-work-3cb127b05f71