SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
Serverless on AWS
Understanding The Hard Parts
10.08.2019
by Elmar Warken and Vadym Kazulkin, ip.labs GmbH
Contact
Vadym Kazulkin, ip.labs GmbH
v.kazulkin@iplabs.de
www.xing.com/profile/Vadym_Kazulkin
@VKazulkin, @ServerlessBonn (Meetup)
Elmar Warken, ip.labs GmbH
e.warken@iplabs.de
www.xing.com/profile/Elmar_Warken
ip.labs GmbH
Revenue Share Project
Revenue Share Calculator Service Requirements
1. Automatic calculation for the complete previous month on the 1st of each
month for each customer
2. Manual calculation via a simple GUI
• for the current month so far
• recalculation of a user selected month
3. Calculation results as downloads, download link per email
4. Archive with calculated results for each customer
5. For internal use only!
Serverless decision for RevShare project
• spike workloads only at the beginning of a month
• service is idle more than 99% of the time
➔ We use Function as a Service, to never pay for idle.
6
RS core
calculator
Turnover info
input data:
order data & calculation rules
output data:
RS calculation & input data
email with path to
download RS
calculation result
Central DB
Management
Server
extract customer, year
and month from the
file path
Key example: revsharetool-storage-demo/input-data/1000000/import/201907/revshare-final.json
RS calculator app
customer, year, month
AWS
X-Ray
AWS
Lambda
Amazon API
Gateway
RevenueShare Service Lambda creation
Implementing „Revenue Share Calculation“ Lambda with Java SDK
RevenueShare Service Lambda memory setting
Selecting memory size for a Lambda function
• Price 0,00001667 USD per GB-second
• CPU power allocation proportional to amount of memory
• more „GB“ will often just improve performance and not increase costs!
• cheaper GB setting may save costs, when lambda function
often has to wait
12
XRay activation
13
XRay activation in Java
14
Lambda profiling with X-Ray
15
Request references from X-Ray and CloudWatch
16
Billed Duration and Max Memory Used
17
Lambda free tier
• 136170 sec. per month with the most powerful CPU setting
• = more than 1h per day
• with max 1 call every 2 sec.
18
Considerations for fast Lambda functions (<500ms)
• for billing, execution time will be rounded to 100 ms
• reducing real execution time from 105 ms to 95 ms can safe 50% costs
• might be possible by increasing memory by e.g. only 10%
• fee for the mere call: 0,20$ per million
• 1 million executions of 1 GB function with 1 sec runtime: > 16$
• 1 million executions of 128 MB function with 99 ms runtime: 0,208$
19
Amazon API
Gateway
• Expose Lambda functions as RESTful web
service
• API Management functionality built in:
• authorization and access control for API calls with IAM
• request monitoring and analytics
• overload protection
• version management
• APIs as products (SaaS, AWS Marketplace)
• SDK generation
Amazon API Gateway
API Gateway for different AWS services
• Access different AWS
services in a consistent
manner
https endpoints for Lambda functions
https://pe2r5mu2n3.execute-api.us-east-1.amazonaws.com/Beta/calculate
Application
Lambda
function
API Gateway for Lambda function in RevShare App
Cost influence of API gateway
24
0,408 1,032
1,656
2,28
2,904
3,528
4,152
4,776
3,908
4,532
5,156
5,78
6,404
7,028
7,652
8,276
100 MS 400MS 700MS 1000MS 1300MS 1600MS 1900MS 2200MS
duration per call
cost per million API calls in $ for a 128 MB
function
without API Gateway with API Gateway
Defining APIs for Lambdas – manual approach
Resources
Operations
Automated API definitions with „Serverless“ framework
26
Automated API definitions with „Serverless“ framework
27
28
Aggregations
Source: Advanced Design Patterns for Amazon DynamoDB https://www.youtube.com/watch?v=jzeKPKpucS0
Aggregations with DynamoDB Streams and Lambda
Aggregations with DynamoDB Streams and Lambda
Aggregations with DynamoDB Streams
„revshare-calculation-aggregator“ Lambda
Our Journey of (Auto-) Scaling Options
Understanding DynamoDB Provisioned Throughput
DynamoDB works by provisioning throughput at the
table level. The throughput is set up as follows:
• Each write capacity unit (WCU) gives 1KB/s of
write throughput
• Each read capacity unit (RCU) gives 4KB/s of
read throughput
• Read and write throughput are independent
Partitioning Math
By Capacity = (Total RCU)/3000 + (Total WCU)/1000
By Size = Total size / 10 GB
Number of partitions = CEILING (MAX (Capacity, Size))
Partitioning Math
• Max RCUs per partition=3000
• Max WCUs per partition=1000
• Throughput (RCU & WCU) is uniformly spread
across partitions
• In case of exceeding throughput per partition -
ProvisionedThroughputExceededException
Partitioning Math
Table Size=40 GB , RCUs=1500, WCUs=400
By Capacity = 1500/3000 + 400/1000=0.9
By Size = 40 GB / 10 GB =4
Number of partitions = CEILING (MAX (0.9,4)) =4
RCUs per partition=1500/4 =375
WCUs per partition=400/4 =100
DynamoDB (Auto)-Scaling options
• Configured auto scaling
• Scheduled auto scaling
• On demand capacity
Configured Auto Scaling Example
Source: Yan Cui: "The problems with DynamoDB Auto Scaling and how it might be improved"
https://hackernoon.com/the-problems-with-dynamodb-auto-scaling-and-how-it-might-be-improved-a92029c8c10b
Scheduled Auto Scaling Example
aws application-autoscaling put-scheduled-action 
--service-namespace dynamodb 
--schedule "cron (50 1 1 * *)"  // on the 1st of each month at 1:50 a.m.
--scheduled-action-name IncreaseReadCapacity 
--resource-id arn:aws:dynamodb:region:account-id:your-table-name 
--scalable-dimension dynamodb:table:ReadCapacityUnits 
--scalable-targe-action MinCapacity=4,MaxCapacity=20
aws application-autoscaling delete-scheduled-action 
--service-namespace dynamodb 
--schedule "cron (30 3 1 * *)"  // on the 1st of each month at 3:30 a.m.
--scheduled-action-name IncreaseReadCapacity 
--resource-id arn:aws:dynamodb:region:account-id:your-table-name 
--scalable-dimension dynamodb:table:ReadCapacityUnits
Database Capacity Planing Challenges
Source: „A Deep Dive into What's New for Amazon DynamoDB (DAT201) - AWS re:Invent 2018”
https://de.slideshare.net/AmazonWebServices/a-deep-dive-into-whats-new-for-amazon-dynamodb-dat201-aws-reinvent-2018
New Feature : DynamoDB on Demand Capacity
Source: https://aws.amazon.com/de/blogs/aws/amazon-dynamodb-on-demand-no-capacity-planning-and-pay-per-request-
pricing/
New Feature : DynamoDB on Demand Capacity
Source: „A Deep Dive into What's New for Amazon DynamoDB (DAT201) - AWS re:Invent 2018”
https://de.slideshare.net/AmazonWebServices/a-deep-dive-into-whats-new-for-amazon-dynamodb-dat201-aws-reinvent-2018
New Feature : DynamoDB on Demand Capacity
Source: „A Deep Dive into What's New for Amazon DynamoDB (DAT201) - AWS re:Invent 2018”
https://de.slideshare.net/AmazonWebServices/a-deep-dive-into-whats-new-for-amazon-dynamodb-dat201-aws-reinvent-2018
DynamoDB on Demand Capacity Limits
• 40,000 read request units and 40,000 write
request units per table in most regions
• DynamoDB On-Demand provisions capacity to
handle two times the past peak traffic
Source: „Understanding the scaling behaviour of DynamoDB OnDemand tables”
https://theburningmonk.com/2019/03/understanding-the-scaling-behaviour-of-dynamodb-ondemand-tables/
DynamoDB on Demand Capacity Use Cases
• You can’t predict your traffic patterns
• You are not worried about a runaway bill
(DynamoDB On-Demand pricing is about 6.94x
the cost of provisioned capacity)
Source: „DynamoDB On-Demand: When, why and how to use it in your serverless applications” by Alex DeBrie
https://serverless.com/blog/dynamodb-on-demand-serverless/
DynamoDB Capacities:
reserved vs provisioned vs on demand
1. If you have steady, predictable traffic, choose
reserved capacity
2. If you have variable, predictable traffic, choose
provisioned capacity
• Use (auto)-scaling
3. If you have variable, unpredictable traffic, choose
on-demand capacity
Source: „DynamoDB On-Demand: When, why and how to use it in your serverless applications” by Alex DeBrie
https://serverless.com/blog/dynamodb-on-demand-serverless/
DynamoDB canonical use cases
• Key-value lookups on well-distributed records
• Avoiding complex queries (and joins)
DynamoDB is not the right choice for
each solution
Challenges with DynamoDB
• Think of the access pattern in advance
• Difficult to change access patterns (partition&sort key)
& table structure afterwards
Amazon Aurora Serverless
(GA for MySql and Postgres)
What Is Amazon Aurora Serverless?
Amazon Aurora
GA MySql/Postgres
Source: “AWS Summit - London | twitch.tv/aws | Aurora Serverless Preview Update”
https://www.youtube.com/watch?v=J3A_TJZosu8
What Is Amazon Aurora Serverless?
Amazon Aurora Serverless Architeсture
Source: https://aws.amazon.com/de/blogs/aws/amazon-aurora-postgresql-serverless-now-generally-available/
Amazon Aurora Serverless Settings
Source: https://aws.amazon.com/de/blogs/aws/amazon-aurora-postgresql-serverless-now-generally-available/
Amazon Aurora Serverless (Auto-)Scaling
Source: https://aws.amazon.com/de/blogs/aws/amazon-aurora-postgresql-serverless-now-generally-available/
Use cases for Amazon Aurora Serverless
• Reasons to stay with relational database
• Seldom usage (weekly jobs) + additional spikes
• Dev/Test Database
• Noticable initial latencies acceptable
• Aurora and therefore Lambda are behind VPC
• Drastically increases also Lambda cold start
Source: Ajay Nair „Become a Serverless Black Belt” https://www.youtube.com/watch?v=oQFORsso2go
Amazon Aurora Serverless Data API
as beta for MySql available
Sources: https://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/data-api.html
Jeremy Daly: „Aurora Serverless Data API: A First Look“ https://www.jeremydaly.com/aurora-serverless-data-api-a-first-look/
Amazon Aurora Serverless Data API Example
const AWS = require('aws-sdk')
const RDS = new AWS.RDSDataService()
exports.test = async (event, context) => {
const params = {
awsSecretStoreArn: 'arn:aws:secretsmanager:us-east-1:XXXXXXXXX:secret:test/data-api/mysql-test',
dbClusterOrInstanceArn: 'arn:aws:rds:us-east-1:XXXXXXXXXXX:cluster:test-data-api',
sqlStatements: `SELECT * FROM mytable WHERE id = :id`,
parameters: [ { name: 'id‘ , value: { “longValue“: 1 } } ],
database: 'test_data_api'
}
let data = await RDS.executeStatement(params).promise()
console.log(JSON.stringify(data, null, 2))
61
Source: Jeremy Daly: „Aurora Serverless Data API: An (Updated) First Look“ https://www.jeremydaly.com/aurora-serverless-data-
api-a-first-look/
Questions?
www.iplabs.de
Thank You!

Contenu connexe

Tendances

AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Germany
 
(ARC310) Solving Amazon's Catalog Contention With Amazon Kinesis
(ARC310) Solving Amazon's Catalog Contention With Amazon Kinesis(ARC310) Solving Amazon's Catalog Contention With Amazon Kinesis
(ARC310) Solving Amazon's Catalog Contention With Amazon KinesisAmazon Web Services
 
AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)Amazon Web Services
 
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS LambdaAmazon Web Services
 
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)Amazon Web Services
 
(ARC302) Running Lean Architectures: How to Optimize for Cost Efficiency | AW...
(ARC302) Running Lean Architectures: How to Optimize for Cost Efficiency | AW...(ARC302) Running Lean Architectures: How to Optimize for Cost Efficiency | AW...
(ARC302) Running Lean Architectures: How to Optimize for Cost Efficiency | AW...Amazon Web Services
 
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)Amazon Web Services Korea
 
