Impressions from NixCon Berlin

NixCon 2015 - A NixOS Conference.NixCon 2015 has been an amazing event for me. So many smart folks around, good talks, interesting discussions. I would like to share some notes about what I took away from the conference.

Taking place in a cool converted loft, it was the first NixOS conference of size in Germany. Most attendees had a certain level of Nix experience, but there were also a lot of beginners around. It was definitively a good place for beginners like me to ask stupid questions. 😉

From the bulk of good talks I would like to point out some that I found personally most interesting.

Eelco Dolstra: Nix Roadmap

In the keynote at the start of the conference, Eelco gives an overview of the project and how it is going to develop. Eelco seems to be quite happy with the overall state of NixOS.

eelco-committers-per-month

The project has seen nearly exponential growth recently. Such rapid growth brings its own problems: the central build server is notoriously overloaded, maintainers have trouble keeping up with the sheer number of pull requests, security updates don’t come always in time. It is time for the community to reorganise itself.

A preview to future Nix versions: There are ideas about a distributed peer-to-peer binary cache so that binary packages will not depend on a central build server at all. Other hot topics are a redesign of the command line interface and how to reduce the size of the Nix store on disk.

Watch the full talk on video (brought to you by the excellent CCC VOC crew).

Oliver Charles: Nix in Production

In his talk, Ollie Charles demonstrates how they control a complete web development and production stack at Fynder with Nix and NixOS. Probably the most impressive demonstration of the power of Nix I have come across so far.

acid2-nix-production

Nix is used at all steps of the software lifecycle:

  • NixOS is used as the server operating system
  • NixOps is used to provision servers
  • nix-shell provides developer environments
  • Hydra is used as a continuous integration server and runs acceptance tests
  • Hydra is also used to package client-side JS code
  • they are even doing release management with Hydra
  • services are deployed to production servers with Nix expressions
  • extra goodie: systemd is migrating databases using a “state-as-a-service” pattern.

The Nix claim “One tool to rule them all” is probably more than a marketing gag. Ollie promised to write up all the techniques they use for future reference. I’m really looking forward to that.

Watch the full talk on video.

Peter Simons: The Nixpkgs Haskell Infrastructure

Historically, NixOS has a very strong relationship to the Haskell community. Peter Simons gives an overview of how Haskell packaging integrates with NixOS. A large part of Haskell-related nixpkgs are automatically generated from Haskell build specifications.

petersimons-haskell-fixpoint

The second half of the talk was mind blowing: Peter shows how a fixpoint calculation in Nix gives nearly infinite configurability of Haskell packages. Functional programming at its best.

Watch the full talk on video and the slides.

Further talks worth mentioning (in no particular order):

Conclusion

NixCon has been a very valuable experience for me. I’m returning with my head full of ideas and a lot of new contacts.

Although not so young at all (it started more than 10 years ago), NixOS seems to have gained traction recently.

What now? Flying Circus is serious about getting involved. If you are too, here is a great tutorial: A tour of Nix – Interactive introduction into the Nix programming language.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s