Unraveling the magic behind Buildpacks

By Sambhav Kothari

Elevator Pitch

Cloud Native Buildpacks makes building container images a breeze. It comes with out-of-the-box support for rebasing, reproducibility, multiple entrypoints and more! In this talk we’ll uncover the magic that the lifecycle - the binary at the heart of CNB - uses to convert source code into OCI images.

Description

Cloud Native Buildpacks transform your application source code into runnable images - without Dockerfiles.

Why is this helpful?

  • It allows application developers to focus on what they’re building, and not on how to support it in production
  • It gives operators precise control over what build inputs are permitted and how builds are executed
  • Lastly operations like rebase that allow mass-patching the base image can have dramatic consequences for large-scale reactions to OS vulnerabilities

Takeaways

In this talk we will explore how lifecycle - the binary at the heart of buildpacks - makes all this possible. We will be going through the 5 different stages that the lifecycle executes - detect, analyze, restore, build and finally export and how it stitches up the final OCI image. We will also be exploring the performance optimizations we have had to make to speed up the image building process and how we leverage the docker daemon in order to do so.

Notes

Technical Requirements

This is a talk aimed at advanced users. We assume some general familiarity with -

  • OCI Image Spec
  • Docker architecture and internals

Why you’re the best person to speak on this subject?

Natalie Arellano is a Software Engineer at VMWare. Natalie is a project maintainer under the Implementation team responsible for maintaining the components that constitute the Cloud Native Buildpacks reference implementation of the specification and maintains the lifecycle. She has previously spoken at a number of Cloud Foundry summits about improving the Windows operator experience.

Sambhav Kothari is a Machine Learning Platform Engineer at Bloomberg. Sambhav is a project contributor under the Learning team responsible for maintaining the Cloud Native Buildpacks’ documentation, website, and resources.