Phing — большое развертывание

Я пытаюсь начать использовать phing для развертывания проекта, над которым я работаю. До сих пор я просто использовал «git pull» на рабочем сервере и выполнял другие необходимые действия вручную.

Просматривая Интернет, я вижу, что многие люди рекомендуют следующий процесс:

  1. Подготовьте и заархивируйте все на локальном компьютере
  2. SCP/FTP на рабочий сервер и распаковать там
  3. Обновить несколько символических ссылок

Мне нравится этот процесс за его прозрачность, безопасность и простоту возврата к предыдущим версиям. Но мой код для проекта (вместе со всеми темами/изображениями и т.д.) занимает около 300 Мб, и вся эта процедура занимает около 2 часов, тогда как раньше у меня уходило меньше минуты.

Ждать 2 часа простого исправления кажется слишком много. Любая идея о том, как преодолеть это? Или, может быть, вы посоветуете другой способ развертывания.


person Pavel Dubinin    schedule 28.06.2012    source источник
comment
Я бы сказал, что рекомендуемым способом является непрерывная интеграция + непрерывная доставка. Вы не можете разделить свой проект на модули? Таким образом, вы заставите CI-сервер генерировать разные артефакты из разных заданий, и вы сможете развертывать эти артефакты сами по себе (либо автоматически с помощью таких инструментов, как capistrano, либо даже самим CI-сервером) по мере необходимости, вместо того, чтобы иметь 1 монолитную сборку для Все это. Вы можете развернуть только часть своей кодовой базы (интерфейс, серверная часть, промежуточное ПО) или только определенную тему и т. д.   -  person marcelog    schedule 28.06.2012


Ответы (1)


Чтобы расширить комментарий marcelog, если у вас есть много статического контента, который не меняется со временем (тема), то вы можете отделить его от развертывания кода и 1) контролировать его версию отдельно, чтобы он не часто обновляйте 2) поместите его на другой сервер/хост, чтобы отличать статические от нестатических.

Если вы посмотрите на свою историю коммитов и не затронули целые разделы репозитория, почему бы не извлечь их в другой репозиторий, который не публикуется каждый раз?

person gspatel    schedule 16.07.2012
comment
спасибо за советы. Я просто боюсь, что при таком модульном развертывании будет сложно сохранить целостность системы. Если, например. Я меняю бэкэнд-код + темы, а затем просто разворачиваю бэкэнд-код, сайт будет сломан. - person Pavel Dubinin; 16.07.2012
comment
никто не говорит, что сценарии развертывания бэкэнда и кода + темы не могут запускаться одновременно. Цель хорошего инструмента развертывания сборки — автоматизировать все с неизменной надежностью. - person gspatel; 23.09.2012