(BDT310) Big Data Architectural Patterns and Best Practices on AWS
(BDT310) Big Data Architectural Patterns and Best Practices on AWS(BDT310) Big Data Architectural Patterns and Best Practices on AWS
(BDT310) Big Data Architectural Patterns and Best Practices on AWSAmazon Web Services
 
What's New with Amazon DynamoDB - AWS Online Tech Talks
What's New with Amazon DynamoDB - AWS Online Tech TalksWhat's New with Amazon DynamoDB - AWS Online Tech Talks
What's New with Amazon DynamoDB - AWS Online Tech TalksAmazon Web Services
 
Introduction to Amazon EC2 Spot
Introduction to Amazon EC2 Spot Introduction to Amazon EC2 Spot
Introduction to Amazon EC2 Spot Amazon Web Services
 
AWS Summit London 2014 | Customer Stories | Just Eat
AWS Summit London 2014 | Customer Stories | Just EatAWS Summit London 2014 | Customer Stories | Just Eat
AWS Summit London 2014 | Customer Stories | Just EatAmazon Web Services
 
Save 90% on Your Containerized Workloads - August 2017 AWS Online Tech Talks
Save 90% on Your Containerized Workloads - August 2017 AWS Online Tech TalksSave 90% on Your Containerized Workloads - August 2017 AWS Online Tech Talks
Save 90% on Your Containerized Workloads - August 2017 AWS Online Tech TalksAmazon Web Services
 
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...Amazon Web Services
 
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)Amazon Web Services
 
SMC303 Real-time Data Processing Using AWS Lambda
SMC303 Real-time Data Processing Using AWS LambdaSMC303 Real-time Data Processing Using AWS Lambda
SMC303 Real-time Data Processing Using AWS LambdaAmazon Web Services
 
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...Rustem Feyzkhanov
 
The art of infrastructure elasticity
The art of infrastructure elasticityThe art of infrastructure elasticity
The art of infrastructure elasticityHarish Ganesan
 
Data Migration Using AWS Snowball, Snowball Edge & Snowmobile
Data Migration Using AWS Snowball, Snowball Edge & SnowmobileData Migration Using AWS Snowball, Snowball Edge & Snowmobile
Data Migration Using AWS Snowball, Snowball Edge & SnowmobileAmazon Web Services
 

Tendances (20)

AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
 
(ARC310) Solving Amazon's Catalog Contention With Amazon Kinesis
(ARC310) Solving Amazon's Catalog Contention With Amazon Kinesis(ARC310) Solving Amazon's Catalog Contention With Amazon Kinesis
(ARC310) Solving Amazon's Catalog Contention With Amazon Kinesis
 
AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)
 
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
 
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
 
(ARC302) Running Lean Architectures: How to Optimize for Cost Efficiency | AW...
(ARC302) Running Lean Architectures: How to Optimize for Cost Efficiency | AW...(ARC302) Running Lean Architectures: How to Optimize for Cost Efficiency | AW...
(ARC302) Running Lean Architectures: How to Optimize for Cost Efficiency | AW...
 
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
 
(BDT310) Big Data Architectural Patterns and Best Practices on AWS
(BDT310) Big Data Architectural Patterns and Best Practices on AWS(BDT310) Big Data Architectural Patterns and Best Practices on AWS
(BDT310) Big Data Architectural Patterns and Best Practices on AWS
 
What's New with Amazon DynamoDB - AWS Online Tech Talks
What's New with Amazon DynamoDB - AWS Online Tech TalksWhat's New with Amazon DynamoDB - AWS Online Tech Talks
What's New with Amazon DynamoDB - AWS Online Tech Talks
 
Introduction to Amazon EC2 Spot
Introduction to Amazon EC2 Spot Introduction to Amazon EC2 Spot
Introduction to Amazon EC2 Spot
 
Big Data Architectural Patterns
Big Data Architectural PatternsBig Data Architectural Patterns
Big Data Architectural Patterns
 
AWS Summit London 2014 | Customer Stories | Just Eat
AWS Summit London 2014 | Customer Stories | Just EatAWS Summit London 2014 | Customer Stories | Just Eat
AWS Summit London 2014 | Customer Stories | Just Eat
 
Save 90% on Your Containerized Workloads - August 2017 AWS Online Tech Talks
Save 90% on Your Containerized Workloads - August 2017 AWS Online Tech TalksSave 90% on Your Containerized Workloads - August 2017 AWS Online Tech Talks
Save 90% on Your Containerized Workloads - August 2017 AWS Online Tech Talks
 
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
 
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
 
SMC303 Real-time Data Processing Using AWS Lambda
SMC303 Real-time Data Processing Using AWS LambdaSMC303 Real-time Data Processing Using AWS Lambda
SMC303 Real-time Data Processing Using AWS Lambda
 
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
 
AWS Cloudformation Session 01
AWS Cloudformation Session 01AWS Cloudformation Session 01
AWS Cloudformation Session 01
 
The art of infrastructure elasticity
The art of infrastructure elasticityThe art of infrastructure elasticity
The art of infrastructure elasticity
 
Data Migration Using AWS Snowball, Snowball Edge & Snowmobile
Data Migration Using AWS Snowball, Snowball Edge & SnowmobileData Migration Using AWS Snowball, Snowball Edge & Snowmobile
Data Migration Using AWS Snowball, Snowball Edge & Snowmobile
 

Similaire à Serverless on AWS : Understanding the hard parts at Froscon 2019

Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Amazon Web Services
 
