Используйте мерзавца для нескольких конфигурационных файлов сервера

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

Причины это быстро:

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

Править:

alt text

... среди многих других факторов.

Google имеет распространенность пространства и пропускной способности. Не делайте Вы волнуетесь о них! По состоянию на январь 2008 Google сортировал (в среднем) 20PB день. 20PB (петабайты) 20 000 терабайт или 20 миллионов гигабайтов. Теперь это просто сортирует, это не все их данные, это - часть его.

Интересный вопрос подошел при выполнении экспериментов в таком масштабе: Куда Вы помещаете 1PB отсортированных данных? Мы писали это в 48 000 жестких дисков (мы не использовали полную мощность этих дисков, хотя), и каждый раз мы выполнили наш вид, по крайней мере одному из наших дисков удалось повредиться (это не удивительно вообще, учитывая продолжительность теста, количество дисков, включенных, и ожидаемое время жизни жестких дисков). Для проверки мы бережно хранили наш отсортированный петабайт, мы попросили, чтобы Google File System записал три копии каждого файла к трем различным дискам.

Просто невероятный.

14
задан 23 May 2017 в 15:41
3 ответа

Я использовал что-то вроде этого прежде; это - то, как это работало.

Установка Repo

  1. Создайте мерзавца repo, "etc_files".
  2. Создайте ответвление для каждого типа машины, например, "server/www", "server/dev", и т.д.
    • мерзавец поддерживает наклонные черты на имена ответвления. Это помогает мне сохранить ответвления прямо в моей голове.
    • Если у Вас есть небольшое количество достаточно машин, у Вас могло бы быть ответвление для каждой отдельной машины вместо этого.
  3. Создайте ответвление для каждой части общей инфраструктуры, например, "модули/апача", "модули/чашки", и т.д.
    • Эти ответвления для содержания файлов, которые являются тем же между всеми машинами, как /etc/resolv.conf. Они были бы файлами, которые Вы сохраняете в "svn:externals" repos теперь.

Создание новой машины

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

Изменение ответвлений машины

Изменение кода в единственном ответвлении машины просто; просто git checkout соответствующее ответвление в Вашей среде разработки, внесите изменения и фиксируйте их назад центральному repo. Все машины в том ответвлении автоматически получат изменения в следующий раз прогоны задания крона.

Изменение ответвлений модуля

Изменение кода для ответвления модуля незначительно более хитро, поскольку это включает два шага:

  1. git checkout соответствующее ответвление модуля
  2. Внесите свои изменения и передайте их централизованному серверу.
  3. git checkout каждое ответвление машины, которое использует то ответвление модуля и затем объединяет ответвление модуля в него. мерзавец выяснит, что Вы объединили то ответвление модуля прежде и только замечаете изменения, которые произошли начиная с того последнего общего родителя.

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


Как альтернативные, более новые версии мерзавца поддерживают что-то позвонившее "подмодули":

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

Это позволило бы Вам создавать что-то немного как "svn:externals" деревья, которые Вы могли затем обновить почти таким же способом, как Вы делаете теперь.

14
ответ дан 2 December 2019 в 21:09

Бит куска здесь, но Это Кажется, что сообщение получает рычаг, мог сделать задание

Ведущее устройство Repo хранится в/var/master
рычаг клонирует его к/var/localclone
затем копирует хост определенные детали
Необходимо было бы настроить .git/post-receive рычаг локально на каждом сервере (с соответствующими настройками)

Это также кажется на желание чего-то больше как марионетка или шеф-повар, чем мерзавец для этого, это позволило бы Вам выполнять мерзавца для управления конфигурациями, и модули централизованно и иметь puppet\chef справляются с развертыванием и проверкой для Вас

1
ответ дан 2 December 2019 в 21:09

вот быстрая работа, о которой я думал
1. Имейте центральный репозиторий в, говорят /var/repo
2. Поместите файлы, которые глобальны ко всем доменам в том каталоге.
3. Создайте ответвления для каждого субдомена /var/repo/subdomain1,/var/repo/subdomain2 и т.д.
4. Создайте рычаг сообщения, где любое нажатие к ответвлению объединяется с ведущим устройством.

Таким образом, когда Вы изменяете конфигурацию /var/repo/subdomain2 это сразу объединяется с ведущим устройством, таким образом, можно вытянуть repo полностью и иметь все файлы конфигурации
Когда Вы захотите вытянуть отдельные конфигурации субдомена, просто вытяните соответствующее ответвление.

Как Вы помещаете свои файлы конфигурации в /var/repo/* совершенно другой разговор (вкладки крона, я могу думать),

~$

1
ответ дан 2 December 2019 в 21:09

Теги

Похожие вопросы