getting started with aws lambda and the serverless cloud

29
Getting started with AWS Lambda & the Serverless Cloud Ian Massingham Chief Evangelist (EMEA), AWS [email protected] @IanMmmm

Upload: ian-massingham

Post on 06-Apr-2017

81 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Getting started with AWS Lambda and the Serverless Cloud

Getting started with AWS Lambda & the Serverless Cloud

Ian Massingham Chief Evangelist (EMEA), AWS [email protected] @IanMmmm

Page 2: Getting started with AWS Lambda and the Serverless Cloud

AWS Compute offerings

AWSLambdaServerlesscomputeplatformforstatelesscodeexecution

inresponsetoevents

AmazonECSContainermanagement

serviceforrunningDockeronamanagedclusterofEC2

AmazonEC2Virtualserversin

theCloud

Page 3: Getting started with AWS Lambda and the Serverless Cloud

Continuousscaling

Noserverstomanage

Neverpayforidle–nocoldservers

Benefits of AWS Lambda

Page 4: Getting started with AWS Lambda and the Serverless Cloud

Pay-per request

• Buy compute time in 100 ms increments

• Low request charge • No hourly, daily, or

monthly minimums • No per-device fees

Never pay for idle!

Free Tier

1 million requests and 400,000 GBs of compute every month, for every customer

Page 5: Getting started with AWS Lambda and the Serverless Cloud

Using AWS Lambda

Bring your own code • Node.js, Java, Python, C# • Bring your own libraries

(even native ones)

Simple resource model

• Select power rating from 128 MB to 1.5 GB

• CPU & network allocated proportionately

• Metrics provide actual usage

Flexible authorization • Securely grant access to

resources, including VPCs

• Fine-grained control over who can call your functions

Flexible use • Call or send events • Integrated with other AWS

services • Build whole serverless

ecosystems

Page 6: Getting started with AWS Lambda and the Serverless Cloud

Using AWS LambdaProgramming model • AWS SDK built in • Lambda is the front end • Use processes, threads, /

tmp, sockets normally

Stateless • Persist data using Amazon

S3, ElastiCache, RDS or non-relational databases

• No affinity to infrastructure (can’t “log in to the box”)

Authoring functions • Author directly using the

console WYSIWYG editor • Package code as a .zip and

upload to Lambda or S3 • Plugins for Eclipse and

Visual Studio • Command line tools

Monitoring and logging • Built-in metrics for requests,

errors, latency, and throttles • Built-in logs in Amazon

CloudWatch Logs

Page 7: Getting started with AWS Lambda and the Serverless Cloud

Key usage scenarios

Data Triggers Customise behaviour on data updates in S3,

SNS & more

Control systems Customize responses and

response workflows to state changes within AWS

Serverless backends Execute server side

backend logic in a cross platform fashion

Big data Realtime processing

of streaming data updates using Kinesis

Page 8: Getting started with AWS Lambda and the Serverless Cloud

Lambda + S3

Page 9: Getting started with AWS Lambda and the Serverless Cloud

Dynamic data ingestion using S3+Lambda

Amazon S3 AWS Lambda processes the

object

Amazon S3

New object uploaded

NoSQL DB

Stores

processed

object to S3

Updates file metadata to NoSQL DB

Page 10: Getting started with AWS Lambda and the Serverless Cloud

Demo:

Amazon S3 + Lambda + MongoDB

Page 11: Getting started with AWS Lambda and the Serverless Cloud

Customers running S3+Lambda pipelines

AWS Lambda

Indexing tables or

notifications

Apply custom logic to process content being uploaded into Amazon S3 • Watermarking / thumbnail creation • Transcoding • Indexing and de-duplication • Aggregation and filtering • Pre processing • Content validation • WAF updates

Amazon S3 Bucket Events

Processed files

Page 12: Getting started with AWS Lambda and the Serverless Cloud

Lambda + Kinesis

Page 13: Getting started with AWS Lambda and the Serverless Cloud

Real time stream processing with Kinesis+Lambda

Amazon Kinesis

