Существует много задач, связанных с «переносом приложения с одного сервера на другой» - на самом деле мы не можем дать исчерпывающий ответ на этот вопрос для всех случаев использования. Тем не менее, вы можете ответить на него довольно подробно для вашей установки, если вы подходите к этому систематически:
- Составьте список всего, что нужно вашему приложению.
- Веб сервер?
- Сервер базы данных?
- Почтовый сервер?
- Язык сценариев (PHP, Ruby / Rails, Perl, что-то еще)?
- Вспомогательные программы (ImageMagick и т. Д.)?
- Составьте список важных элементов конфигурации.
- IP-адрес, маска сети, шлюз и т. Д.
- DNS-серверы
- Элементы приложения (временные каталоги и т. Д.)
- Возьмите списки из (1) и (2) и напишите схему миграции.
Это должно включать такие вещи, как установка и настройка любого необходимого вам программного обеспечения / пакетов, выгрузка и загрузка базы данных и т. Д.
- ПРОВЕРЬТЕ МИГРАЦИЮ
Скопируйте все заново, как если бы сервер собирался начать работу, но не включайте его. Вставьте его в изолированную сеть, когда закончите, и протестируйте все.
Если у вас есть стандартная процедура тестирования для вашего приложения, вы должны запустить ее на перенесенном сервере.
- Если все не прошло идеально, перейдите к (3), обновите (1) и (2), затем пересмотрите свой план.
- Когда тестовые миграции пройдут идеально, сделайте фактическую миграцию.
В зависимости от того, насколько сложным является процесс миграции, это может означать просто удаление и перезагрузку базы данных, или вы можете захотеть стереть машину и сделать все это с нуля.
Когда вы закончите, у вас будет контрольный список для вашего конкретного приложения, в вашей конкретной среде. Этот контрольный список, вероятно, будет развиваться по мере разработки приложения, но он может послужить отправной точкой через 3-5 лет, когда вам придется снова мигрировать.
Другие вещи, которые следует учитывать, включают в себя реализацию управления конфигурацией аля Puppet или Chef.
(Если вы собираетесь стать «системным администратором», вы должны рассмотреть их, в противном случае передайте их ответственному лицу / команде.)