Готовится ли производственная среда автоматизировать процесс?
Я покупаю 2 выделенных сервера (один для живого хостинга, 1 для промежуточной среды).
Четыре вопроса:
Как сохранить действующий сервер в синхронизации с промежуточным сервером? Цель состоит в том, чтобы запускать синхронизацию каждый день, но я не могу позволить себе никакого простоя, поэтому может ли постановка производства зеркал быть полезной пользователям во время процесса синхронизации? И как автоматизировать этот процесс, как работа cron, может быть?
Мне нужно подтолкнуть файлы от подготовки к производству, я предполагаю, что это делается через FTP или как автоматизировать это также с помощью какого-либо инструмента?
Для моего промежуточного сервера, как защитить его внутренне? У меня есть основной домен, например:
www.example.com
Таким образом, на сервере Prod этот URL должен быть доступен всем в Интернете. На промежуточном сервере один и тот же URL-адрес должен использоваться только внутренними сотрудниками. Я не могу использовать подкаталог, потому что у меня уже есть множество субдоменов / подкаталогов как часть сайта, и я хочу сохранить точную структуру URL для надлежащего контроля качества.Мне нужно использовать контроль версий для кода, поэтому я предполагаю, что SVN должен быть установлен на обоих серверах, и они могут быть синхронизированы, хотя я не уверен, как разделить их между средами в SVN?
Моя БД - MySQL и MagnoDB.
1 ответ
Вы должны простить мои примеры, я системный администратор Windows, но те же инструменты существуют в Unix, я уверен в этом.
Как сохранить действующий сервер в синхронизации с промежуточным сервером?
Для HTML и периферийных файлов это просто. Просто запускайте синхронизацию в запланированное время каждый день. я использую robocopy
но я верю rysnc
будет делать ту же работу на *nix.
Цель состоит в том, чтобы запускать синхронизацию каждый день, но я не могу позволить себе никакого простоя, поэтому может ли постановка производства зеркал быть полезной пользователям во время процесса синхронизации?
Как правило, не. Если вам нужно это сделать, то вам действительно нужны ДВЕ системы постановки. Один из них жив, а один бездействует. Вы всегда синхронизируете с неактивным, а затем переключаете промежуточную систему на неактивную, как только синхронизация завершена, так что бездействующий становится живым, а старый живой получает следующее обновление.
Конечно, это означает, что все пользователи будут исключены из системы, когда серверы поменяются ролями. Вы говорите, что они оба должны быть на 100% чаще, но на самом деле, можете ли вы позволить себе по одной минуте в день делать это? Если вы делаете это, скажем, в 3 часа ночи (или в другое тихое время суток), то воздействие должно быть минимальным.
И как автоматизировать этот процесс, как работа cron, может быть?
Там нет простого ответа на это. Что мы делаем с Windows и MSSQL - это сделать robocopy
из оперативной в промежуточную, чтобы обновить все статические файлы, а затем выполнить резервное копирование / восстановление MSSQL над промежуточной базой данных. Это все по сценарию и запускается раз в неделю, воскресным утром в 1:00.
Мне нужно подтолкнуть файлы от подготовки к производству, я предполагаю, что это делается через FTP или как автоматизировать это также с помощью какого-либо инструмента?
Есть много-много способов сделать это. Загляните на этот сайт, его уже спрашивали. rsync
вероятно, будет лучшим способом сделать это.
Для моего промежуточного сервера, как защитить его внутренне?... Я не могу использовать подкаталог, потому что у меня уже есть множество поддоменов / подкаталогов как часть сайта, и я хочу сохранить точную структуру URL для надлежащего контроля качества.
Вам нужен разделенный DNS. DNS-серверы, на которых работают ваши пользователи QA, должны возвращать запись A, отличную от ваших публичных пользователей. Там нет простого способа сделать это. Лично мы просто используем другое имя хоста, поэтому вместо www.example.com
внутренний DNS имеет дополнительную запись для staging.example.com
, Эта запись A не доступна в Интернете, поэтому только люди внутри офиса или VPN могут получить к ней доступ.
Мне нужно использовать контроль версий для кода, поэтому я предполагаю, что SVN должен быть установлен на обоих серверах, и они могут быть синхронизированы, хотя я не уверен, как разделить их между средами в SVN?
SVN - отличный способ сделать это. Когда нам нужно развернуть ТОЛЬКО для промежуточной, а не для прямой трансляции, мы разветвляем код и затем выполняем проверку на промежуточном сервере. Таким образом, критические обновления могут быть развернуты в действующей системе, когда они будут готовы, но промежуточная система тестирует не готовую к работе кодовую базу. Затем, когда мы закончим, мы сливаемся обратно в основной ствол и повторно извлекаем промежуточный сервер, чтобы все они вернулись в одну и ту же систему.