AWS Lambda processes the

stream

Amazon CloudWatch Logs

Amazon SNS

Compress

data & dump

to CW-Logs

Filter data and alert SNS on match

New data available

Page 14: Getting started with AWS Lambda and the Serverless Cloud

Customers using real-time processing pipelines

AWS Lambda

Aggregate statistics

Real-time analytics

Kinesis Stream

Apply custom logic to process data being uploaded through Kinesis stream • Client activity tracking • Metrics generation • Data cleansing • Log filtering • Indexing and searching • Log routing • Live alarms and notifications

Page 15: Getting started with AWS Lambda and the Serverless Cloud

Lambda Powered APIs

Page 16: Getting started with AWS Lambda and the Serverless Cloud

An API Call Flow

Internet

Mobile Apps

Websites

Services

AWS Lambda functions

AWS

API Gateway Cache

Endpoints on Amazon EC2

Any other publicly accessible endpointAmazon CloudWatch

Monitoring

Amazon CloudFront Amazon

API Gateway

Page 17: Getting started with AWS Lambda and the Serverless Cloud

Lambda + Cognito & Mobile Apps

Page 18: Getting started with AWS Lambda and the Serverless Cloud

Building Mobile Backends with Lambda

• Lambda as the backend logic for mobile applications.

• Easy Personalization – … for devices – … for end users

Page 19: Getting started with AWS Lambda and the Serverless Cloud

Other Use Cases

Page 20: Getting started with AWS Lambda and the Serverless Cloud
Page 21: Getting started with AWS Lambda and the Serverless Cloud

Scheduled Event (CRON)

• Dev/QA Environments: Stop running instances at 19:00 h and Start it again at 8:00 between Monday to Friday.

• Log cleanup • Batching up statistics • Alarm clock • Infrastructure automation • Backup scheduler

Page 22: Getting started with AWS Lambda and the Serverless Cloud

Backup and Disaster Recovery

• Cross-region replication to multiple regions. • Off-site backups. • Validation of those backups is difficult to scale. • Set rules on Lambda that defines what needs to be backup and

checks • Validates and raise alarms in case of failure.

Page 23: Getting started with AWS Lambda and the Serverless Cloud

Thank You. Got questions?

Ian Massingham Chief Evangelist (EMEA), AWS [email protected] @IanMmmm

Page 24: Getting started with AWS Lambda and the Serverless Cloud

Appendix

Page 25: Getting started with AWS Lambda and the Serverless Cloud

Reference architecture: IoT back end using AWS Lambda and Amazon Kinesis

https://s3.amazonaws.com/awslambda-reference-architectures/iot-backend/lambda-refarch-iotbackend.pdfhttps://github.com/awslabs/lambda-refarch-iotbackend

Page 26: Getting started with AWS Lambda and the Serverless Cloud

Reference architecture: Mobile back end using AWS Lambda and Amazon API Gateway

https://s3.amazonaws.com/awslambda-reference-architectures/mobile-backend/lambda-refarch-mobilebackend.pdfhttps://github.com/awslabs/lambda-refarch-mobilebackend

Page 27: Getting started with AWS Lambda and the Serverless Cloud

Reference architecture: Web applications with AWS Lambda

https://s3.amazonaws.com/awslambda-reference-architectures/web-app/lambda-refarch-webapp.pdfhttps://github.com/awslabs/lambda-refarch-webapp

Page 28: Getting started with AWS Lambda and the Serverless Cloud

Reference architecture: Real-time file processing using AWS Lambda

https://s3.amazonaws.com/awslambda-reference-architectures/file-processing/lambda-refarch-fileprocessing.pdfhttps://github.com/awslabs/lambda-refarch-fileprocessing

Page 29: Getting started with AWS Lambda and the Serverless Cloud

Reference architecture: Real-time stream processing using AWS Lambda and Amazon Kinesis

https://s3.amazonaws.com/awslambda-reference-architectures/stream-processing/lambda-refarch-streamprocessing.pdfhttps://github.com/awslabs/lambda-refarch-streamprocessing