Рейтинг:0

Лучшие практики для управления версиями VPS

флаг gb

Мне регулярно приходится разрабатывать некоторые сервисы на основе Linux, бесплатного программного обеспечения и приложений с закрытым исходным кодом. Я использую QEMU виртуальная машина как среда разработки где я напрямую редактирую файлы на работающем экземпляре и одновременно провожу тесты. Когда дело готово, я копирую все файлы на рабочий сервер, который сделан из свежей установки ОС, с полной конфигурацией новой среды.Очевидно, что когда система находится в производстве, мне нужно вручную синхронизировать две среды, чтобы сделать их похожими. Когда я исправляю ошибку в рабочей среде, мне нужно перенести исправление в среду разработки.

Разработка состоит из нескольких частей:

  • Скрипты Linux и конфигурация программного обеспечения (/etc, /var/www, /home, файлы .config, правила брандмауэра и т. д.)
  • Зависимости (список программного обеспечения для загрузки из репозитория программного обеспечения (например, apt-get install xxx)
  • Приложение
  • База данных

Я хотел бы знать, как сделать правильное управление версиями этой сложной среды.

Я пробовал следующие подходы.


Сценарий резервного копирования создает полный TAR-файл со всеми необходимыми элементами: сценарий для загрузки всех зависимостей, все файлы из приложения, необходимые файлы конфигурации из /etc, последняя версия сценариев резервного копирования и восстановления, дамп базы данных и т.д. .

Сценарий восстановления стирает все текущее приложение и заменяет его версией, присутствующей в файле TAR. Этот подход работает правильно, но немного громоздкий. Требуется много внимания, чтобы убедиться, что сценарий восстановления работает правильно после новой установки.


Этот подход может показаться немного нелепым, я еще не проверял его. Идея заключалась бы в том, чтобы также использовать виртуальную машину в моей производственной среде. Здесь я бы просто скопировал виртуальную машину на VPS и запустил QEMU внутри VPS. Когда я хочу сделать резервную копию, я просто сохраняю где-нибудь диск виртуальной машины. Это может быть не очень эффективно, но, вероятно, приемлемо для проекта, над которым я работаю.


Я тоже не проверял этот подход, но подумал об этом. Идея состоит в том, чтобы использовать программное обеспечение для управления версиями программного обеспечения, такое как GIT, в полной файловой системе после установки ОС. Таким образом, я бы зафиксировал все изменения (двоичные и текстовые файлы).Я мог публиковать изменения в продакшене с помощью программы SCM.


Этот подход основан на специальном программном обеспечении. Я смотрел в этом направлении и слышал о программном обеспечении под названием Kurbernetes, Puppet или другими именами. Это кажется очень сложным в настройке, и я не тратил много времени на изучение этого вопроса.

Каковы передовые методы управления версиями сред на основе Linux?

флаг cn
Bob
Версируйте свою конфигурацию, используя систему управления конфигурацией (такую ​​как Ansible, шеф-повар и т. д.) и сохраняя свои плейбуки/рецепты под контролем версий.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.