«Общероссийский народный фронт», как сообщается, в прошлом году потратил на собственные нужды порядка 455 млн рублей. Деньги шли «фронтовикам» из адми...
Читать далееЛетограф. масштабирование фронт-энда кредиты экономика
Для того, чтобы работать с СЭД ЛЕТОГРАФ, пользователю достаточно только веб-браузера. Это означает, что практически вся обработка запросов, поступающих от пользователей, производится на стороне серверной части. Система должна уметь принять запрос от клиента, передать его на обработку серверу, и вернуть ответ. Традиционно часть системы, реализующую “логику”, называют “бэк-энд”, а часть, отвечающую за “представление и предоставление” информации - “фронт-энд”. Система электронного документооборота, особенно в крупных проектах, - это сложная высоконагруженная система. Сделать так, чтобы она работала, не заставляя пользователя ждать ни секунды, - задача трудная, но, как показывает практика,
выполнимая. Очень важную роль в организации “работы без ожидания” играет именно на фронт-энд.
При создании сложных систем необходимо максимально разгрузить каждый из элементов физической структуры, чтобы обеспечить максимальную скорость отклика системы на действия пользователей. Можно выделить несколько групп серверов, обеспечивающих работу СЭД на платформе ЛЕТОГРАФ. Первый – это фронт-энд серверы, которые обеспечивают прием и обработку запросов от пользователей и распределяют эти запросы между серверами приложений, а также решают еще целый ряд сложных и важных задач. Следующий уровень – это серверы приложений, которые обрабатывают (выполняют) запросы пользователей и обеспечивают работу различных асинхронных служб. Третий уровень – это сервера баз данных, которые отвечают непосредственно за хранение данных и запросы к ним. Взаимодействие этих уровней организовано так, чтобы пользователь не замечал, насколько сложна система в целом, чтобы работа пользователей была комфортной и удобной.
В системе ЛЭТОГРАФ фронт-энд – это симбиоз веб-сервера Apache и программного решения HAProxy . Первый решает задачи по кэшированию, а последний отвечает за балансировку нагрузки, идентификацию пользователей и маршрутизацию запросов на соответствующие серверы приложений.
HAProxy в качестве составной части фронт-энда был выбран не сразу: были протестированы различные варианты решений, однако именно HAProxy оказался наиболее эффективным и смог выполнять комплекс задач, а не закрыть какую-либо одну потребность.
Распределение нагрузки
Прежде всего, HAProxy позволяет сразу распределять нагрузку между серверами приложений, определенным образом маркировать каждую пользовательскую сессию и обеспечивать корректную передачу запроса пользователя в соответствующий процесс на сервере приложений. Таким образом, благодаря равномерному распределению запросов пользователей, удается добиться оптимальной балансировки нагрузки между серверами приложений.
Кроме того, HAProxy контролирует доступность соответствующего сервера приложений, и в случае какой-либо внештатной ситуации, исключает его из пула доступных для пользователя серверов. В результате происходит перераспределение вновь приходящих и уже работающих пользователей по другим серверам приложений.
HAProxy не только маршрутизирует запросы пользователей, но и управляет нагрузкой: если мощностей для выполнения текущих задач не хватает, можно подключить новые серверы и задействовать их для обработки пользовательских сессий.
Кэширование данных
На плечи фронт-энда ложится и другая задача – быстрая выдача пользователю контента, который не требует обращений к серверам приложений и к базе данных. Это стало возможно благодаря тому, что разработчики ЛЕТОГРАФ уделяют много времени развитию процессов кэширования .
При первом запросе пользователя контент, хранимый в базе данных, кэшируется благодаря фронт-энду, и при возникновении подобных запросов от других пользователей обращаться к базе данных уже не потребуется, выдача произойдет из локального кэша. Если же данные устаревают, они перегружаются сначала в кэш HAProxy, а потом уже раздаются пользователям и кэшируются на стороне браузера. Таким образом, благодаря эффективным настройкам удалось организовать взаимодействие и кэширование данных между фронт-эндом и браузером, в котором работает пользователь.
Также фронт-энд позволяет существенно «сэкономить» на затратах мощности и времени отклика системы на «статику» (картинки, иконки и других элементах оформления интерфейса СЭД ЛЕТОГРАФ). Все эти элементы являются настраиваемыми: при создании конфигурации решения для определенной организации можно выбрать элементы в соответствии с индивидуальными предпочтениями.
Данные элементы хранятся на серверах баз данных. Для того, чтобы эффективно кэшировать их на стороне веб-браузера, в ЛЕТОГРАФ создан специальный обработчик, отвечающий за выдачу статики. Причем, это касается как системной статики, так и прикладной, которая используется при решении прикладных задач – например, при создании архива для него назначается определенная иконка.
Обеспечение бесперебойной работы
Отказоустойчивость HAProxy в СЭД ЛЕТОГРАФ обеспечивается за счет наличия виртуальных машин. В случае, если один из серверов по тем или иным причинам перестает работать, механизмы, обеспечивающие маршрутизацию, перебрасывают трафик на специально включаемую в этом случае виртуальную машину. В случае перехода на запасной виртуальный сервер кэш, конечно, будет формироваться заново.
Возвращение на восстановивший работоспособность сервер не является обязательным. Однако есть и исключения: если виртуальная машина развернута на резервном, специально подключенном на время сбоя сервере, то миграция обратно на восстановленный сервер будет осуществлена в нерабочее время, чтобы этот процесс не помешал работе пользователей.
Благодаря использованию современных технологий виртуализации удается обеспечить отказоустойчивость, достаточную для того, чтобы эффективно решить задачу с масштабированием фронт-энда.
Отказоустойчивость веб-серверов обеспечивается благодаря мониторингу их работоспособности со стороны HAProxy и исключением их в случае форс-мажора из пула тех, на которые маршрутизируются запросы.
Резюме
Выбранная архитектура фронт-энда системы ЛЕТОГРАФ дает большие преимущества организациям, выбравшим наше решение. Прежде всего, это экономия на инвестициях: в системе минимизированы требования к оборудованию, так что существенных затрат на это не потребуется. К тому же у системы есть и важные плюсы для конечных пользователей. Благодаря отказоустойчивости системы сбоев в работе не бывает, а время отклика системы за счет механизмов кэширования на запрос настолько мало, что все данные пользователю выдаются практически мгновенно.
