Я разрабатываю свое веб-приложение на размещенном сервере. Я использую IDE, которая автоматически загружает / загружает файлы, которые я редактирую. Я хочу настроить второй сервер (например, development.domain.com), который я буду использовать для работы над обновлениями. Как только я закончу и протестирую обновление, как я могу отправить все изменения на сервер релизов (изменения схемы базы данных, изменения / добавления / удаления файлов, системные изменения в cron и т. Д.)? Есть ли программное обеспечение, которое будет делать это для меня одной кнопкой, или мне нужно отслеживать все изменения, которые я делаю, затем копировать файлы и вносить изменения в схему на рабочем сервере по одному?
Спасибо
Это хорошая проблема, с которой сталкиваются многие ранние разработчики. Мы, в StrollUp, используйте tomcat и Elastic beanstalk, и о развертывании на производственных машинах позаботятся. Так что нам легко загрузить файл войны из нашей среды разработки в prod. Вы также можете дать Эластичный бобовый стебель попытка Некоторые PHP-фреймворки, такие как Laravel обеспечивает эти функции Ликр RoR. Но с вашим собственным php-кодом и сервером единственного экземпляра вы можете следовать этим рекомендациям:
Отправка кода на сервер Prod:
Передача изменений в БД:
Передача Кронов:
Я просто копирую весь cron из dev в prod. Вы можете сделать это в скрипте bash.
crontab -r # удалить все текущие задания cron
crontab cron.txt # положить все перечисленные cronjobs в cron.txt
Лучшая часть о вышеупомянутых шагах: вы можете поместить все вышеперечисленные шаги в скрипт bash и выполнить его в одной строке. Это будет как ваше собственное программное обеспечение с одним нажатием кнопки;)
Я сделал сценарии «одним щелчком» для себя, но они специфичны для tomcat и Elastic Beanstalk. Вы можете посмотреть, это может дать вам некоторые идеи о том, как действовать: AWS Deploy
Самое важное: Перед запуском sql-запроса на prod-сервере сначала сделайте резервную копию базы данных обеих баз данных. Используйте VCS (git, bitbucket — хороший вариант), чтобы сохранить все ваши изменения в безопасности.
Я хотел бы изучить решение для непрерывной интеграции или непрерывного развертывания с использованием системы контроля версий.