How a scientist would improve serverless functions
Join us if you're curious about how to reliably improve and refactor serverless applications or how to ensure you've covered all the unexpected edge cases that occur in production. Jochem Schulenklopper and Gero Vermaas demonstrate a scientific approach that enables you to release your refactored serverless applications to production with great confidence.
|Talk Title||How a scientist would improve serverless functions|
|Speakers||Jochem Schulenklopper (Xebia), Gero Vermaas (Xebia)|
|Conference||O’Reilly Software Architecture Conference|
|Conf Tag||Engineering the Future of Software|
|Date||November 5-7, 2019|
Jochem Schulenklopper and Gero Vermaas detail scientific approaches used to build knowledge about the world. Empirical, quantitative research generates knowledge derived from observations and uses inductive reasoning to draw conclusions about the experiment outcome. They explore the Scientist library and its concept as described and used by GitHub in refactoring the
gitlib2 C library. You’ll learn the Scientist backstory, how GitHub used it to improve an existing implementation, and what the (sometimes surprising) results of applying the scientific method were.
They 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. And they outline 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). You’ll get a demonstration of using Scientist in refactoring an actual (small, and thus comprehensible) serverless application in production: improving it step by step while being confident that candidate changes are actual improvements over the control = current implementations.