how to expedite design and development of serverless · 2021. 9. 6. · compute layer aws lambda...

41
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. How to expedite design and development of serverless applications on AWS Presenter Mike Pfeiffer, Ambassador, DevOps Institute

Upload: others

Post on 12-Sep-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

How to expedite design and

development of serverless

applications on AWS

Presenter

Mike Pfeiffer, Ambassador,

DevOps Institute

Page 2: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Deliver more value to your business by minimizing the time and resources you spend on infrastructure-related requirements. Learn how to use fully managed, end-to-end serverless solutions to boost developer productivity, optimize resources, and accelerate pace of innovation.

Agenda

○ Core benefits of serverless computing

○ Common patterns and best practices

○ Case studies from the field

Ambassador, DevOps Institute

@mike_pfeiffer

Mike Pfeiffer

Mike has worked for some of the largest technology

companies in the world including Microsoft and Amazon

Web Services (AWS) and is the founder and chief

technologist at CloudSkills.io, a cloud consulting and

training firm. Mike is a published author, international

conference speaker, Microsoft Azure MVP, and host of

the CloudSkills.fm podcast.

Page 3: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Core Benefits and Patterns of

Serverless Computing

Page 4: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

No Infrastructure Concerns

● Allows teams to focus on what matters most –

the application

● Enables simplified deployment scenarios

● Removes infrastructure concerns and

undifferentiated heavy lifting from the

architecture, deployment, and support

perspective

Benefits include:

Eliminates the administrative overhead included with managing IaaS

or PaaS solutions.

Page 5: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Flexible and Dynamic Scalability

● Infrastructure scalability within seconds to

match the demands of any workload

● Increase developer velocity by writing less

code

● Platform integrations simplify complex

scenarios

Benefits include:

Inherently scalable to match the resource demands of any workload.

Page 6: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Faster Time to Market

● Improved team agility and performance

● Built-in intelligent monitoring and

analysis capabilities

● Supports multiple application patterns

including hybrid, cloud, and edge

computing

Benefits include:

Reduction in operational dependencies on each development cycle

increases teams agility to deliver value quicker.

Page 7: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Resource Efficiency

● Reduced infrastructure costs and elimination of

server licensing concerns

● Intelligent security management

● New paths of innovation and revenue

opportunities

Benefits include:

Leveraging serverless technologies helps organizations reduce total

cost of ownership and accelerate the pace of innovation.

Page 8: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Serverless Application Patterns

● Serverless functions

● Serverless containers

● Serverless workflows

● Serverless API gateways

Serverless applications enable multiple application patterns.

Page 9: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Case Study: Serverless

Migration of Hundreds of Single

Page Web Apps

Page 10: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

The project

Digital marketing agency running hundreds of one-page web

applications across a fleet of Windows-based virtual machines. The

company wanted to reduce the overhead of their Virtual Machine

foot-print and implement a more modern development and

deployment process.

Page 11: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

The challenge

● Deployment process was painfully slow

● Lack of automation required multiple manual

steps that were time consuming and error

prone

● Administrative overhead of supporting dozens

of virtual machines was a burden on the core

infrastructure team

Page 12: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

The solution

● Re-factor the core application architectures

● Deliver web-front end through CloudFront and

S3

● Run backend code via AWS Lambda & API

Gateway

● Implement CloudWatch Events and AWS

Lambda for event-driven automation

Page 13: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

The solution

https://go.aws/2SZuioY

Page 14: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

The results

● Thousands in cost savings per month

● End-to-end automation reduced deployment

times by 70%

● Infrastructure team was able to spend more

time on innovative projects vs. maintaining

legacy infrastructure

Page 15: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

x

The DevOps Institute (DOI) is the continuouslearning community dedicated to advancing thehuman elements of DevOps success.

Our mission is based on a framework of skills, knowledge, ideas and learning (SKIL) that practitioners need to advance DevOps and their careers. All of our work, including accreditations, research, events and continuous learning programs – is focused on providing the “know-how” to make DevOps possible.

Join our FREE community at www.devopsinstitute.com

