Releasing improved serverless functions with confidence
Who is this presentation for?
- Architects and developers with an interest or some experience in serverless applications
Jochem Schulenklopper and Gero Vermaas get you started by describing serverless architectures, serverless applications, AWS Lambda functions, and the serverless framework to specify and deploy such applications. Right from the start, you’ll fork an application and deploy it as a serverless application to a production environment. They also describe the Scientist library and its concept as described and used by GitHub in refactoring a core Git library, as well as the backstory of Scientist, how GitHub used it in testing an improved implementation, and some (sometimes surprising) results of applying its “scientific method” for things running in production.
They compare the approach used by Scientist (“testing candidates in production, comparing their outcomes with a control”) with other ways to verify the correctness and quality of software implementations and architecture designs, including unit and component testing, integration testing, performance and load testing, production simulation, A/B testing, blue-green deployments, feature flags, canary deployments, and architecture fitness functions, and make the case that the scientific method of testing improvements in production really adds value in guaranteeing whether a (refactored) implementation objectively and conclusively performs better.
You’ll apply this “release improved code to production with confidence” approach on the small serverless application that already runs in production and make improvements to the code (choosing from AWS Lambda functions in Java, Python, Node.js, Go, or Ruby programming languages), deploy the improved code to production, and compare that with the original baseline applications during ongoing production traffic. Based on the outcomes, you can confidently conclude whether your changes are actual improvements over the current implementation.
- Brief introduction into serverless architectures, AWS Lambda functions, and serverless framework
- Hands on: Forking a sample repository, setting up local development environment, and deploying a simple serverless application to a production environment
- Brief description of different approaches for verifying running software in local, testing, and production environments
- Description of Scientist library as used by GitHub in refactoring a core library
- Brief description of a comparable library for testing serverless applications
- Hands on: Applying a Scientist-like implementation in releasing and testing improvements in a sample serverless application and concluding on the quality based on actual production traffic
- A basic understanding of serverless architecture style and serverless applications
- Familiarity with making changes to an existing smallish application in Java, Python, Node.js, Go, or Ruby
- Experience with AWS Lambda and serverless framework (useful but not required)
Materials or downloads needed in advance
- A laptop with an internet connection
What you'll learn
- Get an introduction to a relatively new approach of nonintrusive testing of refactored or improved serverless functions using actual production traffic
- Learn to deploy and run a (small) serverless application in production
- Gain experience in improving software code of a serverless function
- See how to test improved code against existing code and decide whether the changes are good enough to be released to production
Jochem Schulenklopper is a Netherlands-based IT architect at Xebia, an international IT consultancy company.
Gero Vermaas is a Netherlands-based IT architect at Xebia, a boutique IT consultancy firm.
Comments on this page are now closed.
Diversity & Inclusion Sponsor
For conference registration information and customer service
For more information on community discounts and trade opportunities with O’Reilly conferences
For information on exhibiting or sponsoring a conference
For media/analyst press inquires