aws summit auckland - getting started with aws lambda and the serverless cloud

Post on 16-Apr-2017

190 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Johnathon Meichtry, Principal Solutions Architect, Amazon Web Services

Curdin Krummenacher, Web Development Lead, Te Papa

Jeremy Cook, Principal Solutions Architect, Fronde

Getting Started with AWS Lambda and

the Serverless Cloud

Technical 201

Business

101 Technical

201 Technical

301 Technical

401 Technical

Session Depth

Apps Without Servers

What’s the easiest server to manage?

The one somebody else takes care of!

Five Sample Use Cases for AWS Lambda

Serverless

Microservices

Adding a

Feature to

Amazon S3

Extending

Platforms

Scalable

Mobile

Backends

Real-Time

Streaming

Analysis

Requirements

• Effortless scaling / no provisioning

• Built-in rollout

• Highly available by default

• Bring Your Own Code (BYOC)

• Never pay for idle

A Scalable Mobile Backend

A Scalable Mobile Backend…

Without Coding the Mobile

Backend

Building a Mobile Backend with AWS Lambda

1. Create an Amazon

DynamoDB database.

2. Pick the “Simple Mobile Backend”

sample code in the Lambda console.

3. Build your app with the AWS Mobile SDK.

Let’s see it in action…

AWS Lambda

Building a Mobile Backend: Add-ons

Want users to log in?

Use Amazon Cognito Identity.

Need device-specific rendering?

Device info is in the function’s context object.

AWS Lambda

What Makes This Easy?

Eliminating the distance between

“Works on my box” and “Ship it to customers!”

Never Pay

for Idle

Built-In

Web Server

Auto Patch

Auto

Deploy

Auto ScaleBuilt-In

Monitoring

Built-In

Logging

Built-In

Security

HTTP

Endpoint

Diving Deeper: Programming Model

Three main languages• Node.js

• Java 8

• Python

Plus Scala, Clojure, and other “jvm” languages

Run background processes• Node.js or Java or Python

• Also Python, csh, or your own executable

Native libraries are welcome!

Serverless Microservices

HTTP Endpoints

Let’s see it in action…

SquirrelBin Architecture

Static web

content served

from

Amazon S3

“Codeless”

Backend +

Acorn Execution

Acorns Stored

in Amazon

DynamoDB

New Capabilities for AWS Lambda Functions

• Public HTTP endpoints

• Throttling controls

• API Key management

• Results caching

• SDK Generation and Swagger support

• Apache Velocity templates

• API mocking

Diving Deeper: Programming Model

Run your code sync or async from…

• Any AWS SDK

• AWS Mobile SDK

• REST call

• AWS Command Line Interface

• Inside AWS Lambda itself (yep, it self-hosts)

Code is pre-credentialed

• Choose a role and Lambda will assume it for you

• Cross account access is supported

Extending Other Platforms

Compute for Connected Devices

Alexa Skills Kit – build voice-

enabled apps

Uses AWS Lambda as a

connected device/IoT platform

Slack Demo Architecture

Alexa, tell Slack to

send, “I’m giving the

demo now.”

Message Retrieval

(via Amazon SQS

queue)

Kevin says,

“Break a leg!”

Message Upload (via

Slack API)

Team

(channel users)

Slack

GitHub Event Responder

Events from GitHubTeam

(repository users)

GitHub

Amazon SNS

Messages

CloudWatch

Scheduled Event

EveryDay1235pmNZT

Deactivation

Report Email

via SES SysOps

IAM Access KeysIAM Users

Triggers

Queries/Updates

Generates Delivers

The Access Key

[***************A4B4Q]

belonging to User

[Logstash] has been

automatically deactivated

due to it being 50 days old.

PyCharm IDE

Python 2.7

Boto3

Grunt

JavaScript

Task runner

IAM Role

IAM Policy

Lambda Function

CloudWatch

Scheduled Event

GitHub

What Makes This Easy?

Nothing to host

Nothing to license

No capacity management

No web service to run

Low latency sync calls

“Fire and forget” events

Low cost

Forever free tier

No infrastructure

No “boilerplate” code

Language choice

No library restrictions

For the App DeveloperFor the Platform Provider

Diving Deeper: Resource Sizing

AWS Lambda offers 12 “power levels”

Higher levels offer more memory and more CPU power

