Развертывание веб-фермы
Определение
Запуск одного приложения на нескольких серверах за балансировщиком нагрузки, так что последовательные запросы от одного пользователя могут обрабатываться разными машинами.
Веб-фермы ломают всё, что предполагает, что запрос попадает туда же, где был предыдущий. Просмотрщики документов особенно подвержены этому, потому что открытие документа создаёт состояние на сервере — отрисованные страницы — которые последующие запросы ожидают найти.
Наивное решение — привязанные сессии, фиксирующие пользователя к одному узлу. Это работает, пока узел не освобождается для развертывания, после чего каждый открытый документ в процессе сразу же падает.
Надёжное решение — общий кэш рендеринга. Любой узел может обслуживать страницу для сессии, открытой другим узлом, поэтому узлы становятся взаимозаменяемыми, и скользящие развертывания перестают быть событием.
В Doconut
Веб-ферма и распределённое развертывание поддерживаются через общий кэш рендеринга, поэтому сессия, открытая на одном узле, остаётся читаемой с другого. Кешированные изображения страниц являются производными копиями конфиденциальных документов — задайте кэшу политику выселения, соответствующую вашим правилам хранения.
Связанные термины
Непрозрачный токен сеанса
Идентификатор, не несущий смысла для того, кто его держит — он ссылается на состояние на стороне сервера, а не описывает его, поэтому клиент не может его прочитать, изменить или угадать соседнее значение.
Серверный рендеринг документа
Преобразование документа в изображения страниц на сервере, так что браузер отображает отрендеренные страницы, а не парсит исходный файл.
Развертывание в изолированной сети
Запуск программного обеспечения в среде без сетевого маршрута к интернету, поэтому все необходимые зависимости должны уже находиться внутри границы.