it-swarm.xyz

Есть ли у вас эффективные стратегии для запуска v2 WP сайт?

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

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

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

Мы только начали говорить о процессе выпуска нашей продукции. Значение: как только мы закончим, как мы сможем беспрепятственно и с минимальными помехами перенести весь наш пользовательский код на рабочий (живой) сервер?

У нас есть несколько планов, но я хотел бы услышать, как другие решают эту проблему. Есть ли какие-либо передовые практики или известные подводные камни, которых следует избегать?

12
Mike Lee

Если вы последуете совету SethMerrick, вы можете значительно сократить время переключения, уменьшив TTL на соответствующих записях DNS до 5 минут или около того нескольких часов (в зависимости от текущего TTL) прежде чем изменить IP-адрес.

Делая это, вы приказываете удаленным DNS-серверам кэшировать адрес только на 5 минут. После изменения IP-адреса вы можете увеличить TTL до того, что было раньше. Чтобы дополнительно минимизировать эффект, выполните переключение в период низкого трафика.

4
Aaron Terry

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

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

Сложнее всего объединить все данные, которые накапливаются во время распространения DNS, в промежуточный сервер (который теперь является действующим сервером). Другими словами, если между тем, как вы выполняете DNS-дамп/обновление MySQL и когда завершено распространение DNS, проходит 30 часов, вам придется выборочно объединять 30 часов записей со старого сайта на новый.

Это не простой процесс, но к тому времени, когда мы провели неделю, все перегибы сгладились.

2
SethMerrick

@Mike Lee: Отличный вопрос и один из святых Граалов WordPress (или любой из распространенных CMS с открытым исходным кодом, с которыми я знаком по этому вопросу, таких как Drupal, Joomla и др.)

Хотя это, конечно, не предназначено для решения вашего варианта использования, проверьте мой ответ на связанный вопрос , который описывает плагин бета-уровня, который я только что сделал доступным через WordPress отвечает на вопросы Exchange WP Migrate Webhosts (да, я отстой, когда дело доходит до творческого именования.)

Но я также хочу решить описанный вами вариант использования с помощью плагина и сейчас думаю о том, как этого добиться. Я думаю, что способ подойти к этому - отказаться от его решения в общем и вместо этого обратиться к известным шаблонам, которые существуют в WordPress, а затем разрешить кому-либо еще " перехватить " мой плагин для особые варианты использования. Я также думаю, что подход заключается в том, чтобы сериализовать данные и структуры в WordPress как данные в файле PHP, чтобы будущий плагин мог применить эти изменения как дельты так же, как система контроля исходного кода применяет дельты для получения в текущей версии исходного кода.

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

2
MikeSchinkel