УДК 004.7
Построение высоконагруженной информационной системы c облачным хранилищем данных
А.В. Гуляев1, Г.И. Турканов1, С.Б. Сакилов1, А.Г. Балашов2
ООО «Кластек» (г. Москва)
2Национальный исследовательский университет «МИЭТ»
При построении архитектуры высоконагруженной системы следует учитывать требования к ее масштабируемости, а также необходимость распределения нагрузки на несколько серверов для повышения скорости работы и надежности системы. Кроме того, надо обеспечить стабильную работу системы при отказе одного из серверов. Для решения всех этих задач можно воспользоваться принципом «главный сервер - управляемый сервер», который заключается в дублировании аппаратного обеспечения. При выходе из строя одного из управляемых серверов его нагрузка равномерно распределяется по оставшимся управляемым серверам. Главный сервер также имеет своего дублера, который никак не влияет на производительность, но повышает стабильность системы.
В настоящей работе разработан прототип облачной системы сбора, обработки и анализа информации с возможностью применения такой системы для работы с данными разных типов посредством настройки и конфигурирования системы.
Масштабируемые системы, как правило, являются многоуровневыми, среди которых можно выделить три основных уровня. Первый уровень - интерфейсы самообслуживания пользователей и администрирования. Этот уровень не должен иметь прямых связей с хранилищем данных (по требованиям безопасности), не должен быть нагружен основной бизнес-логикой (по требованиям масштабируемости) и не должен хранить состояние приложения (по требованиям надежности). На втором уровне располагается сервер приложений. Здесь сосредоточена большая часть бизнес-логики. Вне уровня остаются фрагменты, экспортируемые на терминалы, а также погруженные в третий уровень процедуры обработки данных. Данный уровень строится как программный интерфейс, связывающий клиентские компоненты с прикладной логикой базы данных. На третий уровень выносится сервер данных, обеспечивающий их хранение. Это стандартная реляционная или объектно-ориентированная СУБД.
В перспективе архитектуру облачной системы можно расширить, добавив дополнительные уровни*. Базовая архитектура облачной системы приведена на рис.1, архитектура разработанной высоконагруженной системы - на рис. 2.
*David Zembecki. Облачные вычисления: Построение архитектуры частного облака от Microsoft // TechNet Magazine. - 2011. - № 63. - С. 37-43.
© А.В. Гуляев, Г.И. Турканов, С.Б. Сакилов, А.Г. Балашов, 2013
Общие интерфейсы самообслужи вания
пользователей и администрирования
БааБ и РааЭ Использование -рабочей нагрузки Сервисы Гаав
Дополнительные уровни, необходимые для управления структурой IaaS
Интерфейсы самообслуживания участников и администрирования
Виртуализация _ образует фундамент
Рабочие нагрузки SaaS
Рабочие нагрузки PaaS
Уровень оркестрации
Уровень управления
Уровень автоматизации
Уровень виртуализации
Уровень оборудования
Подсистема хранения Сеть Вычислительные ресурсы Оборудование
Рис.1. Базовая архитектура облачной системы
Краткие сообщения
Администратор Пользователи
Рис.2. Архитектура разработанной высоконагруженной системы
Принципы построения высоконагруженной системы следующие.
При решении проблем распределения нагрузки важен принцип распараллеливания базы данных (БД), заключающийся в том, что из двух групп главных и управляемых серверов одновременно рабочим для программиста является только один главный и один случайно выбранный управляемый сервер. Оставшиеся главные серверы синхронизируются с первым и требуются для замены в случае его сбоя. Остальные управляемые серверы обеспечивают снижение нагрузки на главный сервер, пользователи равномерно распределяются по ним. Информация с главного сервера реплицируется на управляемый с задержкой. Для снижения нагрузки чтение должно осуществляться с управляемого сервера, а запись - на главный сервер. В случае если требуется прочитать только что записанную информацию, например при изменении данных в личном кабинете, операция чтения должна быть произведена с главного сервера. По истечении некоторого времени необходимо опять перейти в режим чтения с управляемого сервера.
Работа выполнена при финансовой поддержке Министерства образования и науки Российской Федерации (ГК № 14.514.11.4020)
Поступило 3 октября 2013 г.
Гуляев Артем Вячеславович - научный сотрудник ООО «Кластек» (г. Москва). Область научных интересов: высоконагруженные информационные системы, сетевые технологии. E-mail: artgulyaev@gmail.com
Турканов Глеб Игоревич - научный сотрудник ООО «Кластек» (г. Москва). Область научных интересов: информационные технологии, параллельные вычисления, численные методы. Сакилов Санал Борисович - научный сотрудник ООО «Кластек» (г. Москва). Область научных интересов: высоконагруженные информационные системы, сетевые технологии. Балашов Александр Геннадьевич - кандидат технических наук, доцент кафедры интегральной электроники и микросистем, декан факультета прикладных информационных технологий МИЭТ. Область научных интересов: методы приборно-технологического моделирования, наноразмерные интегральные схемы, информационные технологии, системное обеспечение качества.