About DevOps Institute

Page 16: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

THANK YOU!

www.devopsinstitute.c

om

Page 17: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Accelerating serverless application

development for mission-critical

workloads

Kanchan Waikar

Partner Solutions Architect, AWS

https://www.linkedin.com/in/kanchanwaikar/

https://twitter.com/KanchanWaikar1

Page 18: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Increasing agility with serverless

Compute Virtual machine

Databases MySQL

Storage Storage

Messaging

ESBs

Analytics Hadoop

On-premises Cloud

Less More

Amazon EC2

MySQL on EC2

Hadoop on EC2

AWS Elastic Beanstalk AWS Fargate AWS Lambda

Amazon EMR Amazon Elasticsearch Service Amazon Athena

Amazon S3

Amazon

QLDBAurora ServerlessAmazon Aurora

Amazon RDS

MySQL

Amazon MQ Amazon KinesisAmazon

EventBridge

DynamoDB

Amazon

SNS

Amazon

SQS

Page 19: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Security

CloudFront

Trusted Advisor

CloudWatch

Aurora

Cost Explorer

Route 53

EBS

Auto Scaling

RDS

ElastiCache

Glacier

Shield

Trusted Advisor

Auto Scaling

S3

CloudFront

GuardDuty

Identity and Access

Management (IAM)

Virtual Private

Cloud (VPC)

Key Management

Service (AWS

KMS)

Config

CloudWatch

CloudFormation

CloudTrail

Elasticsearch

Service

Operational

Excellence

Performance

EfficiencyReliability

Cost

Optimization

AWS native services help enable performance

across Well-Architected pillars

Page 20: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Serverless lens: Well-Architected Framework

https://d1.awsstatic.com/whitepapers/architecture/AWS-Serverless-Applications-

Lens.pdf

Components

Scenarios

1

2

Page 21: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Serverless lens: Components

Deployment approaches

Compute layerAWS

Lambda

Amazon API

gateway

AWS Step

Functions

Data layerAmazon

DynamoDBAmazon S3

Amazon

Elasticsearch

Service

Amazon

CloudFront

AWS

AppSync

User management and identity layerAmazon

Cognito

Edge layerAmazon

CloudFront

Systems monitoring and deploymentAmazon

CloudWatchAWS X-Ray

Messaging and streaming layerAmazon

Kinesis

Amazon

SNS

Page 22: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Meet AWS Serverless Application Model (SAM)

• What is SAM?

• How does SAM work?

• How much does it cost?

• Is it open-source?

• My Lambda function is in Python. Does SAM support that?

Page 23: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

AWS SAM templates

AWS Cloud

Amazon API Gateway

Lambda function

Table Role

AWSTemplateFormatVersion: '2010-09-09’

Transform: AWS::Serverless-2016-10-31

Resources:

GetProductsFunction:

Type: AWS::Serverless::Function

Properties:

Handler: index.getProducts

Runtime: nodejs10.x

CodeUri: src/

Policies:

- DynamoDBReadPolicy:

TableName: !Ref ProductTable

Events:

GetResource:

Type: Api

Properties:

Path: /products/{productId}

Method: get

ProductTable:

Type: AWS::Serverless::SimpleTable

===

Allowing

this

To become

this

Page 24: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Getting started with SAM

~$ sam init

~$ sam build

~$ sam local invoke

~$ sam local start-api --port 8080

~$ sam package --s3-bucket sam-artifacts-bucket

~$ sam deploy --stack-name my-sam-app

~$ sam logs -n HelloWorldFunction --stack-name my-sam-app --tail

• Set up SAM

environment

– Install SAM on your

desktop

• Install AWS SAM CLI

• Set up credentials

– OR Use Cloud 9

• Deploy Sample

application

Page 25: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Scenarios: RESTful microservices

https://d1.awsstatic.com/whitepapers/architecture/AWS-Serverless-Applications-Lens.pdf

Page 26: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Scenarios: ALEXA skills

Page 27: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Scenarios: Mobile backend

Page 28: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Scenarios: Stream processing

