This is a story of an Infrastructure team at Zalora that implemented DevOps using Haskell and Nix.
The story is about:
- drowning in inherent complexity of existing Puppet configuration
- establishing a functional programming community inside the company
- implementing configuration management using purely-functional language and package manager Nix and using NixOS as the base OS
- challenges of using new tools at scale
- building cloud infrastructure tools using Haskell
- building a code-driven deployment platform borrowing design practices from Erlang/OTP, Mesos and other successful distributed system frameworks, accommodating engineering team growth
- overcoming adoption failures and finally reaching operational happiness