История изменений
Исправление Deleted, (текущая версия) :
Ответ на все «как» - контейнер.
Образы контейнеров прекрасно работают и в качестве предсказуемой среды сборки, и в качестве средства деплоя.
При этом контейнер инкапсулирует всю сложность деталей реализации зависимостей, такой как хидеры, dso, внезапные баги в стабильном API и т.п. И вместе с тем, у разработчика всегда остаётся возможность гибко определить желаемый баланс между паранойей и доверием стабильности декларируемого API.
При этом контейнер ещё представляет и понятную единицу управления данными при необходимости архивировать, восстанавливать, проверять целостность и т.п., вместо фарша артефактов nix.
Ты не принимаешь во внимание, что пересборка не бесплатная, и более того, зачастую довольно дорогая. Если у тебя деплой хотфикса в продакшн после прохождения QA занимает 5 минут - это одно, и если час на «правильную» пересборку мира - это другое. На практике это могут быть прямые потери на миллионы долларов, репутационые потери на неизвестный офигилиард долларов и т.п.
А если ты используешь хак с заменой зависимости без пересборки, то это фактически означает, что ты не использовал nix для того, для чего он предназначен. Ну и зачем в деплое такая система, которую приходится отключать для деплоя?
Исправление Deleted, :
Ответ на все «как» - контейнер.
Образы контейнеров прекрасно работают и в качестве предсказуемой среды сборки, и в качестве средства деплоя.
При этом контейнер инкапсулирует всю сложность деталей реализации зависимостей, такой как хидеры, dso, внезапные баги в стабильном API и т.п. И вместе с тем, у разработчика всегда остаётся возможность гибко определить желаемый баланс между паранойей и доверием стабильности декларируемого API.
При этом контейнер ещё представляет и понятную единицу управления данными при необходимости архивировать, восстанавливать, проверять целостность и т.п., вместо фарша артефактов nix.
Ты не принимаешь во внимание, что пересборка не бесплатная, и более того, зачастую довольно дорогая. Если у тебя деплой хотфикса в продакшн после прохождения QA занимает 5 минут - это одно, и если час на «правильную» пересборку мира - это другое. На практике это могут быть потери на миллионы долларов, репутационые потери на неизвестный офигилиард долларов и т.п.
А если ты используешь хак с заменой зависимости без пересборки, то это фактически означает, что ты не использовал nix для того, для чего он предназначен. Ну и зачем в деплое такая система, которую приходится отключать для деплоя?
Исходная версия Deleted, :
Ответ на все «как» - контейнер.
Образы контейнеров прекрасно работают и в качестве предсказуемой среды сборки, и в качестве средства деплоя.
При этом контейнер инкапсулирует всю сложность деталей реализации зависимостей, такой как хидеры, dso, внезапные баги в стабильном API и т.п. И вместе с тем, у разработчика всегда остаётся возможность гибко определить желаемый баланс между паранойей и доверием стабильности декларируемого API.
При этом контейнер ещё представляет и понятную единицу управления данными при необходимости архивировать, восстанавливать, проверять целостность и т.п., вместо фарша артефактов nix.
Ты никак не хочешь принимать во внимание, что переборка не бесплатная, и более того, зачастую довольно дорогая. Если у тебя деплой хотфикса в продакшн после прохождения QA занимает 5 минут - это одно, и если час на «правильную» пересборку мира - это другое. На практике это могут быть потери на миллионы долларов, репутационые потери на неизвестный офигилиард долларов и т.п.
А если ты используешь хак с заменой зависимости без пересборки, то это фактически означает, что ты не использовал nix для того, для чего он предназначен. Ну и зачем в деплое такая система, которую приходится отключать для деплоя?