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.

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 :)