How a scientist would improve serverless functions
Who is this presentation for?
- Architects and developers (starting their journey) of serverless applications
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.
- Experience designing and building applications
- Familiarity with the serverless architecture style (useful but not required)
- Experience with serverless applications and functions (useful but not required)
What you'll learn
- Get an introduction to a relatively new approach of nonintrusive testing of refactored and improved serverless functions using actual production traffic
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
Become a sponsor
For information on exhibiting or sponsoring a conference
For media/analyst press inquires
Thanks for your attention if you joined us this morning – we enjoyed giving the presentation, and appreciated the quality of the questions and discussions afterwards.
There’s one improvement that’s already on the roadmap, related to further reducing the latency that Serverless Scientist adds to the responses: https://gitlab.com/practicalarchitecture/serverless-scientist/issues/52.
In short, by using a custom runtime for our AWS Lambda functions we can defer all non-control related communication to a later stage; after returning the control’s response to the client. That will significantly reduce the current latency added by Serverless Scientist.