История изменений
Исправление Deleted, (текущая версия) :
Культура дропать и пересоздавать их на каждый чих, которая и принесла современному девопсу псевдовоспроизводимость, зародилась когда Nix уже десяток лет как был.
Согласен. Но как видишь, от «возможности» до «культуры» прошло очень много лет. Быстрее не вышло.
Насчёт Nix - в результате его работы получается фарш в /nix/store, и никто не поручится, что этот фарш работает надежно. Софт не может обратиться к «неправильной» версии пакета? В теории да, а на практике - может, если захочет. Если вы хотите полного контроля, каждый процесс должен быть изолирован в адресном пространстве с точностью до своих зависимостей и обрабатываемых файлов. Пока это нереализуемо в общем случае, но развитие идёт именно туда.
При этом Nix еще и не позволяет реализовать базовый принцип инженера: работает - не тронь. Если мне нужно запатчить баг в glibс, не изменяющий её API, я всё равно должен пересобрать весь стек, хотя вышележащие компоненты не нуждаются в пересборке. В идеальном мире пересборка даст точно такой же результат. А в реальном возможны варианты.
Nix решает проблемы не с того конца: требуется не уничтожение FHS, а её полная виртуализация. Вопспроизводимость - это условная характеристика, зависящая от требований конкретной задачи, а nix не дает возможности её регулировать.
Итого из реальных недостатков контейнеризации - только недостаточный уровень дедупликации файлов.
Исходная версия Deleted, :
Культура дропать и пересоздавать их на каждый чих, которая и принесла современному девопсу псевдовоспроизводимость, зародилась когда Nix уже десяток лет как был.
Согласен. Но как видишь, от «возможности» до «культуры» прошло очень много лет. Быстрее не вышло.
Насчёт Nix - в результате его работы получается фарш в /nix/store, и никто не поручится, что этот фарш работает надежно. Софт не может обратиться к «неправильной» версии пакета? В теории да, а на практике - может, если захочет. Если вы хотите полного контроля, каждый процесс должен быть изолирован в адресном пространстве с точностью до своих зависимостей и обрабатываемых файлов. Пока это нереализуемо, но развитие идёт именно туда.
При этом Nix еще и не позволяет реализовать базовый принцип инженера: работает - не тронь. Если мне нужно запатчить баг в glibс, не изменяющий её API, я всё равно должен пересобрать весь стек, хотя вышележащие компоненты не нуждаются в пересборке. В идеальном мире пересборка даст точно такой же результат. А в реальном возможны варианты.
Nix решает проблемы не с того конца: требуется не уничтожение FHS, а её полная виртуализация. Вопспроизводимость - это условная характеристика, зависящая от требований конкретной задачи, а nix не дает возможности её регулировать.
Итого из реальных недостатков контейнеризации - только недостаточный уровень дедупликации файлов.