Building Serverless Web Applications - DevDay Los Angeles 2017
Building Serverless Web Applications - DevDay Los Angeles 2017Building Serverless Web Applications - DevDay Los Angeles 2017
Building Serverless Web Applications - DevDay Los Angeles 2017Amazon Web Services
 
AWS Serverless patterns & best-practices in AWS
AWS Serverless  patterns & best-practices in AWSAWS Serverless  patterns & best-practices in AWS
AWS Serverless patterns & best-practices in AWSDima Pasko
 
Introduce AWS Lambda for newbie and Non-IT
Introduce AWS Lambda for newbie and Non-ITIntroduce AWS Lambda for newbie and Non-IT
Introduce AWS Lambda for newbie and Non-ITChitpong Wuttanan
 
(ARC302) Running Lean Architectures: Optimizing for Cost Efficiency
(ARC302) Running Lean Architectures: Optimizing for Cost Efficiency(ARC302) Running Lean Architectures: Optimizing for Cost Efficiency
(ARC302) Running Lean Architectures: Optimizing for Cost EfficiencyAmazon Web Services
 
Top 5 Ways to Optimize for Cost Efficiency with the Cloud
Top 5 Ways to Optimize for Cost Efficiency with the CloudTop 5 Ways to Optimize for Cost Efficiency with the Cloud
Top 5 Ways to Optimize for Cost Efficiency with the CloudAmazon Web Services
 
Production NoSQL in an Hour: Introduction to Amazon DynamoDB (DAT101) | AWS r...
Production NoSQL in an Hour: Introduction to Amazon DynamoDB (DAT101) | AWS r...Production NoSQL in an Hour: Introduction to Amazon DynamoDB (DAT101) | AWS r...
Production NoSQL in an Hour: Introduction to Amazon DynamoDB (DAT101) | AWS r...Amazon Web Services
 
AWS Cloud Kata | Bangkok - Getting to Profitability
AWS Cloud Kata | Bangkok - Getting to ProfitabilityAWS Cloud Kata | Bangkok - Getting to Profitability
AWS Cloud Kata | Bangkok - Getting to ProfitabilityAmazon Web Services
 
使用 AWS 無伺服器運算服務打造您的第一個語音助理
使用 AWS 無伺服器運算服務打造您的第一個語音助理使用 AWS 無伺服器運算服務打造您的第一個語音助理
使用 AWS 無伺服器運算服務打造您的第一個語音助理Amazon Web Services
 
Getting Started with AWS Compute Services
Getting Started with AWS Compute ServicesGetting Started with AWS Compute Services
Getting Started with AWS Compute ServicesAmazon Web Services
 
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)Amazon Web Services
 
How to Reduce your Spend on AWS
How to Reduce your Spend on AWSHow to Reduce your Spend on AWS
How to Reduce your Spend on AWSJoseph K. Ziegler
 
FaaS or not to FaaS AWS Community Day Hamburg 2019 Bannes Kazulkin
FaaS or not to FaaS  AWS Community Day Hamburg 2019 Bannes KazulkinFaaS or not to FaaS  AWS Community Day Hamburg 2019 Bannes Kazulkin
FaaS or not to FaaS AWS Community Day Hamburg 2019 Bannes KazulkinVadym Kazulkin
 
AWS APAC Webinar Series: How to Reduce Your Spend on AWS
AWS APAC Webinar Series: How to Reduce Your Spend on AWSAWS APAC Webinar Series: How to Reduce Your Spend on AWS
AWS APAC Webinar Series: How to Reduce Your Spend on AWSAmazon Web Services
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 
Day 3 - Maintaining Performance & Availability While Lowering Costs with AWS
Day 3 - Maintaining Performance & Availability While Lowering Costs with AWSDay 3 - Maintaining Performance & Availability While Lowering Costs with AWS
Day 3 - Maintaining Performance & Availability While Lowering Costs with AWSAmazon Web Services
 
Serverless Architecture Patterns
Serverless Architecture PatternsServerless Architecture Patterns
Serverless Architecture PatternsAmazon Web Services
 
serverless_architecture_patterns_london_loft.pdf
serverless_architecture_patterns_london_loft.pdfserverless_architecture_patterns_london_loft.pdf
serverless_architecture_patterns_london_loft.pdfAmazon Web Services
 
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...Amazon Web Services
 

Similaire à Serverless on AWS : Understanding the hard parts at Froscon 2019 (20)

Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017
 
Building Serverless Web Applications - DevDay Los Angeles 2017
Building Serverless Web Applications - DevDay Los Angeles 2017Building Serverless Web Applications - DevDay Los Angeles 2017
Building Serverless Web Applications - DevDay Los Angeles 2017
 
AWS Serverless patterns & best-practices in AWS
AWS Serverless  patterns & best-practices in AWSAWS Serverless  patterns & best-practices in AWS
AWS Serverless patterns & best-practices in AWS
 
Introduce AWS Lambda for newbie and Non-IT
Introduce AWS Lambda for newbie and Non-ITIntroduce AWS Lambda for newbie and Non-IT
Introduce AWS Lambda for newbie and Non-IT
 
(ARC302) Running Lean Architectures: Optimizing for Cost Efficiency
(ARC302) Running Lean Architectures: Optimizing for Cost Efficiency(ARC302) Running Lean Architectures: Optimizing for Cost Efficiency
(ARC302) Running Lean Architectures: Optimizing for Cost Efficiency
 
Top 5 Ways to Optimize for Cost Efficiency with the Cloud
Top 5 Ways to Optimize for Cost Efficiency with the CloudTop 5 Ways to Optimize for Cost Efficiency with the Cloud
Top 5 Ways to Optimize for Cost Efficiency with the Cloud
 
Production NoSQL in an Hour: Introduction to Amazon DynamoDB (DAT101) | AWS r...
Production NoSQL in an Hour: Introduction to Amazon DynamoDB (DAT101) | AWS r...Production NoSQL in an Hour: Introduction to Amazon DynamoDB (DAT101) | AWS r...
Production NoSQL in an Hour: Introduction to Amazon DynamoDB (DAT101) | AWS r...
 
