Главная » Блоги Экспертов И ИТ-Компаний » Логика масштабирования: от функций к данным
Начинаем публикацию статей о практике внедрения СЭД 2 года назад

Логика масштабирования: от функций к данным

Возможность масштабирования для информационной системы в сегодняшних условиях – одно из самых значимых свойств. И системы электронного документооборота – не исключение. Именно благодаря этому свойству организация, которая реализует проект по внедрению СЭД, получает определенную гарантию на будущее, не ограничивая свое развитие сегодняшним днем. Разработчики СЭД ЛЕТОГРАФ уделяют много внимания вопросам масштабирования системы, используя для этого различные подходы, среди которых и такие инновационные решения, как “функциональное разделение” и “разделение по данным”. 

Мы разрабатывали СЭД ЛЕТОГРАФ так, чтобы она позволяла увеличивать количество пользователей системы, а также развивать функциональные возможности с учетом всех особенностей деятельности заказчика. В этом нам помогает “функциональное разделение” и “разделение по данным”. 

СЭД ЛЕТОГРАФ  разработана на базе СУБД InterSystems Cache, которая обладает большим потенциалом как для вертикального , так и для горизонтального  масштабирования. Мы использовали возможности СУБД, а также реализовали дополнительные возможности на уровне кода ЛЕТОГРАФ.

Функциональное разделение

Далеко не всегда ИТ-инфраструктура организации представляет собой единообразную стройную систему, где все серверы обладают одинаковой мощностью. Чаще всего, по историческим причинам, в организации находятся серверы, сильно различающиеся по своим параметрам. И это можно и нужно учитывать при масштабировании. Функциональное разделение – это как раз тот инструмент, с помощью которого даже то, что на первый взгляд кажется недостатками, можно превратить в достоинства: он позволяет управлять нагрузкой, которая распределяется на каждый из серверов.

Функциональное разделение предполагает настройки системы и выделение ресурсов с учетом четырех групп задач: под “обработку запросов пользователей”, под “формирование отчетов”, под “индексацию” и под “интеграцию”. Такой подход позволяет ускорить работу системы и оптимизировать нагрузку, распределяя ее между серверами.  Действительно, более мощные серверы можно и нужно использовать под “оперативную” работу - онлайн запросы пользователей, более медленные - под “асинхронные” задачи (индексацию и формирования отчетов).

В рамках функционального разделения можно вынести обработку задач отдельного (конкретного) пользователя на определенный сервер. Когда пользователь авторизуется в системе, его сессия «закрепляется» за одним из выделенных под эти задачи серверов. Именно он и будет отвечать в дальнейшем за работу пользователя в рамках хранимой сессии: этот сервер будет кэшировать данные, которые пользователь использовал или которые ему могут понадобиться в дальнейшем.  

Следующая возможность – это асинхронное формирование отчетов . СЭД ЛЕТОГРАФ располагает широкими возможностями по формированию отчетности, в том числе – развитыми механизмами для ее асинхронного формирования. В рамках функционального разделения система позволяет выделить группу серверов для решения этой задачи. Таким образом можно весьма существенно снизить нагрузку на серверы, которые отвечают за обработку сессий пользователей. Более того – система позволяет учитывать при этом и выбранные параметры – например, время суток.

В рамках функционального разделения серверы могут быть использованы “по расписанию” - днем для обработки запросов пользователей, ночью - для формирования отчетов.

Также масштабировать систему можно с помощью выделения серверов под индексацию данных. Платформа СЭД ЛЕТОГРАФ поддерживает гибкие механизмы индексации. Это необходимо, поскольку в системе размещаются разнородные данные: как простые (такие как дата или время), так и сложные (например, файлы, по тексту которых необходимо осуществлять поиск). Функциональное разделение позволяет определить серверы и даже задать количество процессов на каждом из них, которые будут отвечать за индексацию.

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

Еще одна группа задач, которую можно выделить в рамках функционального разделения в отдельный класс, это интеграция СЭД с различными ИТ-системами, используемыми в организации. Это позволяет минимизировать влияние процессов интеграции на работу систем, обслуживающих непосредственно пользователей или обеспечивающих индексацию и формирование отчетов.

Разделение по данным

Для высоконагруженных  систем очень важной является возможность гибкой балансировки нагрузки на конкретные диски. При выполнении проектов мы часто сталкивались с проблемами, которые возникали из-за того, что даже самые быстрые SSD-диски не справлялись с объемом данных, которые необходимо не только записывать, но еще и читать. Мы понимаем значимость этой проблемы и на уровне платформы даем возможность гибко разделять хранимые данные по различным базам, каждая из которых сохраняется на определенный диск. Наш опыт показывает, что такое разделение позволяет оптимизировать работу серверов.

Как показала практика внедрений СЭД ЛЕТОГРАФ, при подключении даже самых современных высокоскоростных и высокопроизводительных дисковых хранилищ целесообразно выделять логические диски на этих хранилищах и подключать их к разным серверам, разделяя данные между ними. Так, наиболее традиционным является разделение на “транзакционные”  данные, данные по действиям пользователей (логи, потоки и так далее) и контент.

Такой подход возможен, так как даже в случае «отката» транзакции не потребуется совершать «откат» всех данных. Все действия пользователя в любом случае должны быть внесены в журнал логов, а контент попадает в хранилище, даже если произошел «откат» - следующий файл будет добавлен с другими индексами и никаких коллизий не произойдет. Таким образом, разнородные данные выделяются в отдельные базы данных, размещаемые на отдельных СХД , выполняющих роль ECP-сервера  в кластере, что позволяет разделить потоки записи данных и ускорить работу системы.

