serverless architectural patterns - amazon web …...streaming data ingestion amazon cloudwatch:...

42
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Monica Lora Solutions Architect, AWS Nils Rhode Tech Lead & Team Lead, Haufe.Group Serverless Architectural Patterns

Upload: others

Post on 21-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Monica Lora

Solutions Architect, AWS

Nils Rhode

Tech Lead & Team Lead, Haufe.Group

Serverless Architectural Patterns

Page 2: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Agenda• Serverless Foundations • Serverless Architectural patterns:

• Web Application• Data Lake• Stream Processing• Automation

• Serverless at Haufe.Group

Page 3: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Serverless Means …

No servers to provision or manage

Scales with usage

Never pay for idle Built-in availability and fault tolerance

Page 4: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

SERVICES (ANYTHING)

Changes in data state

Requests to endpoints

Changes in resource state

EVENT SOURCE FUNCTION

Node.jsPythonJavaC#Go

Serverless applications

Page 5: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Amazon S3 Amazon DynamoDB

Amazon Kinesis

AWS CloudFormation

AWS CloudTrail Amazon CloudWatch

Amazon Cognito

Amazon SNSAmazonSES

Cron events

DATA STORES ENDPOINTS

DEVELOPMENT AND MANAGEMENT TOOLS EVENT/MESSAGE SERVICES

Event sources that trigger AWS Lambda

and more!

AWS CodeCommit

AmazonAPI Gateway

AmazonAlexa

AWS IoT AWS Step Functions

Page 6: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Lambda Execution Model

Synchronous (push)

Asynchronous (event)

Stream-based

AmazonAPI Gateway

AWS Lambda function

/order

Amazon SNS

AWS Lambda function

Amazon S3

reqs

Amazon DynamoDB

Amazon Kinesis

changes

AWS Lambda service

function

Page 7: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Common Lambda use cases

Web Applications• Static

websites

• Complex web apps

• Packages for Flask and Express

Data Processing

• Real time

• MapReduce

• Batch

Chatbots

• Powering chatbot logic

Backends

• Apps & services

• Mobile

• IoT

</></>

Amazon Alexa

• Powering voice-enabled apps

• Alexa Skills Kit

IT Automation

• Policy engines

• Extending AWS services

• Infrastructure management

Page 8: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Pattern 1: Web App/Microservice/API

Page 9: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Serverless Web Application

Data stored in Amazon

DynamoDB

Dynamic content in AWS Lambda

Amazon API Gateway

Browser

Amazon CloudFront

Amazon S3

Amazon Cognito

Page 10: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Serverless Web Application - Security

Amazon API Gateway AWS

LambdaAmazon

DynamoDB

AmazonS3

Amazon CloudFront

• Bucket Policies• ACLs

• OAI• Geo-Restriction• Signed Cookies• Signed URLs• DDoS Protection

IAM

AuthZ

IAM

• Throttling• Caching• Usage Plans• ACM

Static Content

Browser

Amazon Cognito

Page 11: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Serverless Web Application - Security

Amazon API Gateway AWS

LambdaAmazon

DynamoDB

AmazonS3

Amazon CloudFront

• Bucket Policies• ACLs

• OAI• Geo-Restriction• Signed Cookies• Signed URLs• DDOS

IAMAuthZ IAM

• Throttling• Caching• Usage Plans

Static Content

Browser

Amazon CloudFront• HTTPS• Disable Host

Header Forwarding

AWS WAF

Amazon Cognito

Page 12: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Serverless Web Application - Monitoring

Amazon API Gateway

AWSLambda

AmazonDynamoDB

AmazonS3

Amazon CloudFront

• Access Logs in S3 Bucket• Access Logs in S3 Bucket

• CloudWatch Metrics-https://aws.amazon.com/cloudfront/reporting/

AWS WAF• WebACL Testing• Total Requests• Allowed/Blocked

Requests by ACL

logslogs

• Invocations• Invocation Errors• Duration• Throttled

Invocations

• Latency• Throughput• Throttled Reqs• Returned Bytes• Documentation

• Latency• Count• Cache Hit/Miss• 4XX/5XX Errors

Streams

AWSCloudTrail

Static Content

BrowserCustom CloudWatch

Metrics & Alarms

Page 13: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Serverless web app lifecycle managementAWS SAM (Serverless Application Model) - blog

AWSLambda

Amazon API Gateway

AWS CloudFormation

AmazonS3

AmazonDynamoDB

Package & Deploy

Code/Packages/Swagger

Serverless Template

Serverless Template

w/ CodeUri

package deployCI/CD Tools

Page 14: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Bustle is a news, entertainment, lifestyle, and fashion website targeted towards women.

With AWS Lambda, we eliminate the need to worry

about operations

Tyler LoveCTO, Bustle

“ • Bustle had trouble scaling and maintaining high availability for its website without heavy management

• Moved to serverless architecture using AWS Lambda and Amazon API Gateway

• Experienced approximately 84% in cost savings

• Engineers are now focused on innovation

Bust le Achieves 84% Cost Sav ings with AWS Lambda

Page 15: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Pattern 2: Data Lake

Page 16: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Characteristics

• Collect/Store/Process/Consume and Analyze all organizational data

• Structured/Semi-Structured/Unstructured data• AI/ML and BI/Analytical use cases• Fast automated ingestion• Schema on Read• Complementary to EDW• Decoupled Compute and Storage

Page 17: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

AWS Serverless Data Lake

S3 Bucket(s)

Key Management

Service

Amazon Athena

AWSCloudTrail

AmazonCognito

AWS IAM

Amazon Kinesis

Streams

Amazon Kinesis

Firehose

Amazon ES

Amazon QuickSight

AWS GlueAmazon

DynamoDB

Amazon Macie

Amazon API Gateway