AWS Cloud Kata | Bangkok - Getting to Profitability
AWS Cloud Kata | Bangkok - Getting to ProfitabilityAWS Cloud Kata | Bangkok - Getting to Profitability
AWS Cloud Kata | Bangkok - Getting to Profitability
 
使用 AWS 無伺服器運算服務打造您的第一個語音助理
使用 AWS 無伺服器運算服務打造您的第一個語音助理使用 AWS 無伺服器運算服務打造您的第一個語音助理
使用 AWS 無伺服器運算服務打造您的第一個語音助理
 
Getting Started with AWS Compute Services
Getting Started with AWS Compute ServicesGetting Started with AWS Compute Services
Getting Started with AWS Compute Services
 
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
 
How to Reduce your Spend on AWS
How to Reduce your Spend on AWSHow to Reduce your Spend on AWS
How to Reduce your Spend on AWS
 
FaaS or not to FaaS AWS Community Day Hamburg 2019 Bannes Kazulkin
FaaS or not to FaaS  AWS Community Day Hamburg 2019 Bannes KazulkinFaaS or not to FaaS  AWS Community Day Hamburg 2019 Bannes Kazulkin
FaaS or not to FaaS AWS Community Day Hamburg 2019 Bannes Kazulkin
 
AWS APAC Webinar Series: How to Reduce Your Spend on AWS
AWS APAC Webinar Series: How to Reduce Your Spend on AWSAWS APAC Webinar Series: How to Reduce Your Spend on AWS
AWS APAC Webinar Series: How to Reduce Your Spend on AWS
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
Day 3 - Maintaining Performance & Availability While Lowering Costs with AWS
Day 3 - Maintaining Performance & Availability While Lowering Costs with AWSDay 3 - Maintaining Performance & Availability While Lowering Costs with AWS
Day 3 - Maintaining Performance & Availability While Lowering Costs with AWS
 
Serverless Architecture Patterns
Serverless Architecture PatternsServerless Architecture Patterns
Serverless Architecture Patterns
 
serverless_architecture_patterns_london_loft.pdf
serverless_architecture_patterns_london_loft.pdfserverless_architecture_patterns_london_loft.pdf
serverless_architecture_patterns_london_loft.pdf
 
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
 

Plus de Vadym Kazulkin

How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...Vadym Kazulkin
 
How to reduce cold starts for Java Serverless applications in AWS at Serverle...
How to reduce cold starts for Java Serverless applications in AWS at Serverle...How to reduce cold starts for Java Serverless applications in AWS at Serverle...
How to reduce cold starts for Java Serverless applications in AWS at Serverle...Vadym Kazulkin
 
Revolutionize DevOps lifecycle with Amazon CodeCatalyst and DevOps Guru at De...
Revolutionize DevOps lifecycle with Amazon CodeCatalyst and DevOps Guru at De...Revolutionize DevOps lifecycle with Amazon CodeCatalyst and DevOps Guru at De...
Revolutionize DevOps lifecycle with Amazon CodeCatalyst and DevOps Guru at De...Vadym Kazulkin
 
Amazon DevOps Guru for the Serverless Applications at AWS Community Day NL 2023
Amazon DevOps Guru for the Serverless Applications at AWS Community Day NL 2023Amazon DevOps Guru for the Serverless Applications at AWS Community Day NL 2023
Amazon DevOps Guru for the Serverless Applications at AWS Community Day NL 2023Vadym Kazulkin
 
Making sense of service quotas of AWS Serverless services and how to deal wit...
Making sense of service quotas of AWS Serverless services and how to deal wit...Making sense of service quotas of AWS Serverless services and how to deal wit...
Making sense of service quotas of AWS Serverless services and how to deal wit...Vadym Kazulkin
 
How to reduce cold starts for Java Serverless applications in AWS at InfoShar...
How to reduce cold starts for Java Serverless applications in AWS at InfoShar...How to reduce cold starts for Java Serverless applications in AWS at InfoShar...
How to reduce cold starts for Java Serverless applications in AWS at InfoShar...Vadym Kazulkin
 
Adopting Java for the Serverless World at Voxxed Days Bruxelles 2023
Adopting Java for the Serverless World at Voxxed Days Bruxelles 2023Adopting Java for the Serverless World at Voxxed Days Bruxelles 2023
Adopting Java for the Serverless World at Voxxed Days Bruxelles 2023Vadym Kazulkin
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Vadym Kazulkin
 
AWS Lambda SnapStart: Why, How and What AWS Serverless Meetup New York Boston...
AWS Lambda SnapStart: Why, How and What AWS Serverless Meetup New York Boston...AWS Lambda SnapStart: Why, How and What AWS Serverless Meetup New York Boston...
AWS Lambda SnapStart: Why, How and What AWS Serverless Meetup New York Boston...Vadym Kazulkin
 
Revolutionize DevOps with ML capabilities. Deep dive into Amazon CodeGuru and...
Revolutionize DevOps with ML capabilities. Deep dive into Amazon CodeGuru and...Revolutionize DevOps with ML capabilities. Deep dive into Amazon CodeGuru and...
Revolutionize DevOps with ML capabilities. Deep dive into Amazon CodeGuru and...Vadym Kazulkin
 
Amazon DevOps Guru for the Serverless Applications at AWS Community Day Bene...
Amazon DevOps Guru for the Serverless Applications at  AWS Community Day Bene...Amazon DevOps Guru for the Serverless Applications at  AWS Community Day Bene...
Amazon DevOps Guru for the Serverless Applications at AWS Community Day Bene...Vadym Kazulkin
 
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022Vadym Kazulkin
 
Adopting Java for the Serverless World at JUG Saxony Day 2022
Adopting Java for the Serverless World at JUG Saxony Day 2022Adopting Java for the Serverless World at JUG Saxony Day 2022
Adopting Java for the Serverless World at JUG Saxony Day 2022Vadym Kazulkin
 
