Safe Lambda Deployments - Seattle - 2019-02-21

99d4c0ed3c8027ea1c37b53d6441d042?s=47 sullis
February 21, 2019

Safe Lambda Deployments - Seattle - 2019-02-21

Seattle Serverless Meetup
February 21, 2019

#awslambda #awscloud #serverless #seattle

99d4c0ed3c8027ea1c37b53d6441d042?s=128

sullis

February 21, 2019
Tweet

Transcript

  1. 3.
  2. 7.

    “You go to production with the code you have, not

    the code you might want or wish to have at a later time.” Donald Rumsfeld December 2004 * fake quote
  3. 9.

    “Provisioning servers is a waste of time. It destroys your

    budget and your self-respect and everything that goes along with your self-esteem.” Kurt Cobain web developer 1993 * fake quote
  4. 11.

    “My songs have always been frustrating themes, inspired by bad

    production deployments that I've had” Kurt Cobain web developer 1993 * fake quote
  5. 13.

    “Your deploys should be as boring, straightforward, and stress-free as

    possible” Zach Holman March 2016 https://zachholman.com/posts/deploying-software
  6. 14.

    “You don't need release managers, you don't need special deploy

    days, you don't need all hands on deck for every single deploy.” Zach Holman March 2016 https://zachholman.com/posts/deploying-software
  7. 15.

    “We love to deploy new code incrementally hundreds of times

    a day. And there's good reason for that: it's safer overall. Incremental deploys are easier to understand and fix than one gigantic deploy once a year.” https://zachholman.com/talk/move-fast-break-nothing/ Zach Holman October 2014
  8. 18.

    “I never wanted to sing, I just wanted to write

    code and deploy to production.” Kurt Cobain web developer 1993 * fake quote
  9. 19.
  10. 20.
  11. 24.
  12. 25.

    HBC email types • order acknowledgement • order shipment partial

    • order shipment full • order cancel • ready for pickup in store
  13. 26.

    Queue consumer Event queue Email Dashboard UI Email Sender Email

    Render External Email Provider Feature Flag service
  14. 31.

    Move Fast and Break Things Move Slow and Don’t Break

    Things Move Fast and Don’t Break Things Move Purposefully and Fix Things
  15. 34.
  16. 36.
  17. 38.

    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
  18. 43.

    $ brew update $ brew tap aws/tap $ brew install

    aws/tap/aws-sam-cli $ brew install aws-cli
  19. 44.
  20. 45.

    aws cloudformation package \ --template-file my-template.yaml \ --s3-bucket mycorp-codedeploy \

    --s3-prefix my-lambda-func/jars \ --output-template-file package/2325bd1e.yaml
  21. 46.

    aws cloudformation deploy \ --template-file package/2325bd1e.yaml \ --stack-name mylambda-func—xyz \

    --parameter-overrides Stage=xyz \ --region us-east-1 \ --capabilities CAPABILITY_IAM \ --notification-arns arn:aws:sns:us- east-1:123456789:myteam-cf-notifications
  22. 47.

    aws cloudformation deploy \ --template-file package/2325bd1e.yaml \ --stack-name mylambda-func—xyz \

    --parameter-overrides Stage=xyz \ --parameter-overrides DeploymentPref=Canary10Percent5Minutes \ --region us-east-1 \ --capabilities CAPABILITY_IAM \ --notification-arns arn:aws:sns:us- east-1:123456789:myteam-cf-notifications
  23. 55.

    additional validation logic in Pre Traffic hook implement Post Traffic

    hook utilize AWS Cloud9 IDE Future work at HBC
  24. 60.

    “I'd rather be hated for the code that I’ve deployed,

    than loved for the songs I've written” Kurt Cobain web developer 1993 * fake quote
  25. 62.