Распространение серверного приложения под Linux
У нас есть серверное приложение под управлением Linux Debian. Мы планируем распространять приложение как образы виртуальных машин (например, образы ovf, которые впоследствии можно будет импортировать на серверы VMware ESX)
Наша главная задача - как организовать обновления нашего приложения. Я думаю, что это сложнее, чем просто заменить наше приложение новой версией. Для новой версии приложения может потребоваться новая версия некоторых библиотек или инструментов Linux (скажем, новая libstdC++ или libssl или новый grep). Возможно, даже потребуется полное обновление системы Linux.
Конечно, процесс обновления должен потребовать как можно меньшего участия пользователя. Самый простой способ - вызвать "подходящее обновление" в качестве шага перед обновлением приложения. Но я считаю этот подход хрупким, потому что:
- если системная часть обновления завершится успешно, а прикладная часть обновления не удастся, это оставит нас с потенциально сломанной системой.
- если системная часть обновления сломается на полпути, это приведет к потенциально сломанной системе
- Требуется подключение к Интернету для "подходящего обновления" и друзей, что не всегда так
Поэтому я ищу способ связать наше приложение с Linux (имея все необходимые библиотеки и инструменты) и передать его нашим пользователям. Таким образом, весь пакет будет установлен на дополнительный раздел и будет активирован после перезагрузки. Мне очень нравится этот подход "все в одном", так как таким образом мы имеем полный контроль над тем, что мы отправляем, и можем также выполнять откат в случае, если что-то пойдет не так во время обновления (просто переключитесь на исходный раздел).
То, что я ищу, - это существующие технологии для реализации таких обновлений с помощью пакетов 'os + app'. Или, по крайней мере, ключевые слова подсказывают Google для них. Я заинтересован в Linux Debian 8 в частности.