Projects Valhalla and Loom DWX 2022
Projects Valhalla and Loom DWX 2022Projects Valhalla and Loom DWX 2022
Projects Valhalla and Loom DWX 2022Vadym Kazulkin
 
Adopting Java for the Serverless World at VoxxedDays Luxemburg
Adopting Java for the Serverless World at VoxxedDays LuxemburgAdopting Java for the Serverless World at VoxxedDays Luxemburg
Adopting Java for the Serverless World at VoxxedDays LuxemburgVadym Kazulkin
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Vadym Kazulkin
 
Adopting Java for the Serverless World at JUG Bonn 2022
Adopting Java for the Serverless World at JUG Bonn 2022Adopting Java for the Serverless World at JUG Bonn 2022
Adopting Java for the Serverless World at JUG Bonn 2022Vadym Kazulkin
 
Adopting Java for the Serverless World at JUG Darmstadt 2022
Adopting Java for the Serverless World at JUG Darmstadt 2022Adopting Java for the Serverless World at JUG Darmstadt 2022
Adopting Java for the Serverless World at JUG Darmstadt 2022Vadym Kazulkin
 
Adopting Java for the Serverless World at JAX 2022
Adopting Java for the Serverless World at JAX 2022Adopting Java for the Serverless World at JAX 2022
Adopting Java for the Serverless World at JAX 2022Vadym Kazulkin
 
Adopting Java for the Serverless World at JUG Hessen 2022
Adopting Java for the Serverless World at JUG Hessen 2022Adopting Java for the Serverless World at JUG Hessen 2022
Adopting Java for the Serverless World at JUG Hessen 2022Vadym Kazulkin
 

Plus de Vadym Kazulkin (20)

How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
 
How to reduce cold starts for Java Serverless applications in AWS at Serverle...
How to reduce cold starts for Java Serverless applications in AWS at Serverle...How to reduce cold starts for Java Serverless applications in AWS at Serverle...
How to reduce cold starts for Java Serverless applications in AWS at Serverle...
 
Revolutionize DevOps lifecycle with Amazon CodeCatalyst and DevOps Guru at De...
Revolutionize DevOps lifecycle with Amazon CodeCatalyst and DevOps Guru at De...Revolutionize DevOps lifecycle with Amazon CodeCatalyst and DevOps Guru at De...
Revolutionize DevOps lifecycle with Amazon CodeCatalyst and DevOps Guru at De...
 
Amazon DevOps Guru for the Serverless Applications at AWS Community Day NL 2023
Amazon DevOps Guru for the Serverless Applications at AWS Community Day NL 2023Amazon DevOps Guru for the Serverless Applications at AWS Community Day NL 2023
Amazon DevOps Guru for the Serverless Applications at AWS Community Day NL 2023
 
Making sense of service quotas of AWS Serverless services and how to deal wit...
Making sense of service quotas of AWS Serverless services and how to deal wit...Making sense of service quotas of AWS Serverless services and how to deal wit...
Making sense of service quotas of AWS Serverless services and how to deal wit...
 
How to reduce cold starts for Java Serverless applications in AWS at InfoShar...
How to reduce cold starts for Java Serverless applications in AWS at InfoShar...How to reduce cold starts for Java Serverless applications in AWS at InfoShar...
How to reduce cold starts for Java Serverless applications in AWS at InfoShar...
 
Adopting Java for the Serverless World at Voxxed Days Bruxelles 2023
Adopting Java for the Serverless World at Voxxed Days Bruxelles 2023Adopting Java for the Serverless World at Voxxed Days Bruxelles 2023
Adopting Java for the Serverless World at Voxxed Days Bruxelles 2023
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
 
AWS Lambda SnapStart: Why, How and What AWS Serverless Meetup New York Boston...
AWS Lambda SnapStart: Why, How and What AWS Serverless Meetup New York Boston...AWS Lambda SnapStart: Why, How and What AWS Serverless Meetup New York Boston...
AWS Lambda SnapStart: Why, How and What AWS Serverless Meetup New York Boston...
 
Revolutionize DevOps with ML capabilities. Deep dive into Amazon CodeGuru and...
Revolutionize DevOps with ML capabilities. Deep dive into Amazon CodeGuru and...Revolutionize DevOps with ML capabilities. Deep dive into Amazon CodeGuru and...
Revolutionize DevOps with ML capabilities. Deep dive into Amazon CodeGuru and...
 
Amazon DevOps Guru for the Serverless Applications at AWS Community Day Bene...
Amazon DevOps Guru for the Serverless Applications at  AWS Community Day Bene...Amazon DevOps Guru for the Serverless Applications at  AWS Community Day Bene...
Amazon DevOps Guru for the Serverless Applications at AWS Community Day Bene...
 
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
 
Adopting Java for the Serverless World at JUG Saxony Day 2022
Adopting Java for the Serverless World at JUG Saxony Day 2022Adopting Java for the Serverless World at JUG Saxony Day 2022
Adopting Java for the Serverless World at JUG Saxony Day 2022
 
Projects Valhalla and Loom DWX 2022
Projects Valhalla and Loom DWX 2022Projects Valhalla and Loom DWX 2022
Projects Valhalla and Loom DWX 2022
 
Adopting Java for the Serverless World at VoxxedDays Luxemburg
Adopting Java for the Serverless World at VoxxedDays LuxemburgAdopting Java for the Serverless World at VoxxedDays Luxemburg
Adopting Java for the Serverless World at VoxxedDays Luxemburg
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
 
Adopting Java for the Serverless World at JUG Bonn 2022
Adopting Java for the Serverless World at JUG Bonn 2022Adopting Java for the Serverless World at JUG Bonn 2022
Adopting Java for the Serverless World at JUG Bonn 2022
 
Adopting Java for the Serverless World at JUG Darmstadt 2022
Adopting Java for the Serverless World at JUG Darmstadt 2022Adopting Java for the Serverless World at JUG Darmstadt 2022
Adopting Java for the Serverless World at JUG Darmstadt 2022
 
