Live data from Hacker News

Paketo: Modular Buildpacks in Go

paketo.io

1–10 of 32 posts

Re: Paketo: Modular Buildpacks in Go

#3
One thing that may not be immediately obvious: Paketo is backed by release engineering code, infrastructure[0] and know-how accumulated over 6 or so years of sustained engineering. I was lucky to work on some of it in 2014 and 2016, a year or two before the technologies directly feeding into Paketo were first developed.

The engineering and infrastructure costs millions of dollars per year. And you can get the benefit for free.

[0] https://buildpacks.ci.cf-app.com/

Re: Paketo: Modular Buildpacks in Go

#4
>How are images built with Paketo Buildpacks different from Docker images? Unlike Docker images, images built from Paketo Buildpacks are OCI compliant.

Can someone explain why this is significant - I'm struggling to wrap my head around the why

Re: Paketo: Modular Buildpacks in Go

#5

>How are images built with Paketo Buildpacks different from Docker images? Unlike Docker images, images built from Paketo Buildpacks are OCI compliant. Can someone explain why this is significant - I'm struggling to wrap my head around the why

Docker's v2 image format was the starting point for OCI, which is a later standard (and: actually a standard with multiple implementations, rather than a single implementation).

This is much more noticeable when you run into Docker v1 and Docker v2 images. They're quite different under the hood. In particular it means that OCI images can perform "layer rebasing" and "cross-repository blob mounting". Updating a layer of an image goes from O(n) to O(1).

Re: Paketo: Modular Buildpacks in Go

#7

>How are images built with Paketo Buildpacks different from Docker images? Unlike Docker images, images built from Paketo Buildpacks are OCI compliant. Can someone explain why this is significant - I'm struggling to wrap my head around the why

The OCI image format is a standardization of the Docker v2 image format, but they are generally compatible and interchangeable. That FAQ entry is misleading and slipped past the engineering team working on the project. Just removed it :)

Re: Paketo: Modular Buildpacks in Go

#8
> written in Go

I am not sure what this line is adding. It is supposed to add "runtime support". Is this doing some language specific libraries? But then they do support various other languages! Why is Go special? or that all language support is somehow made in Go? Binaries made in Go? May be that should have been left out for clarity. This is very confusing for me.

Re: Paketo: Modular Buildpacks in Go

#9
post #8

> written in Go I am not sure what this line is adding. It is supposed to add "runtime support". Is this doing some language specific libraries? But then they do support various other languages! Why is Go special? or that all language support is somehow made in Go? Binaries made in Go? May be that should have been left out for clarity. This is very confusing for me.

It may be an insider perspective. Early buildpacks were dominantly written in Ruby or Bash (one major one was written in Python). The Bash ones were awful. There was a generation after these, but before Paketo, which were written in Golang. Consolidating the various codebases was a big step forward and left a deep impression.
Post reply on HN