Есть ли у вас эффективные стратегии для запуска 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 часов записей со старого сайта на новый.

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


В этом случае вы бы сделали старый сайт эффективно доступным только для чтения во время перехода DNS, чтобы предотвратить изменения на сайте, который не будет перенесен?
— Тревор Брамбл

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

Мы сделали что-то похожее на это. Не бесшовные, но эй, это работает.
— Майк Ли

2

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

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

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

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


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

Да, я так думаю. Я надеюсь получить сотрудничество, чтобы я и другие могли развивать его, чтобы он был очень полезным! Спасибо за голосование.
— MikeSchinkel
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.