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

12

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

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

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

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

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

Майк Ли
источник

Ответы:

4

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

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

Аарон Терри
источник
Мы просто начали это делать, по совпадению. Это определенно помогает. Мы не можем позволить себе длительный период развертывания. Спасибо за добавление этого совета!
Майк Ли
Обратите внимание, что вы должны изменить TTL за столько времени до того, как вы действительно измените IP . Другими словами, если TTL составляет одну неделю, вы должны изменить TTL на 5 минут за одну неделю до того, как вы измените IP-адрес, так что каждый будет на новом TTL, когда это будет сделано.
Даниэль С. Собрал,
2

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

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

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

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

SethMerrick
источник
В этом случае вы бы сделали старый сайт эффективно доступным только для чтения во время перехода DNS, чтобы предотвратить изменения на сайте, который не будет перенесен?
Тревор Брамбл
Это альтернативный подход - просто предотвратить добавление любых новых данных в базу данных старого сайта во время перехода. Подход, о котором я упоминал выше, тем не менее, оставляет старый сайт активным во время перехода, а затем вручную объединяет любые дополнительные записи БД, появившиеся во время перехода (новые сообщения, комментарии и т. Д.), В новый сайт. редактировать: просто хотел упомянуть, что предложение acterry о TTL Records - фантастический совет.
SethMerrick
Мы сделали что-то похожее на это. Не бесшовные, но эй, это работает.
Майк Ли
2

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

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

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

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

MikeSchinkel
источник
WP Migrate Webhosts звучит как очень необходимый плагин. Спасибо, что поделились этим, и этот отзыв!
Майк Ли
Да, я так думаю. Я надеюсь получить сотрудничество, чтобы я и другие могли развивать его, чтобы он был очень полезным! Спасибо за голосование.
MikeSchinkel