@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
Stateless functions running in execution environments managed by a service provider (not you!).
@lynnaloo
FaaS is the heart of Serverless Architecture.
Fully-managed
Stateless and ephemeral
No worries about infrastructure
Focus on the code
Only pay when (if) you use
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
Most popular kid in school
@lynnaloo
First on the market
Focus on performance and scale
Runtime Layers
Custom Runtimes
Step Functions
@lynnaloo
The Developer's Favorite
@lynnaloo
Open-source Runtimes
Developer Tools/Plugins
Offline Development
Premier Tier
Logic Apps and Event Grid
@lynnaloo
They do really mean open
@lynnaloo
Backed by OpenWhisk
Official runtimes for php and Swift
Truly open, which helps with licensing issues
Support for On-prem
@lynnaloo
Finally in GA!
@lynnaloo
As of last summer, GA with Node.js and Python (Beta)
Custom runtimes in the form of Cloud Run (new from Google Next)
Great developer experience and quick out-of-the-box apps
Storage
IoT
Database Actions
API Gateways
Queues
Logging
@lynnaloo
One function, one function
Lightweight and fast
Reusable
Independent deployments
Work together to power applications
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
Dedicated
Flexible
Supportive
Resilient
Growth potential
Speaks many languages!
@lynnaloo
@lynnaloo
@lynnaloo
Open-source
Supports various languages
Abstracts provider-specific tasks
Multi-provider plugin system
Scaffold and deploy using CLI
@lynnaloo
# Install serverless cli
$ npm install serverless -g
# Create Azure Service
$ serverless create --template azure-nodejs --path cat-name-service
# Change into the service directory
$ cd cat-name-service
# Deploy to cloud provider
$ serverless deploy -v
cat-name-service/
package.json
serverless.yml
handler.js
dog-name-service/
package.json
serverless.yml
handler.js
@lynnaloo
'use strict';
const catNames = require('cat-names');
function getCatName(context, req) {
context.log('Getting a random cat name.');
context.done(null, { body: `Your cat name is ${catNames.random()}.` });
}
module.exports = getCatName;
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
a specification for describing event data in a common way
Azure Event Grid natively supports events in the CloudEvents JSON schema
Serverless Framework's Event Gateway
@lynnaloo
@lynnaloo
Mention @thesecatstweet in a tweet with the hashtag #valentinebot
@lynnaloo
Twitter API for Node.js
Scheduler service
Storage
FaaS Service
Framework or Toolset
@lynnaloo