Плужник Е.В.1, Никульчев Е.В.2, Лукьянчиков О.В.3, Ковшов Е.Е.4
1 Московский технологический институт, первый проректор, e.pluzhnik@gmail.com
2 Московский технологический институт, д. т. н., профессор, проректор по научной работе,
nikulchev @mail . ru
3 Московский государственный университет информационных технологий, радиотехники и электроники, преподаватель кафедры управления и моделирования систем, luk-it6@yandex.ru
4 МГТУ «СТАНКИН», д. т. н., профессор, профессор кафедры финансового менеджмента,
e.kovshov@stankin.ru
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ УПРАВЛЕНИЯ РАСПРЕДЕЛЕННЫМИ ПРИЛОЖЕНИЯМИ В ОБЛАЧНЫХ ВЫЧИСЛИТЕЛЬНЫХ ИНФРАСТРУКТУРАХ
КЛЮЧЕВЫЕ СЛОВА
Облачные технологии, динамическое управление, распределенные архитектуры, программное обеспечение промежуточного слоя, распределенные вычислительные системы.
АННОТАЦИЯ
В статье рассмотрены вопросы реализации динамического управления приложениями, распределенными в облачных инфраструктурах. Выявлены основные особенности облачных приложений и предложены механизмы и технологии реализации системы контроля и управления.
Последние годы облачные вычисления (cloud computing) являются одними из быстро развивающихся информационных сервисов. Это связано, в основном, с востребованностью этой услуги — облачные сервисы берут на себя обслуживание всей ИТ-инфраструктурой, а также ее возможное масштабирование, позволяя обеспечивать надежность приложений при значительном количестве удаленных пользователей. Несмотря на новизну термина, в основе облачных вычислений, особенно на первоначальном этапе, легли давно существующие технологии: системы виртуализации, обеспечение удаленного доступа к данным, элементы GRID-технологий. С точки зрения приложений, облачные системы — обычные клиент-серверные системы, которые ориентированы на обслуживания большого количества клиентов. Особенность заключается в том, что обеспечение требуемого уровня обслуживания пользователей необходимо на программном уровне облачных приложений, более того в программное обеспечение должно быть заложена возможность динамического изменения в зависимости количества и активности пользователей. Отдельной проблемой является обеспечения безопасности.
В настоящее время существует значительные исследования в области поиска эффективных решений для реализации программного управления на основе использования методов теории автоматического управления. В исследовании [1] предложены теоретические, так называемые «брокерские» модели, основанные на динамической раздаче ресурсов через главный, управляющий сервер. В облачных вычислениях предлагается реализовать механизмы цифрового контроллера [2, 3]. Интересно решение по созданию сетевого сервера-контроллера для обработки изображений с использованием облачных вычислений [4]. Разнообразны и формы полученных моделей. В работе [5] предложены нелинейные модели, хотя и для не популярной системы Xen. В целом, общие тенденции исследований таковы, что для облачных систем используются модели автоматизации технологических процесов. Это связано с тем, что с появлением облачных сервисов и увеличения количества удаленных пользователей возникли новые классы задач, ранее не специфичных, для вычислительных систем. Быстродействие программной системы в облаке невозможно определить не только из-за вида запросов, а также из-за используемых пользователем каналов связи, количества одновременного обращения к системе, загруженность ресурсов в конкретный момент времени и проч. В этих случаях необходимо (программно или аппаратно) реализовать систему наблюдения за параметрами и соответственно реализовывать
динамическое управление, а также создание соответствующих исполнительных механизмов, реализующих цель управления.
Для построения качественной облачной системы, необходимо соблюдать ряд основных принципов создания распределенных информационных систем [6]:
• реализация принципов динамического управления;
• использование специальных технологий разработки программного обеспечения;
• механизмы оценки качества управления.
Реализация принципов управления облачной инфраструктурой предложено ввести на основе обратных связей, для которых предлагают различные способы построения систем динамических уравнений. Обеспечение обратными связями возможно средствами гипервизоров, на основе которых строятся современные облачные системы, и от самого программного обеспечения облачных систем, если такие возможности были предусмотрены разработчиками. Введение обратной связи, с одной стороны, позволяет сделать корректирующие действия, с другой — занимает часть вычислительных ресурсов и каналов связи, так что необходима задача оптимального управления, где критерии качества могут свести к минимуму обработку времени или ограниченности ресурсов.
Облачная система строится на виртуальной основе, которая предоставляет удобный способ изменять количество вычислительных ресурсов в зависимости от потребностей. Практически все существующие системы виртуализации обеспечивают средствами, позволяющими следить за основными вычислительными параметрами: загрузкой процессора, оперативной памяти, жесткого диска и сети каждой виртуальной машины.
Проводятся испытания на тестовом стенде, который использует систему виртуализации VMware ESXi [7]. Эта система является гипервизором, который работает напрямую с оборудованием, а не через операционную систему. Для управления предоставляется ряд программного обеспечения администрирования:
1. VMware vSphere;
2. VMware vSphere Web Client;
3. VMware vSphere PowerCLI.
VMware ESXi самостоятельно распределяет нагрузку виртуальных машин, но также содержится ряд надстроек, которые позволяют сделать это вручную.
Для автоматизации управления и разработки собственных методов балансировки нагрузки предназначен функционал библиотек VMware или консоль PowerCLI. PowerCLI — это расширение для Windows Powershell, которое добавляет более 400 новых команд для управления виртуальной инфраструктурой, в том числе и Cloud. Результаты выполнения команд PowerCLI возвращают результаты в формате объектов .NET, что делает удобной разработку средств на языке C# с библиотекой .NET Framework.
Для обеспечения управления системой виртуализации VMware ESXi достаточно следующего набора команд [8]:
1.Connect-VIServer — выполняет подключение к системе виртуализации, после которого можно выполнять все остальные команды;
2.Get-VMHost — получает информацию о хосте, включая его вычислительные характеристики;
3.Get-VM получает список виртуальных машин и их вычислительные характеристики;
4.Get-Stat — получает журнал загрузки вычислительных ресурсов;
5.Set-VMResourceConfiguration — изменяет параметры пределов и приоритетов распределения вычислительных ресурсов хоста.
Для принятия решения об изменении архитектуры системы и её распределении необходим более широкий спектр собираемых параметров от системы, для чего должны быть предусмотрено реализация механизмов управления на этапе проектирования системы. К параметрам от программного обеспечения можно отнести:
• время выполнения операций (запросов к БД, выполнения функций сервисов);
• частота запроса различных данных;
• географическое размещение пользователей и их активность.
Для имитации гибридной облачной инфраструктуры собран экспериментальный стенд, включающих два сервера и систему коммутации [7]. Сервер, имитирующий публичное облако имеет больше ресурсов, чем сервер, имитирующий приватное облако. Каждый из серверов
представляет собой ферму с виртуальными машинами, управляемыми гипервизорами, дающими возможность оперативного (динамического) управления вычислительными ресурсами сервера (процессорной мощностью). Каждая виртуальная машина развернута на сервере, получает фиксированный объем процессорной мощности в течение некоторой единичной операции, что позволяет избежать нулевых значений ресурсов при значительных нагрузках других виртуальных машин. В соответствии с непредсказуемыми значениями скачков нагрузки ресурсы должны быть разделены между всеми виртуальными машинами в зависимости от требований качества QoS (Quality of Service) для достижения производительности в зависимости от выделенных приоритетов.
Система коммутации представляет собой коммутаторы и маршрутизаторы Cisco, позволяющие динамически управлять каналами связи. В том числе динамически распределять приоритеты по типам трафика.
В качестве базовой модели управления используется система дифференциальных уравнений общего вида:
г _ f=f(>,
где y = (y1,... ,yn) GYcRn — вектор контролируемых параметров; t — время; u=(u1,... ,um )T gU CR m — управление; f — идентифицируемая вектор-функция.
В качестве контролируемого параметрами используются соотношения производительности процессов в зависимости от заданных приоритетов. Подобные параметры были предложены как перспективные подходы достижению QoS для программно-конфигурируемых сетей [9, 10]. Цель управления состоит в распределении ресурсов таким образом, чтобы текущее соотношение производительности соответствовала заданным приоритетным соотношениям в условиях заданных ограничений.
На основании проведенных исследований на экспериментальном стенде, определен круг ситуаций, при которых используемая схема управления не может на данной архитектуре обеспечить гарантированное качество обслуживания. К таким ситуациям можно отнести: добавление нового сервиса в программное обеспечение, ставшего пользоваться большой популярностью, большой рост объема данных, потребовавший увеличения числа виртуальных машин, дополнительных кэш-серверов для гарантированной доставки контента географически удаленным пользователям и т. п. В этих случаях требуется переструктурирование системы, что, в свою очередь, требует переписывание всего программного обеспечения.
Для того что бы систему можно было с легкостью изменить, например для миграции её в гибридную инфраструктуру, необходимо что бы она обладала гибкостью, а именно без особых изменений в программном коде позволяла распределить данные и структуру таблиц по различным СУБД, добавить промежуточные службы, распараллелить расчеты на различных серверах. Для таких изменений необходимо менять технологию промежуточного уровня, что приводит к полному перепрограммированию системы. Для решения данных проблем предлагается технология агентно-реляционного отображения.
Существует несколько основных разновидностей промежуточного слоя:
• технологии распределённых объектов DOT (англ. distributed object technology);
• технологии, ориентированные на базы данных (англ. database access middleware);
• технологии вызова удалённых процедур RPC (англ. remote procedure call);
• технологии, ориентированные на обработку сообщений MOM (англ. message-oriented
middleware).
Разработчик обычно завязывается на одну или пару технологий промежуточного уровня, строя на них всю систему. Всё удаленное взаимодействие между объектами и обмен данными в системе осуществляется по выбранной концепции. Это ограничивает возможности системы, также зачастую выбирается неэффективное решение реализации функционала не приспособленное технологией, потому что оно менее трудозатратно.
Для решения этих проблем предлагается новая унифицированная технология программирования промежуточного уровня распределенных систем, объединяющая концепции всех технологий промежуточного уровня.
Агентно-реляционное отображение (АРО) — отображение реляционной модели в объектную модель, экземпляры которой имеют возможность удаленного взаимодействия между
собой [11].
В основе технологии, реализующей АРО, лежит совместное использование удаленного доступа и концепции ORM (Object-Relational Mapping) [12], а также дополнительные возможности, сформулированные в следующих трех теоретических положениях.
• удаленное взаимодействием между объектами и передача команд осуществляется реляционными командами: выборка (select), изменение (update), добавление (insert), удаление (delete).
• наличие транзакций при выполнении операций.
• хранение информации об удаленных объектах.
В результате технология АРО имеет интерфейс технологии ORM, но позволяет выполнять операции не только к БД, но и к удаленным объектам, расположенных на других вычислительных узлах.
В качестве иллюстрации приведем сравнение реализации механизмов взаимодействия с базами данных с использованием технологии АРО с сервис-ориентированной архитектурой (см. рис. 1). При построении системы выделен централизованный сервис (на рис. 1 — справа), который будет отвечать за синхронизацию данных, и выступать в качестве инициатора операций.
Сервис
Рис. 1. Распределенная система с реляционными БД и сервис-ориентированная архитектура
В исследуемой системе, присутствует множество клиентских приложений, которые имеют возможность обмениваться удаленно данными между собой, и распределенная БД, как показано на рисунке 4 (где N — количество клиентов в системе, а М - количество БД в системе). В таких системах предпочтительно оперативные данные хранить на клиентах, а долгосрочные данные, которые редко востребованы, хранятся в реляционных БД. При данной архитектуре клиент, который начал операцию, выполняет синхронизацию данных.
Распределенная облачная система с реляционными БД
10 12 14 Количество клиентов
Сервис-ориентированная система
Рис. 2. Эффективность выполнения операций в зависимости от количества клиентов
В качестве критерия эффективности предложен показатель времени выполнения операций при изменяющемся количестве клиентов.
Экспериментально получены результаты оценки производительности для операции
обновления, показанные на рис. 2.
Важным результатом, является то, что при увеличении числа клиентов в облачной инфраструктуре среднее время выполнения операций остается постоянным.
Проведено сравнение программного кода, приведенной в табл. Данные оценки получены с помощью ПО <^оигсеМопког».
Таблица. Оценка эффективности использования технологии АРО
С Без Процентное
Метрики использованием использования соотношение
АРО АРО , %
Общее количество строк в коде 86 241 35,6
Общее количество операторов в коде 44 147 29,9
Процент ветвящихся выражений 0% 11,6% 0
Общее количество методов в классе 9 18 50
Среднее количество выражений на метод 2 5,3 37,7
Максимальная сложность 1 5 20
Максимальная глубина блоков 1 3 33,3
Средняя глубина блоков 0,68 1,14 59,6
Средняя сложность 1 1,94 51,5
По результатам оценки метриками, оценивающими количество программного кода (общее количество строк в коде, общее количество операторов в коде, среднее количество выражений на метод) эффективность использования технологии около 30%, то есть программисту в среднем требуется писать в 3 раза меньше программного кода. По результатам оценки метриками, оценивающих сложность написанного программного кода (общее количество методов в классе, максимальная глубина блоков, средняя глубина блоков, средняя сложность) эффективность использования технологии около 50%, то есть программный код является более читабельным, проще для понимания, а значит, его проще будет сопровождать и дописывать.
В статье рассмотрены основные принципы контроля и управления облачными системами. Эффективное управление возможно только при наличии механизмов динамического управления, которые можно обеспечить с помощью встроенных возможностей гипервизора или специализированных возможностей программного обеспечения систем, заранее предусмотренных разработчиками. Данные мониторинга параметров, позволяют дать информацию для построения системы правления балансировкой ресурсов и для оценки эффективности работы системы. Также рассмотрены принципы построения программного обеспечения промежуточного слоя, позволяющие реализовать принципы управления.
Литература
1. Lemmon M. D. Towards a passivity framework for power control and responses time management in cloud computing // Proc. 7th Int'l. Workshops on Feedback Computing, 2012.
2. Pluzhnik E., Nikulchev E., Payain S. Optimal control of applications for hybrid cloud services // Proc. 2014 IEEE Tenth World Congress on Services (SERVICES 2014). 2014. P. 458-461.
3. Li Z., Kolmanovsky I., Atkins E., Lu J., Filev D., Michelini J. Cloud aided semi-active suspension control // Proc. 2014 IEEE Symp. on Computational Intelligence in Vehicles and Transportation Systems, 2014. P. 76-83.
4. Wu H., Lou L., Chen C.-C., Hirche A., K'uhnlenz K. Cloud-based networked visual servo control // IEEE Trans. Industrial Electronics. 2013. V. 60. No. 2. P. 554-566.
5. Patikirikorala, T., Wang, L., Colman, A., Han, J. Differentiated performance management in virtualized environments using nonlinear control // IEEE Transactions on Network and Service Management. 2015. V. 12. No. 1. P. 101-113.
6. Nikulchev E., Pluzhnik E., Biryukov D., Lukyanchikov O.I. Designing applications in a hybrid cloud // Contemporary Engineering Sciences. 2015. Т. 8. № 21. С. 963-970.
7. Плужник Е.В., Никульчев Е.В., Паяин С.В. Лабораторный экспериментальный стенд облачных и сетевых технологий // Cloud of Science. 2014. Т. 1. № 1. С. 78-87.
8. https://www.vmware.com/support/developer/PowerCLI/PowerCLI60R1/html/
9. Zhou X., Wei J., Xu C.-Z. Quality-of-service differentiation on the internet: A taxonomy // Journal of Network and Computer Applications. 2007. V. 30. N. 1. P. 354-383.
10. Корячко В.П., Перепелкин Д.А., Иванчикова М.А. Алгоритм адаптивной маршрутизации в корпоративных сетях нескольких провайдеров связи // Вестник Рязанского государственного радиотехнического университета. 2013. № 2 (44). С. 52-56.
11. Лукьянчиков О.И. Технология агентно-реляционного отображения // Современные проблемы науки и образования. 2015. № 1; Режим доступа: URL: http://www.science-education.ru/121-18623.
12. Lukyanchikov O., Payain S., Nikulchev E., Pluzhnik E. Using object-relational mapping to create the distributed databases in a hybrid cloud infrastructure // International Journal of Advanced Computer Science and Applications. 2014. V. 5. N 12. P. 61-64.