Functional programming and Nix for reproducible, immutable infrastructure
The Atlassian Marketplace team in Bengaluru uses functional programming at the application level and infrastructure level. Each service which makes up Atlassian Marketplace uses Nix, a purely functional programming language, package manager and operating system. The Nix tool allows determining every version of software, all the way from the application level, down to the C standard library. All of Atlassian Marketplace’s services are bit-for-bit reproducible and are deployed to Atlassian’s internal PaaS, using Docker images.
The audience will be presented the ideas behind Nix and high-level details on how it works. They will see the ways Atlassian Marketplace team exploits Nix to create infrastructure.
- Why functions?
- How are functions relevant to package management?
- How are functions relevant to operating systems?
- Development shells
- Docker without Dockerfiles
Brian McKenna is a contributor to Nix, nixpkgs and HNix. Brian joined the Atlassian Marketplace team as a Site Reliability Engineer and worked on using Nix to migrate the product’s services away from a custom Amazon AWS deployment to Atlassian’s internal PaaS. Brian has since moved to Bengaluru to help teach the team how to exploit functional programming effectively.