Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deploying Serverless with Confidence

Deploying Serverless with Confidence

When you work serverless, you usually deploy a lot and in small increments. Obviously, you need a safety net for this to work. Luckily, AWS offers a way to run tests before and after deployments using CodeDeploy.
I will demonstrate how we used this ability to achieve confidence in our serverless deployments.

Avatar for Alex Badyan

Alex Badyan

March 05, 2019
Tweet

Other Decks in Programming

Transcript

  1. About me u Software Developer for ~13 years u Doing

    Serverless for 2 years u Tech Lead @ Vonage u [email protected]
  2. Vonage dev cycle, circa 2016 u Dev work of several

    teams for several weeks u Code Freeze u QA u Integrations u Hardening u (Prayer) u Deployment u Post deployments tests
  3. Vonage dev cycle, 2019 u Dev work for a week

    u Business logic u Automatic testing u Deploy to QA u Deploy to PROD
  4. Unit Tests u Pure business logic u Become less important

    as service size decreases u Watch this talk by Asaf Mesika about testing
  5. E2E Tests u In our context can be called Smoke

    Tests u Similar to integration tests u May be a subset of them u Focused on testing happy paths u Include external systems u Look for problems with authentication, configuration, etc.
  6. Our use case – device service u Manages provisioning of

    physical devices u Essentially similar to our sample architecture u Calls a service called VDP instead of Nexmo
  7. Serverless Framework u Talk by Oren Herman u Each stack

    is an SDU u serverless-plugin-canary-deployments
  8. Summary u Automatic rollback of deployments is crucial u Integration

    tests are more important than unit tests for nano services u Serverless framework makes your life easier :)