How a scientist would improve serverless functions
How can you reliably improve and refactor serverless applications? How do you ensure you have covered all the unexpected edge cases that occur in production? Gero Vermaas and Jochem Schulenklopper explain and demonstrate a scientific approach (promoted by GitHub in its Scientist library) that enables you to release refactored serverless applications to production with great confidence.
Talk Title | How a scientist would improve serverless functions |
Speakers | Gero Vermaas (Xebia), Jochem Schulenklopper (Xebia) |
Conference | O’Reilly Software Architecture Conference |
Conf Tag | Engineering the Future of Software |
Location | San Jose, California |
Date | June 11-13, 2019 |
URL | Talk Page |
Slides | Talk Slides |
Video | |
Gero Vermaas and Jochem Schulenklopper explore scientific approaches used to build knowledge about the world, such as how empirical, quantitative research generates knowledge derived from observations and uses inductive reasoning to draw conclusions about the experiment outcome. They then offer an overview of the Scientist library, used by GitHub in refactoring the gitlib2 C library, and discuss the (sometimes surprising) results of applying the scientific method. Gero and Jochem compare the approach used by Scientist (testing candidates in production, comparing outcomes with a control group) with other ways to verify the correctness and quality of software implementations and architectural setups: 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. They make the case that the scientific method adds value in guaranteeing whether a (refactored) implementation objectively and conclusively performs better in production. Join in to see how they’ve applied this approach in refactoring serverless functions, including a lightweight implementation of Scientist for AWS Lambda functions, and discuss examples of refactoring simple code (comparing alternative implementations in the same programming language, comparing implementations in different languages, possibly even comparing implementations at different FaaS providers). Along the way, you’ll see Scientist in action for refactoring an actual (small, thus comprehensible) serverless application in production, as Gero and Jochem take you through improving it step-by-step while remaining confident that candidate changes are actual improvements over the control (current implementations).