• 128 MB, lowest CPU power

• 1.5 GB, highest CPU power

Higher power levels == lower latency for CPU-bound and

bursty tasks

Compute price scales with the power level

Extending Amazon S3

Extending Amazon S3 with Auto-Compress

Amazon S3 Bucket Events AWS Lambda

Original object Compressed object

1

2

3

How to Add a Feature to Amazon S3

1. Grab Java compress sample from the web.

2. Start with the Amazon S3 event sample:1. GET original from S3

2. Compress

3. PUT compressed version back to S3

3. Pick some S3 bucket(s) to apply it to.

Let’s see it in action…

What Makes This Easy? Request-Level Scaling!

• Who knows the event

rate? S3 and Lambda!

• You can’t over or under

provision (by design)

• Pay only for what you use

AWS Services You Can Extend Today

Amazon

S3

Amazon

DynamoDB

AWS

CloudTrail

Amazon

CloudWatch

Logs

AWS

CloudFormation

Amazon

Kinesis

Amazon

Cognito

Amazon

SNS

Amazon CloudWatch Alarm Responder

Amazon

CloudWatch

Alarms

SNS Messages

Real-Time Streaming Analysis

Easy Real-Time Streaming Architecture

Data Ingestion

with Amazon

Kinesis

(PUT record)

Records retrieved

by AWS Lambda

Your code runs

once per [batch of]

records

Amazon S3

Amazon

DynamoDB

Smart Devices

Click

Stream

Log

Data

Amazon

Redshift

Learn more: Watch the Lambda Webinar on Streaming Data

Diving Deeper: Retries and Event Ordering

Three possibilities:1. Call your AWS Lambda function synchronously.

• Using the AWS SDK? Set your retry logic there.

• Direct RESTful call to Lambda? You control retries entirely.

• Ordering is up to the caller.

2. Amazon S3 or SNS trigger your Lambda function, or you call Lambda asynchronously.• 3 tries, total, then the event is discarded

• Unordered (“loosely ordered”)

3. Lambda polls an Amazon Kinesis or Amazon DynamoDB update stream for you• No limit on tries, ordering preserved

Aside: Shards and Ordering

Shard 1

• Record 1a

• Record 1b

Aside: Shards and Ordering

Shard 1

• Record 1a

• Record 1b

Shard 2

• Record 2a

• Record 2b

Shard 3

• Record 3a

• Record 3b

Aside: Shards and Ordering

Shard 1 Shard 2 Shard 3

• Record 3a

• Record 3b

Practicalities

AWS Lambda Regions

AWS Lambda

Region NEW: Sydney

Fine-grained pricing

• 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, every customer.

Build and Deploy Integration

Jenkins Grunt

AWS

CloudFormation

Amazon S3

Partners

Function Versioning

How it works:

• Develop at HEAD—updates replace existing code

• Publish to create an immutable snapshot

• Every function has a default version (which can be HEAD)

• Callers can request

• The default version

• A specific version

• HEAD

APIs support staging and versioning (now)

We’ve Been Busy.

Now, It’s Your Turn.

Go to the AWS Lambda console, create

a function, and run it.(The first million invokes are on us!)

Congrats, you’re a Lambda function

expert! Add an event source or an

HTTP endpoint.

Build the world’s easiest mobile backend.(Hint: Start with the built-in CRUD sample!)

Next Steps

• How to Get Started

• AWS Documentation

• Getting Started Guide

• Follow AWS Lambda!

aws.amazon.com/blogs/compute

aws.amazon.com/lambda

AWS Lambda Forum

AWS Training & Certification

Intro Videos & Labs

Free videos and labs to

help you learn to work

with 30+ AWS services

– in minutes!

Training Classes

In-person and online

courses to build

technical skills –

taught by accredited

AWS instructors

Online Labs

Practice working with

AWS services in live

environment –

Learn how related

services work

together

AWS Certification

Validate technical

skills and expertise –

identify qualified IT

talent or show you

are AWS cloud ready

Learn more: aws.amazon.com/training

Your Training Next Steps:

Visit the AWS Training & Certification pod to discuss your

training plan & AWS Summit training offer

Register & attend AWS instructor led training

Get Certified

AWS Certified? Visit the AWS Summit Certification Lounge to pick up your swag

Learn more: aws.amazon.com/training

Thank You!

top related