arrow_back Art and science of choices in engineering
Functional programming and Nix for reproducible, immutable infrastructure
Submitted by Brian McKenna (@puffnfresh) on Sunday, 31 March 2019
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.