4–7 Nov 2019

Releasing improved serverless functions with confidence

13:3017:00 Tuesday, 5 November 2019
Location: Hall A2
Secondary topics:  Best Practice, Hands-on

Who is this presentation for?

  • Architects and developers with an interest or some experience in serverless applications

Level

Intermediate

Description

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.

Outline:

  • 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

Prerequisite knowledge

  • 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
Photo of Jochem Schulenklopper

Jochem Schulenklopper

Xebia

Jochem Schulenklopper is a Netherlands-based IT architect at Xebia, an international IT consultancy company.

Photo of Gero Vermaas

Gero Vermaas

Xebia

Gero Vermaas is a Netherlands-based IT architect at Xebia, a boutique IT consultancy firm.

Leave a Comment or Question

Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?

Join the conversation here (requires login)

Contact us

confreg@oreilly.com

For conference registration information and customer service

partners@oreilly.com

For more information on community discounts and trade opportunities with O’Reilly conferences

Become a sponsor

For information on exhibiting or sponsoring a conference

pr@oreilly.com

For media/analyst press inquires