Page 29: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Scenarios: Web application

Page 30: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Introducing Stackery

Top use cases

• Modernize monoliths

to microservices

• Improve security and

governance across

multiple teams

• Extend enterprise

applications

How Stackery helps

• Visual editing canvas makes

application development easier

• Helps you follow AWS Well-

Architected Framework practices

• Maintains data in your AWS account

• Manages namespaced environments

for delivery across AWS accounts

• Generates properly-scoped IAM

permissions between resources

Supported resources: https://docs.stackery.io/docs/using-stackery/resource-palette/

Page 31: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Stackery visual editor

StacksImportant

conceptsEnvironment

Page 32: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

SAM template

generated by

Stackery

Page 33: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Getting started with Stackery

https://youtu.be/iMwF

GhnX01A

Stackery Quickstart

Tutorial

Page 34: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

From monolith to serverlessAdopting a scalable technology stack to facilitate rapid growth

“Even though we

experienced

considerable growing

pains, many

enhancements were

realized throughout this

migration. In this new

cloud world, not only

could we scale our

application servers but

our database servers

as well.”

- Matthew Witt, VP of

Engineering, MasterStream

•Gain

performance,

scalability,

availability,

durability

•Eliminate need

for examining

internal code or

debugging

•Replace features

on legacy

system

Page 35: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

A serverless plugin for team efficiencyBranch Insurance unlocked a dedicated serverless software team in Stackery

“The best thing about

Amazon Web Services

(AWS) is that there are so

many tools and they have

all been iteratively built in

response to customer

demand.”

– Joe Emison, Co-founder and

CTO, Branch Insurance

•Get assistance

from live

knowledge bank

• Free up team to

build amazing

apps

•Consistent

control

environment

“Stackery essentially granted our

organization a team of skilled, serverless-

specific engineers that I don’t have to

professionally manage.”

Page 36: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Get started on AWS Marketplace

Flexible consumption and contract models

Quick and easy deployment

Helpful humans to support you

Page 37: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Flexible deployment options on AWS Marketplace

Meant for single instance solutions deployed directly into your VPC

Provides flexible BYOL, pay-for-what-you-use, free trials, and curated Open Source options

Amazon Machine Image

Software offered as a service with no resources required to manage infrastructure

SaaS

Find container products in AWS Marketplace or the Amazon Elastic Container Service (Amazon ECS) console and deploy them on Amazon ECS, Amazon ElasticKubernetes Service (Amazon EKS), and AWS Fargate

AWS Container Services

Application Program Interface is designed to integrate directly to an application

API

Find machine learning algorithms and models that can be deployed directly onto Amazon SageMaker

Amazon SageMaker

Meant for clustered and high availability implementations

Combines third-party software with AWS services and a complete solution implementation including multi-instance, tie-ins to AWS Services, and high availability cluster architectures

AWS CloudFormation Template

Page 38: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Getting started with serverless

Use-

case

Discover

Learn

Test

Author

Diagnose

Monitor/

Observe

Deploy

Operate,

Secure

DebugPrototype

Page 39: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Points to consider

Easily experiment

with software using

AWS Marketplace

– without license

lock-in.

Support your well

architected

framework with a

serverless lens.

Shift your focus to

application as code

and bring products

to market faster.

Serverless greatly

complements

microservices

architecture by

reducing your

infrastructure

burden.

Page 40: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Resources

AWS Marketplace: https://aws.amazon.com/marketplace

Quick Start Tutorial: https://youtu.be/iMwFGhnX01A

Server Application Lens for WAF: https://d1.awsstatic.com/whitepapers/

architecture/AWS-Serverless-Applications-Lens.pdf

Questions: [email protected]

Page 41: How to expedite design and development of serverless · 2021. 9. 6. · Compute layer AWS Lambda Amazon API gateway AWS Step Functions Data layer Amazon DynamoDB Amazon S3 Amazon

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

Q&A

Use GoToWebinar’s Questions tool to

submit questions to our panel.

Please specify whether your question is

for Mike (DevOps Institute) or for

Kanchan (AWS).