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
210
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
Netty Chicago Java User Group 2024-04-17
sullis
0
180
Java 21 - Portland Java User Group 2023-10-24
sullis
0
230
Microbenchmarking with JMH - Portland 2023-03-14
sullis
0
97
Code generation on the Java VM 2022-04-19
sullis
0
80
Mockito 2022-01-25
sullis
0
150
GitHub Actions 2021-12-16
sullis
0
28
Apache Struts and the Equifax data breach 2021-06-03
sullis
0
45
Guardrail State of the Union 2021-04-13
sullis
0
280
Guardrail: State of the Union 2021-03-18
sullis
0
140
Other Decks in Technology
See All in Technology
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
370
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
320
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
170
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
3
570
MapLibreとAmazon Location Service
dayjournal
1
160
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
2
190
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
開発パフォーマンスを最大化するための開発体制
ham0215
2
440
Building Dashboards as a Hobby
egmc
0
230
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
1
160
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
0
230
エンジニアのキャリアをちょっと楽しくする3本の軸/Three Pillars to Make an Engineer's Career More Enjoyable
kwappa
0
2.7k
Featured
See All Featured
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Visualization
eitanlees
136
14k
Fireside Chat
paigeccino
21
2.6k
Faster Mobile Websites
deanohume
299
30k
Thoughts on Productivity
jonyablonski
58
3.8k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Designing Experiences People Love
moore
136
23k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
Typedesign – Prime Four
hannesfritz
36
2.1k
Producing Creativity
orderedlist
PRO
337
39k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.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