Я умеренный веб-разработчик. Я не управлял сайтами с высокой посещаемостью. Как правило, я наблюдаю, что только веб-сайты с высокой посещаемостью не обслуживаются. stackoverflow.com также будет закрыт на техническое обслуживание.
Мне всегда интересно. Какое обслуживание они проводят? То есть процесс автоматизирован.
запрос пользователя -> веб-сервер -> программы на стороне сервера ---> Сервер базы данных.
Что там поддерживать?
Обычно самый высокий сайты трафика не спуститься на техническое обслуживание. Они созданы так, что им не нужно. (В зависимости от сайта это может быть очень сложно. Это не просто случай запуска нескольких серверов, хотя, очевидно, это отправная точка.)
Однако обычно «Сайт закрыт на техническое обслуживание» означает любое из:
Они могут захотеть запустить обновления (или исправления) для многих различных частей программного обеспечения, работающих на сервере, включая (но не ограничиваясь):
Помимо этого, они также могли выполнять техническое обслуживание оборудования, такое как добавление нового жесткого диска, обновление материнской платы, установка более быстрой оперативной памяти или замена сетевых карт. Есть множество вещей, как аппаратных, так и программных, которые можно обновить или изменить.
Теперь, если у них есть резервный сервер (или кластер или что-то в этом роде), это может быть прозрачно, но если это буквально один ящик, обслуживающий страницы ... ну, он в значительной степени должен выйти из строя.
Поскольку вы пришли из опыта программирования, я основываю на этом свою аналогию. Представьте, что быть системным администратором - это то же самое, что программировать, за исключением того, что вас будут просить писать код на другом языке каждые пару часов. А иногда это Паскаль.
Верно, хотя это могло означать что угодно. Иногда мышь прокусывает себе путь в теплое место. Или дает о себе знать единственная точка отказа. Мы стремимся к сокращению времени простоя ... например, к написанию кода, который отлично работает при первой компиляции.
Сделайте единый сервер похожим на бегущий автомобиль. Если вы выключите автомобиль, ваш «сервер» не работает.
Есть кое-что, что вы можете сделать во время движения автомобиля - долить топливо, масло, омывающую жидкость, очистить лобовое стекло, переключить передачи и т. Д.
Однако вы не можете заменить топливопровод в автомобиле во время его работы - сравните топливо с данными; вы не хотите ничего терять, иначе у вас будут недовольные клиенты.
Эти простои зависят от уровня квалификации администратора и сложности изменений. На более крупных сайтах с высокой посещаемостью - это возможно только при серьезном изменении архитектуры; то, что, независимо от того, сколько серверов и резервов у вас есть, архитектура должна измениться сразу.
Это редко для очень большой систем - я сравниваю это с заменой топливопровода на движущемся транспортном средстве: для многих это нереально (или не стоит усилий / риска) при определенных уровнях навыков и ресурсов. Однако в тех местах, где есть навыки и ресурсы, они могут выполнить замену топливопровода на работающем автомобиле. Это похоже на миграцию архитектуры; они делают это намного сложнее.
Может быть обновление серверов, фреймворков, баз данных. Перемещение в новый центр обработки данных и закрытие собственных старых серверов, чтобы никто не мог подключиться. Исправление операционных систем или программного обеспечения, которое работает на этих серверах.
в основном все, что может сделать сайт недоступным в течение определенного времени
Элементами регулярного обслуживания могут быть такие вещи, как восстановление кешей, обновление программного обеспечения и / или шаблонов, поиск данных для статистики, различные повседневные задачи обслуживания, такие как резервное копирование (которые лучше работают в тихих системах), и множество других дорогостоящих, нечастых задач.
Некоторые задачи просто требуют пересыпания большого количества данных, и это не очень эффективно выполнять после каждого изменения. Базы данных рекомендаций - это одна вещь, которая приходит на ум, поскольку вам не нужны вторые данные, а вычислять общие модели покупок для множества разных пользователей довольно дорого. Это проблема сложности N ^ 2 с некоторыми алгоритмами, которая, как правило, требует большого объема данных и большого объема памяти.
Финансовые учреждения могут использовать время простоя для расчета и выплаты процентов по счетам или закрытия невыполненных транзакций и расчета сальдо выверки. Теоретически эти данные никогда не должны изменяться после согласования, поэтому имеет смысл записать их в хранилище WORM на этом этапе.
Резервное копирование - это важный элемент, который часто выполняется во время простоя, потому что большое количество операций ввода-вывода на диске, как правило, ставит на колени даже очень мощные серверы, а отключение сайта может помочь ускорить процесс резервного копирования. Я помню одну организацию, в которой я работал, где у них был очень большой RAID-массив клиентов, и команда резервного копирования продолжала жаловаться, потому что их окно резервного копирования для этого одного клиента обычно увеличивалось с 22 до 24 часов, а в какой-то момент 26 часов. Небольшое время тишины может значительно уменьшить это окно.
Выполните дефрагментацию дисковых массивов. Быстрее и безопаснее дефрагментировать серверы, когда они отключены, что позволяет ЦП и дискам сосредоточиться на этой задаче, а не запускать 1000 веб-сайтов. Лучше сказать людям, чтобы они вернулись позже, чем создавать им неудобства для пользователей.
Если это сервер Windows, вы можете вывести его из строя, запустив дефрагментацию, когда использование памяти превышает 50%. Это потому, что в этот момент окна начинают увеличивать скорость файла подкачки. Я усвоил это на собственном горьком опыте.