AWS IAM

Amazon Redshift

SpectrumAWS Direct Connect

Ingest

Catalog & Search

Security & Auditing

API/UI

Analytics & Processing

AWS GlueAWSLambda

Page 18: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Fannie Mae Serverless Financial Modeling

Financial Modeling is a Monte-Carlo simulation process to project future cash flows , which is used for managing the mortgage risk on daily basis:

• Underwriting and valuation• Risk management • Financial reporting• Loss mitigation and loan removal

• ~10 Quadrillion (10#10$%) of cash flowprojections each month in hundreds of economic scenarios.

• One simulation run of ~ 20 million mortgages takes 1.4 hours, >4 times faster than the existing process.

Page 19: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Pattern 3: Stream Processing

Page 20: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Stream processing characteristics

• High ingest rate• Near real-time processing (low latency from ingest to

process)• Spiky traffic (lots of devices with intermittent network

connections)• Message durability• Message ordering

Page 21: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Streaming data ingestion

Amazon CloudWatch:Delivery metrics

Amazon S3:Buffered files

Kinesis Agent

Record Producers Amazon Redshift:

Table loads

Amazon Elasticsearch Service:Domain loads

Amazon S3:Source record backup

AWS Lambda:Transformations &

enrichment

Amazon DynamoDB:Lookup tables

Raw records

Lookup

Transformed records

Transformed recordsRaw records

Amazon Kinesis Firehose:Delivery stream

Page 22: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Sensor data collection

IoTrules

IoTactions

MQTT

Amazon S3:Raw records

Amazon Kinesis Firehose:Delivery stream

Amazon S3:Batched records

Amazon Kinesis Streams:Real-time stream

AWS IoT:Data collection

IoT Sensors

Real-time analyticsapplications

Page 23: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Thomson Reuters – Product Insight

Solution for usage analysis tracking:Capture, analyze, and visualize analytics data generated by offerings, providing insights to help product teams continuously improve the user experience

Throughput: Tested 4,000 requests / secondGrowing to 10,000 requests / second or 25 Billion requests / month

Latency: new events to user dashboards in less than 10 seconds

Durable: no data loss since inception

Page 24: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Pattern 4: Automation

Page 25: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Automation characteristics

• Periodic jobs • Event triggered workflows• Enforce security policies• Auditing and notification• Respond to alarms• Extend AWS functionality• …All while being Highly Available and Scalable

Page 26: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

AWS Ops Automator Tags

OpsAutomatorTaskList CreateSnapshot

Amazon CloudWatch:Time-based events

AWS Lambda:Event handler

AWS Lambda:Task executors

AWS SNS:Error and warning notifications

Resources in multiple AWS Regions and Accounts

Amazon EC2 Instances

Amazon DynamoDB:Task configuration & tracking

Amazon CloudWatch:Logs

Amazon Redshift Clusters

https://aws.amazon.com/answers/infrastructure-management/ops-automator/

Page 27: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Serverless @ HAUFE.GROUP

Page 28: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

Our True North Goal.

–A family company for the

next generations.

Page 29: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

1800employees

13Locations in Germany

5International branches

370 Mio.Sales

All DAX 30

–Companies rely on our expertise

150,000

–Seminar participants at Haufe

Akademie every year

5,500,000

–Users and licences

Our SolutionsPrint

SoftwareTraining

Consulting

MarketsGermany

SwitzerlandUSA

China

1934founded as publishing house

Page 30: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Our challenge- Re-Engineering the HRS

- from Monolith to Microservices- starting with the first component: EDB (Court Decision Database)

- AIM: • Future-proof by choosing state-of-the-art technics• Low maintenance effort by using services• Fast and cheap way to import millions of documents

Page 31: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

EDB Architecture on AWS

Page 32: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Example of our serverless workflows

Page 33: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

How we realized the mentioned workflow

Page 34: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Benefits of our work

• Cost-saving (Never pay for idle)10 imports/month with about 1.000 till 10.000 files as fast as possible (scalability)

$79.65

$42.92

$0.46

$4.52

$0.97

16 X T2.NANO 1 X T2.MEDIUM 16 LAMBDAS

Idle Needed~95% paying

for idle

Page 35: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Benefits of our work

$9,558.00

$5,150.40

$55.20

$55.20

$- $2,000.00 $4,000.00 $6,000.00 $8,000.00 $10,000.00 $12,000.00

t2.nano/each function

t2.medium/all functions

Fee based on imports over all workflows per year

Lambda EC2

Cutting down the cost about

99%

Page 36: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Benefits of our work

• Easy to extend and maintain• add, change or remove functions (microservice-approach)• Configuration of each step (e.g. failure-handling)• „No server is easier to manage than no server“

• Handy transformation from monolith to microservice

Page 37: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

How we proceed

- Our bottleneck: RDS database and the limited scaling(costs of Lambda for failover by re-trying: about:10%)

- High costs for ES(only needed for handling queries for export)

=> We‘re waiting for Aurora Serverless

Page 38: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Summary

Page 39: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Lambda Best Practices

• Minimize package size to necessities• Separate the Lambda handler from core logic• Use Environment Variables to modify operational behavior• Self-contain dependencies in your function package• Leverage “Max Memory Used” to right-size your functions• Delete large unused functions (75GB limit)

Page 40: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Summary

Use DevOps tools to automate your serverless deployments

Apply serverless patterns for common use-cases:•Web application• Data Lake Foundation• Stream processing•Operations automation

Page 41: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Please complete the session survey in theSummit mobile app

Page 42: Serverless Architectural Patterns - Amazon Web …...Streaming data ingestion Amazon CloudWatch: Delivery metrics Amazon S3: Buffered files Kinesis Agent Record Producers Amazon Redshift:

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Thank you!What will you build with Serverless?