Кроме того, есть и дополнительные возможности для разделения данных. Первая из них – разделение по шаблонам: таким образом можно уже на уровне шаблонов указать, объекты каких шаблонов на каком сервере будут храниться.  Например, документы, созданные на основе шаблона “Архивный”, хранить на сервере с более медленными дисками. А объекты, созданные на основе шаблона “учетная запись пользователя” - на сервере с более быстрыми дисками.

Есть еще один инструмент - “шардинг”, предполагающий разделение на уровне значений объектов. Благодаря этой технологии можно указать, в зависимости от значений каких свойств на каком сервере будут расположены определенные данные. Например, в случае с группой компаний или корпорацией, объединяющей несколько юридических лиц, можно для каждой бизнес-единицы выделить отдельный сервер. При этом в его настройках также можно указать, что данные, соответствующие определенному шаблону, будут лежать в соответствующей базе данных.  

Дополнительные возможности

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

К примеру, некоторые организации предъявляют особые требования к безопасности хранения критически важной информации: в случае работы с конфиденциальной информацией выносить часть контента  или весь контент за пределы внутреннего периметра нельзя. В этом случае используется специальная технология “развертывания” , при которой ядро системы, программный код, настройки и правила управления данными сосредоточены на центральных серверах ЛЕТОГРАФ в рамках предоставления сервисов, а хранимые данные – на серверах, расположенных у заказчика. Эта возможность обусловлена наличием широкого спектра инструментов для масштабирования и разделения данных.

Важно отметить, что  такое разделение данных между территориально распределенными серверами практически не заметно для конечного пользователя: на скорости работы системы факт размещения серверной части на разных площадках не отражается.  Несмотря на то, что скорость взаимодействия между серверами, на которых происходит обработка пользовательских данных, и центральными серверами несколько снижается, но благодаря преимуществам СУБД InterSystems Cache довольно быстро вся конфигурация попадет в кэш тех серверов, которые размещены на территории заказчика. Это приводит к тому, что фактически обращений к центральным серверам, на которых размещен код и конфигурационные данные, управляющие работой всей системы, не будет. В результате после «разогрева» кэша, учитывая тот факт, что данные, расположенные на центральном сервере, не изменяются в течение работы пользователя, задержек не будет.   

Также оптимизировать вычисления при выполнении прикладного кода и использовании кэша, обновляемого на основе информации об изменяемых объектах, позволяет механизм «хранимых сессий». СЭД ЛЕТОГРАФ предоставляет возможность указать, какие серверы в рамках сессии отвечают за обработку запросов пользователей, для каждого пользователя выделяется отдельный процесс и на серверах начинают работать механизмы кэширования данных на уровне СУБД, а на уровне самой платформе ЛЕТОГРАФ запускаются механизмы кэширования сессионных данных или хранимых сессий. Это позволяет существенно сократить количество операций по вычислениям, когда производятся какие-либо выборки данных. Разработанная ЛЕТОГРАФ технология инкрементального обновления этого кэша позволяет «перевычислять» только тот объем данных, который изменился с момента последнего вычисления, делая это централизованно в рамках всей системы.  Пользователи выполняют однотипные операции, так что знание того, что они делали ранее, существенно помогает оптимизации обработки будущих запросов. Так что технология хранимых сессий фактически незаменима.

Резюме

Технологии функционального разделения и разделения по данным позволяют СЭД ЛЕТОГРАФ оптимизировать процесс масштабирования в соответствии с потребностями наших клиентов. Каждый из заложенных в систему инструментов масштабирования дополняет другие, что в конечном итоге, позволяет добиться впечатляющих результатов по быстродействию системы электронного документооборота и удобству работы в ней.


Данный материал является частной записью члена сообщества Club.CNews.
Редакция CNews не несет ответственности за его содержание.
Комментарии
Другие публикации
RU, Москва
+7 (495) 741-48-08
---

О компании

Компания ЛЕТОГРАФ занимается разработкой и внедрением одноименной системы управления документами, автоматизации бизнес-процессов и интеграции приложений. Основные направления деятельности - развитие платформы ЛЕТОГРАФ и реализация масштабных проектов внедрения.

Компания основана в 2003 и за время своего существования прошла путь от небольших проектов на 5-10 рабочих мест, позволяющих осуществлять регистрацию и поиск документов, до масштабных решений, в которых несколько тысяч пользователей в десятках и сотнях территориально-распределенных подразделений выполняют все операции по работе с документами.

О платформе ЛЕТОГРАФ

ЛЕТОГРАФ – готовое централизованное расширяемое решение для автоматизации документооборота и архива территориально-распределенных организаций. С помощью платформы ЛЕТОГРАФ могут быть решены все задачи по управлению документами: от «классического» документооборота и архива до управления корпоративным контентом (ЕСМ).

Масштабируемые отказоустойчивые решения на базе платформы ЛЕТОГРАФ устанавливаются централизованно на кластере серверов и реализуют на практике концепцию управления «большими данными». Пользователи работают с системой в интерфейсе веб-браузера и получают доступ к информации в режиме он-лайн со стационарных или мобильных устройств.

 

Система ЛЕТОГРАФ унифицирует работу со всеми электронными и бумажными документами организации (входящими, исходящими, внутренними, кадровыми, архивными, договорами, счетами, заявками и пр.), а также может быть интегрирована с корпоративными и внешними системами.

Адрес: Россия, 105066, г. Москва, ул. Бауманская, д. 6 

Контактное лицо: Александр Иванов, специалист по маркетингу


Забыл пароль?
Авторизоваться через
Зарегистрируйся сейчас!
Присоединяйся к нашему обществу для того чтобы познакомиться с новыми людьми, создать собственный блог, публиковать анонсы событий и объявления, а также участвовать в обсуждении публикаций CNews. Мы создали единое пространство для общения специалистов рынка информационных технологий и всех, кто интересуется современными технологиями. Регистрация =>