Adopting Java for the Serverless World at JAX 2022
Adopting Java for the Serverless World at JAX 2022Adopting Java for the Serverless World at JAX 2022
Adopting Java for the Serverless World at JAX 2022
 
Adopting Java for the Serverless World at JUG Hessen 2022
Adopting Java for the Serverless World at JUG Hessen 2022Adopting Java for the Serverless World at JUG Hessen 2022
Adopting Java for the Serverless World at JUG Hessen 2022
 

Dernier

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Dernier (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

Serverless on AWS : Understanding the hard parts at Froscon 2019

  • 1. Serverless on AWS Understanding The Hard Parts 10.08.2019 by Elmar Warken and Vadym Kazulkin, ip.labs GmbH
  • 2. Contact Vadym Kazulkin, ip.labs GmbH v.kazulkin@iplabs.de www.xing.com/profile/Vadym_Kazulkin @VKazulkin, @ServerlessBonn (Meetup) Elmar Warken, ip.labs GmbH e.warken@iplabs.de www.xing.com/profile/Elmar_Warken
  • 5. Revenue Share Calculator Service Requirements 1. Automatic calculation for the complete previous month on the 1st of each month for each customer 2. Manual calculation via a simple GUI • for the current month so far • recalculation of a user selected month 3. Calculation results as downloads, download link per email 4. Archive with calculated results for each customer 5. For internal use only!
  • 6. Serverless decision for RevShare project • spike workloads only at the beginning of a month • service is idle more than 99% of the time ➔ We use Function as a Service, to never pay for idle. 6
  • 7. RS core calculator Turnover info input data: order data & calculation rules output data: RS calculation & input data email with path to download RS calculation result Central DB Management Server extract customer, year and month from the file path Key example: revsharetool-storage-demo/input-data/1000000/import/201907/revshare-final.json RS calculator app customer, year, month
  • 10. Implementing „Revenue Share Calculation“ Lambda with Java SDK
  • 11. RevenueShare Service Lambda memory setting
  • 12. Selecting memory size for a Lambda function • Price 0,00001667 USD per GB-second • CPU power allocation proportional to amount of memory • more „GB“ will often just improve performance and not increase costs! • cheaper GB setting may save costs, when lambda function often has to wait 12
  • 16. Request references from X-Ray and CloudWatch 16
  • 17. Billed Duration and Max Memory Used 17
  • 18. Lambda free tier • 136170 sec. per month with the most powerful CPU setting • = more than 1h per day • with max 1 call every 2 sec. 18
  • 19. Considerations for fast Lambda functions (<500ms) • for billing, execution time will be rounded to 100 ms • reducing real execution time from 105 ms to 95 ms can safe 50% costs • might be possible by increasing memory by e.g. only 10% • fee for the mere call: 0,20$ per million • 1 million executions of 1 GB function with 1 sec runtime: > 16$ • 1 million executions of 128 MB function with 99 ms runtime: 0,208$ 19
  • 20. Amazon API Gateway • Expose Lambda functions as RESTful web service • API Management functionality built in: • authorization and access control for API calls with IAM • request monitoring and analytics • overload protection • version management • APIs as products (SaaS, AWS Marketplace) • SDK generation Amazon API Gateway
  • 21. API Gateway for different AWS services • Access different AWS services in a consistent manner
  • 22. https endpoints for Lambda functions https://pe2r5mu2n3.execute-api.us-east-1.amazonaws.com/Beta/calculate Application Lambda function
  • 23. API Gateway for Lambda function in RevShare App
  • 24. Cost influence of API gateway 24 0,408 1,032 1,656 2,28 2,904 3,528 4,152 4,776 3,908 4,532 5,156 5,78 6,404 7,028 7,652 8,276 100 MS 400MS 700MS 1000MS 1300MS 1600MS 1900MS 2200MS duration per call cost per million API calls in $ for a 128 MB function without API Gateway with API Gateway
  • 25. Defining APIs for Lambdas – manual approach Resources Operations
  • 26. Automated API definitions with „Serverless“ framework 26
  • 27. Automated API definitions with „Serverless“ framework 27
  • 28. 28
  • 29.
  • 30. Aggregations Source: Advanced Design Patterns for Amazon DynamoDB https://www.youtube.com/watch?v=jzeKPKpucS0
  • 31. Aggregations with DynamoDB Streams and Lambda
  • 32. Aggregations with DynamoDB Streams and Lambda
  • 33. Aggregations with DynamoDB Streams „revshare-calculation-aggregator“ Lambda
  • 34. Our Journey of (Auto-) Scaling Options
  • 35. Understanding DynamoDB Provisioned Throughput DynamoDB works by provisioning throughput at the table level. The throughput is set up as follows: • Each write capacity unit (WCU) gives 1KB/s of write throughput • Each read capacity unit (RCU) gives 4KB/s of read throughput • Read and write throughput are independent
  • 36. Partitioning Math By Capacity = (Total RCU)/3000 + (Total WCU)/1000 By Size = Total size / 10 GB Number of partitions = CEILING (MAX (Capacity, Size))
  • 37. Partitioning Math • Max RCUs per partition=3000 • Max WCUs per partition=1000 • Throughput (RCU & WCU) is uniformly spread across partitions • In case of exceeding throughput per partition - ProvisionedThroughputExceededException
  • 38. Partitioning Math Table Size=40 GB , RCUs=1500, WCUs=400 By Capacity = 1500/3000 + 400/1000=0.9 By Size = 40 GB / 10 GB =4 Number of partitions = CEILING (MAX (0.9,4)) =4 RCUs per partition=1500/4 =375 WCUs per partition=400/4 =100
  • 39. DynamoDB (Auto)-Scaling options • Configured auto scaling • Scheduled auto scaling • On demand capacity
  • 40. Configured Auto Scaling Example Source: Yan Cui: "The problems with DynamoDB Auto Scaling and how it might be improved" https://hackernoon.com/the-problems-with-dynamodb-auto-scaling-and-how-it-might-be-improved-a92029c8c10b
  • 41. Scheduled Auto Scaling Example aws application-autoscaling put-scheduled-action --service-namespace dynamodb --schedule "cron (50 1 1 * *)" // on the 1st of each month at 1:50 a.m. --scheduled-action-name IncreaseReadCapacity --resource-id arn:aws:dynamodb:region:account-id:your-table-name --scalable-dimension dynamodb:table:ReadCapacityUnits --scalable-targe-action MinCapacity=4,MaxCapacity=20 aws application-autoscaling delete-scheduled-action --service-namespace dynamodb --schedule "cron (30 3 1 * *)" // on the 1st of each month at 3:30 a.m. --scheduled-action-name IncreaseReadCapacity --resource-id arn:aws:dynamodb:region:account-id:your-table-name --scalable-dimension dynamodb:table:ReadCapacityUnits
  • 42. Database Capacity Planing Challenges Source: „A Deep Dive into What's New for Amazon DynamoDB (DAT201) - AWS re:Invent 2018” https://de.slideshare.net/AmazonWebServices/a-deep-dive-into-whats-new-for-amazon-dynamodb-dat201-aws-reinvent-2018
  • 43. New Feature : DynamoDB on Demand Capacity Source: https://aws.amazon.com/de/blogs/aws/amazon-dynamodb-on-demand-no-capacity-planning-and-pay-per-request- pricing/
  • 44. New Feature : DynamoDB on Demand Capacity Source: „A Deep Dive into What's New for Amazon DynamoDB (DAT201) - AWS re:Invent 2018” https://de.slideshare.net/AmazonWebServices/a-deep-dive-into-whats-new-for-amazon-dynamodb-dat201-aws-reinvent-2018
  • 45. New Feature : DynamoDB on Demand Capacity Source: „A Deep Dive into What's New for Amazon DynamoDB (DAT201) - AWS re:Invent 2018” https://de.slideshare.net/AmazonWebServices/a-deep-dive-into-whats-new-for-amazon-dynamodb-dat201-aws-reinvent-2018
  • 46. DynamoDB on Demand Capacity Limits • 40,000 read request units and 40,000 write request units per table in most regions • DynamoDB On-Demand provisions capacity to handle two times the past peak traffic Source: „Understanding the scaling behaviour of DynamoDB OnDemand tables” https://theburningmonk.com/2019/03/understanding-the-scaling-behaviour-of-dynamodb-ondemand-tables/
  • 47. DynamoDB on Demand Capacity Use Cases • You can’t predict your traffic patterns • You are not worried about a runaway bill (DynamoDB On-Demand pricing is about 6.94x the cost of provisioned capacity) Source: „DynamoDB On-Demand: When, why and how to use it in your serverless applications” by Alex DeBrie https://serverless.com/blog/dynamodb-on-demand-serverless/
  • 48. DynamoDB Capacities: reserved vs provisioned vs on demand 1. If you have steady, predictable traffic, choose reserved capacity 2. If you have variable, predictable traffic, choose provisioned capacity • Use (auto)-scaling 3. If you have variable, unpredictable traffic, choose on-demand capacity Source: „DynamoDB On-Demand: When, why and how to use it in your serverless applications” by Alex DeBrie https://serverless.com/blog/dynamodb-on-demand-serverless/
  • 49. DynamoDB canonical use cases • Key-value lookups on well-distributed records • Avoiding complex queries (and joins)
  • 50. DynamoDB is not the right choice for each solution
  • 51. Challenges with DynamoDB • Think of the access pattern in advance • Difficult to change access patterns (partition&sort key) & table structure afterwards
  • 52. Amazon Aurora Serverless (GA for MySql and Postgres)
  • 53. What Is Amazon Aurora Serverless?
  • 54. Amazon Aurora GA MySql/Postgres Source: “AWS Summit - London | twitch.tv/aws | Aurora Serverless Preview Update” https://www.youtube.com/watch?v=J3A_TJZosu8
  • 55. What Is Amazon Aurora Serverless?
  • 56. Amazon Aurora Serverless Architeсture Source: https://aws.amazon.com/de/blogs/aws/amazon-aurora-postgresql-serverless-now-generally-available/
  • 57. Amazon Aurora Serverless Settings Source: https://aws.amazon.com/de/blogs/aws/amazon-aurora-postgresql-serverless-now-generally-available/
  • 58. Amazon Aurora Serverless (Auto-)Scaling Source: https://aws.amazon.com/de/blogs/aws/amazon-aurora-postgresql-serverless-now-generally-available/
  • 59. Use cases for Amazon Aurora Serverless • Reasons to stay with relational database • Seldom usage (weekly jobs) + additional spikes • Dev/Test Database • Noticable initial latencies acceptable • Aurora and therefore Lambda are behind VPC • Drastically increases also Lambda cold start Source: Ajay Nair „Become a Serverless Black Belt” https://www.youtube.com/watch?v=oQFORsso2go
  • 60. Amazon Aurora Serverless Data API as beta for MySql available Sources: https://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/data-api.html Jeremy Daly: „Aurora Serverless Data API: A First Look“ https://www.jeremydaly.com/aurora-serverless-data-api-a-first-look/
  • 61. Amazon Aurora Serverless Data API Example const AWS = require('aws-sdk') const RDS = new AWS.RDSDataService() exports.test = async (event, context) => { const params = { awsSecretStoreArn: 'arn:aws:secretsmanager:us-east-1:XXXXXXXXX:secret:test/data-api/mysql-test', dbClusterOrInstanceArn: 'arn:aws:rds:us-east-1:XXXXXXXXXXX:cluster:test-data-api', sqlStatements: `SELECT * FROM mytable WHERE id = :id`, parameters: [ { name: 'id‘ , value: { “longValue“: 1 } } ], database: 'test_data_api' } let data = await RDS.executeStatement(params).promise() console.log(JSON.stringify(data, null, 2)) 61 Source: Jeremy Daly: „Aurora Serverless Data API: An (Updated) First Look“ https://www.jeremydaly.com/aurora-serverless-data- api-a-first-look/