Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Safe Lambda Deployments - Albany NY - 2018-11-15
Search
sullis
November 15, 2018
Technology
1
220
Safe Lambda Deployments - Albany NY - 2018-11-15
AWS User Group
Albany NY
November 15, 2018
sullis
November 15, 2018
Tweet
Share
More Decks by sullis
See All by sullis
Amazon S3 Chicago 2025-06-04
sullis
0
86
Amazon S3 Boston 2025-05-07
sullis
0
40
Netty ConFoo Montreal 2025-02-27
sullis
0
70
GitHub Actions ConFoo Montreal 2025-02-26
sullis
0
41
Netty Portland Java User Group 2025-02-18
sullis
0
8
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
170
Amazon S3 - Portland Java User Group 2024-09-17
sullis
0
94
Netty - Montreal Java User Group 2024-05-21
sullis
0
170
Netty Chicago Java User Group 2024-04-17
sullis
0
1.1k
Other Decks in Technology
See All in Technology
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
330
VISITS_AIIoTビジネス共創ラボ登壇資料.pdf
iotcomjpadmin
0
140
What's new in OpenShift 4.19
redhatlivestreaming
1
470
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
590
Observability infrastructure behind the trillion-messages scale Kafka platform
lycorptech_jp
PRO
0
120
CI/CDとタスク共有で加速するVibe Coding
tnbe21
0
220
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
3
170
DB 醬,嗨!哪泥嘎斯基?
line_developers_tw
PRO
0
1k
自分を理解するAI時代の準備 〜マイプロフィールMCPの実装〜
edo_m18
0
110
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全
opelab
6
1.6k
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.2k
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
160
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Visualization
eitanlees
146
16k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Statistics for Hackers
jakevdp
799
220k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Site-Speed That Sticks
csswizardry
10
640
For a Future-Friendly Web
brad_frost
179
9.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Transcript
Sean Sullivan November 15, 2018 AWS User Group Albany NY
SAFE LAMBDA DEPLOYMENTS
software engineer Portland Oregon back office systems Hudson’s Bay Company
About me
None
saksfifthavenue.com saksoff5th.com lordandtaylor.com thebay.com
saksfifthavenue.com
undifferentiated heavy lifting AWS
provisioning servers AWS serverless
None
None
system plumbing business logic
None
None
HBC 2018 microservice architecture multi-tenant services increased adoption of AWS
Lambda safe deployments
None
HBC email types • order acknowledgement • order shipment partial
• order shipment full • order cancel • ready for pickup in store
Queue consumer Event queue Email Dashboard UI Email Sender Email
Render External Email Provider Feature Flag service
Email Render Product Detail service Delivery Date Estimation service request
HTML Feature Flag service
HBC email system • multi-tenant design • Cloudwatch Metrics •
Cloudwatch Alerts
HBC email system • code coverage threshold • components deployed
independently • safe deployments
aws-cli
$ brew install aws-cli
aws cloudformation package \ --template-file my-template.yaml \ --s3-bucket mycorp-codedeploy \
--s3-prefix my-lambda-func/jars \ --output-template-file package/2325bd1e.yaml
aws cloudformation deploy \ --template-file package/2325bd1e.yaml \ --stack-name mylambda-func—dev \
--parameter-overrides Stage=dev \ --region us-east-1 \ --capabilities CAPABILITY_IAM \ --notification-arns arn:aws:sns:us- east-1:123456789:myteam-cf-notifications
Mark Zuckerberg
Move Fast and Break Things Move Slow and Don’t Break
Things
Move Fast and Don’t Break Things Move Purposefully and Fix
Things
manual testing automated testing
how often do you release code to production?
safe AWS Lambda deployments?
https://www.youtube.com/watch?v=UIp6sLyvoC0
None
None
Traffic Shifting
You can now shift incoming traffic between two AWS Lambda
function versions based on pre-assigned weights. You can now also use AWS CodeDeploy to automatically manage the rollout of new function versions. This allows you to gradually shift traffic between two versions source: aws.amazon.com
Traffic Shifting configurations AllAtOnce Canary10Percent30Minutes Canary10Percent5Minutes Canary10Percent10Minutes Canary10Percent15Minutes
Linear10PercentEvery10Minutes Linear10PercentEvery1Minute Linear10PercentEvery2Minutes Linear10PercentEvery3Minutes Traffic Shifting configurations
all-at-once traffic shifting gradual traffic shifting
aws cloudformation deploy \ --template-file package/2325bd1e.yaml \ --stack-name mylambda-func—dev \
--parameter-overrides Stage=dev \ --parameter-overrides DeploymentPref=AllAtOnce \ --region us-east-1 \ --capabilities CAPABILITY_IAM \ --notification-arns arn:aws:sns:us- east-1:123456789:myteam-cf-notifications
Traffic Hooks
AWS traffic hooks • PreTraffic hook • PostTraffic hook
AWS CodeDeploy UI https://console.aws.amazon.com/codesuite/codedeploy/deployments
https://github.com/awslabs/serverless-application-model/pull/605
Future work at HBC additional validation logic in Pre Traffic
hook implement Post Traffic hook utilize AWS Cloud9 IDE
Final thoughts
traffic shifting
small incremental releases
engineering velocity is a competitive advantage
The end
None