Artur Stachecki
Artur, with a background in computer science and engineering, focuses on correctness, reliability, and reusability in software systems. Leading large-scale migrations, he excels in creating advanced build systems and ensuring hermetic, reproducible builds. A proponent of software reusability, Artur has engineered innovative solutions using variability modeling and mass customization to enhance software performance and reliability.
Sessions
The premise of combining Nix and Bazel is really appealing and powerful - one gets the full reproducibility stemming from Nix (alongside all definitions from its rich ecosystem) and the fast incremental builds that are the hallmark of Bazel. Truly a bliss. Practicalities however beg to differ - the road towards such a combination is full of unexpected surprises, ill-implemented features and design decisions that break everything.
This talk is a journey of discovery of things that go wonderfully wrong if Nix and Bazel are being used together. The third ingredient to the Nix and Bazel cocktail are footguns. A lot of them.
We want to share them, so others do not have to get burned on them.
Deploying nix-built applications to a Kubernetes cluster can be an exercise in frustration - even though nix has built-in support for creation of container images, the outcome is usually a quite sizable tar archive. Propagation, caching and updating of such images takes time, bandwidth and storage space. One is essentially packaging little slices of a nix store, every time an application needs to be delivered. There has to be a better way!
We want to present a FUSE-based way of attaching a shared /nix/store
to container images and thus allowing them to only contain metainformation required to run the application. Even complex k8s deployments are reduced to very thin updates of data!