Function to Container - Building a FaaS Experience


Authors:   Evan Anderson


The presentation discusses the importance of up-leveling the developer experience beyond Docker files and Kubernetes by standardizing runtime contracts and using build packs.
  • Developers need higher level abstractions beyond Docker files and Kubernetes
  • Standardizing runtime contracts can simplify container building
  • Build packs can save effort and help detect vulnerabilities
  • Community maintenance of baseline pieces can reduce redundancy
The speaker mentions the importance of having a higher level of abstraction for developers and standardizing runtime contracts. They also suggest using build packs to simplify container building and reduce redundancy. The speaker emphasizes the importance of community maintenance of baseline pieces to save effort and detect vulnerabilities. They also mention the need for tools like NSBom to help detect vulnerabilities. Overall, the presentation highlights the need for simplifying the developer experience and reducing redundancy in container building.


Function as a Service (FaaS) is a hot topic in serverless and cloud computing at the moment, and there are a variety of open-source and CNCF projects which provide some level of serverless capability. Many of these open-source serverless solutions actually operate at the level of the container abstraction, which makes them a powerful bridge for traditional application models, but sacrifices the simplicity of the "functions" approach. Function buildpacks aim to provide this developer simplicity by injecting both a main method and invocation glue such as an HTTP server into the application code before building a container image. Unlike traditional buildpacks which aim to package a complete application with specific protocol bindings specified by the developer, function buildpacks rely on inversion of control to adapt business logic (in the form of a CloudEvents-processing function) to the protocol needs of the application.