Providing build and development environments for Python based projects is typically not without challenges. This talk presents how Nix - The Purely Functional Package Manager can be used to provide reproducible environments for development and deployment of Python based Web projects.
Today’s typical Web projects come with a bunch of challenges which make it a non-trivial task to provide reproducible development and build environments. Python based Web projects are no exception to this.
Some of the common challenges:
- System dependencies are often managed in a system specific way, usually specific to the package management tool of the operating system.
- Development environments diverge over time if parts are managed manually. This leads to hard to diagnose issues due to subtle differences between different developer’s environments.
- Development and production environments are hard to keep in sync which makes it hard to reproduce issues from a production environment.
The talk introduces the high level concepts of Nix
and how it can be applied for the case of Python based Web applications to mitigate the aforementioned challenges. It concludes with lessons learned from following this approach in various Python based web projects during the last years.