Использую ли я язык Phing или удаленный? - PullRequest
5 голосов
/ 15 февраля 2010

У меня есть вопрос, связанный с фингом. Использую ли я его на своей локальной машине разработки для развертывания приложения или я вызываю его через ssh с рабочей машины? Я не уверен, что делать с Эраном Гальперином (. Какова ваша предпочтительная стратегия развертывания PHP ). Я начинающий со сценариями развертывания. Так что прощай :)

Marco

Ответы [ 6 ]

5 голосов
/ 15 февраля 2010

Обычно у вас есть два сценария развертывания: один, который вы запускаете локально, который запускает ssh на удаленном сервере, а затем запускает удаленный сценарий.

Ваш локальный скрипт может выполнить svn export, сжать содержимое и сперва отправить его (scp) на удаленный сервер. Удаленный сценарий будет выполнять такие вещи, как миграция, перезапуск служб и т. Д.

2 голосов
/ 15 февраля 2010

Phing можно применять разными способами.

Если у вас нет директив о том, как выполнить развертывание, обычно лучше всего сначала создать «тестовую сборку» из локальной копии, проверить, работает ли она как задумано, а затем сгенерировать продуктивную сборку.

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

2 голосов
/ 15 февраля 2010

Вы запускаете его на локальном компьютере, и PHPing подключится к производственному серверу и развернет веб-сайт. :)

2 голосов
/ 15 февраля 2010

Основная стратегия заключается в том, что вы создаете сборку (ну, в основном, копию своего веб-приложения, которую вы можете разместить в сети) на локальном компьютере, а затем развертываете ее на сервере.

1 голос
/ 17 февраля 2011

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

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

Я думаю, что развертывание обычно настолько важно для бизнеса, что каждый раз оно должно происходить точно так же. Когда множество людей делают развертывания, тогда вредные привычки или процедуры легко расходятся, и именно тогда могут произойти ошибки. Автоматическое развертывание с помощью phng удобно, потому что, если все используют одну и ту же процедуру, вероятность ошибок значительно ниже. Phing позволяет легко следовать строгим процедурам, поскольку все, что нужно сделать разработчикам, - это запустить простую команду, такую ​​как «phing deploy» или «phing build», или что у вас есть.

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

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

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

0 голосов
/ 24 марта 2010

Вы можете сделать это обоими способами. Вы можете запускать инструмент локально по мере разработки, чтобы запускать тесты и просто гарантировать, что ваш код в хорошем состоянии. Автоматизация сервера (если вы решите это сделать) также может запускать тесты, создавать документацию и вносить изменения в тестовые или производственные установки.

Выполнение этого локально снижает вероятность того, что процесс будет остановлен при настройке сервера, в то время как CI работает на регулярной основе, чтобы убедиться, что ничего не сломано по ошибке.

...