Abstract
FFTT (Functional File Tree Transforms) is a new, Docker-centric build tool I am working on, implemented with nodejs. It handles builds as a pure functions that transform a file tree (the source, or input) into another file tree (the build artifact, or output). Every file and directory involved in the build (source, intermediate and final artifacts) are hashed and stored in a content-addressable storage (git-like). This might sound crazy at first but in practice it makes every build extremely fast and totally deterministic. Also the recently-released Google build tool, Bazel, works in this way, but FFTT goes a couple of steps further by being Docker centric (every build step runs in a docker container to ensure full determinism), and it exports every build artifact as a ready-to-run-in-production file tree (exportable as a Docker volume), enabling fast (milliseconds!) and deterministic deployments. This makes it possible to run the same continuous deployment pipeline both in production and while developing on a local workstation, essentially performing a local deployment at every rebuild.
Facebook
Twitter
Tweets di @jsconfitFlickr