Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Had their developers known what they were actually writing, perhaps we'd have a lean and mean solution that did the right thing.

I am surprised nobody mentionned nix, nixos and guix.



Good time to raise awareness for these projects, both of which solve this problem extremely well.


Can you explain what those are and what they do?


Nix and Guix are purely functional package managers, meaning that software builds are treated like a mathematical function: Input the same source code + dependencies and receive the same build as output. They have features such as reproducibile (often bit identical) builds, transactional package upgrades and rollbacks, and unprivileged package management. They solve the dynamic linking problem by allowing each package to refer precisely to the dependencies that it was built with. With this mechanism in place, it becomes very easy to use applications that require different versions of some C library, or a different Ruby/Python interpreter, or whatever else. Furthermore, it can do this without relying on a specific type of file system, and without requiring that applications be run inside containers or virtual machines. This makes it very composable and general-purpose.

https://nixos.org/

http://www.gnu.org/software/guix/


What it doesn't do: handling cpu quota on per "stack" basis, no builtin security isolation. That said, both use container technology for that.

By solving the issue at a layer below (instead of adding one like docker does) it makes things much cleaner, more powerful making obselete puppet and the like. FWIW describing a containers/vm's/os'es in guix is much more easy than using docker.

Have a look at https://github.com/NixOS/nixops too.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: