Научная статья на тему 'ІНФОРМАЦіЙНА ТЕХНОЛОГіЯ МАСШТАБУВАННЯ ХМАРНОГО ЗАСТОСУНКУ Зі ЗМіННИМИ ПіКАМИ НАВАНТАЖЕННЯ'

ІНФОРМАЦіЙНА ТЕХНОЛОГіЯ МАСШТАБУВАННЯ ХМАРНОГО ЗАСТОСУНКУ Зі ЗМіННИМИ ПіКАМИ НАВАНТАЖЕННЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
42
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ХМАРНі ОБЧИСЛЕННЯ / PAAS / МАСШТАБУВАННЯ ХМАРНОГО ЗАСТОСУНКУ / ОБЛАЧНЫЕ ВЫЧИСЛЕНИЯ / МАСШТАБИРОВАНИЕ ОБЛАЧНОГО ПРИЛОЖЕНИЯ / CLOUD COMPUTING / CLOUD APP SCALING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Савчук Т.О., Козачук А.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Information technology of scaling cloud app with variable load peaks

One of the main advantages of cloud computing is ability to adapt to rapid changes of user count via web app scaling that allows deploying computing resources only when there is a demand. Modern systems of web app automatic scaling run base on reactive scaling rules. Such rules perform initialization of a scaling process when some app metric, for example CPU load, reaches a critical value. This approach in efficient in general, but in case of short and intense load peaks, there can be problems in cloud app functioning during time period between starting of cloud app scaling and final deployment of computing resources. Developed information technology removes this disadvantage by forecasting of cloud app usage and deploying computing resources in advance. Forecasting of cloud app using is the core idea of proactive scaling. Developed information technology of cloud app scaling is based on combination of reactive and proactive scaling. Comparison of cloud app efficiency shows that using of developed information technology of cloud app scaling allows increasing general web app efficiency by 8 %. This allows cutting spending on cloud application hosting and making cloud application more responsive.

Текст научной работы на тему «ІНФОРМАЦіЙНА ТЕХНОЛОГіЯ МАСШТАБУВАННЯ ХМАРНОГО ЗАСТОСУНКУ Зі ЗМіННИМИ ПіКАМИ НАВАНТАЖЕННЯ»

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

УДК 519.7:007:004.9 Б01: 10.15587/2312-8372.2015.51716

1НФ0РМАЦ1ЙНА ТЕХНОДОПН МАСШТАБУВАННН ХМАРНОГО ЗАСТОСУНКУ 31 ЗМ1ННИМИ П1КАМИ НАВАНТАЖЕННЯ

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

Клпчов1 слова: хмарнг обчислення, PaaS, масштабування хмарного застосунку.

Савчук Т. 0., Козачук А. В.

1. Вступ

Одшею з основних переваг використання хмарних обчислень е можливкть швидко1 адаптаци до змши кшь-кост ^p^TyBa4iB шляхом масштабування хмарного застосунку, що дозволяе вид^ти обчислювальш ресурси лише тод^ коли в них е необхвдшсть. Сучасш систе-ми автоматичного масштабування хмарного застосунку дшть на основi правил реактивного масштабування, що передбачае iнiцiалiзацiю процесу масштабування тсля того, як певна метрика, наприклад завантаже-шсть процесора, досягла критичного значення. Даний тдхвд е ефективним в цiломy але у випадку, коли для хмарного застосунку характерш коротю та частi пiки навантаження, можуть спостерiгатися проблеми в робой застосунку в промiжкy часу мiж початком процесу масштабування та видшенням обчислювальних ресyрсiв. Цей недолж може бути усунений шляхом прогнозуван-ня iнтенсивностi використання хмарного застосунку та завчасному видшенню обчислювальних ресурав.

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

2. Анал1з инупчих ршень

Розглянемо основш платформи та системи, що вико-ристовуються з хмарними застосунками та тдтримують можливiсть масштабування. Кожна платформа розмь щення хмарних застосyнкiв мае набiр засобiв отримання телеметри та масштабування, як не сyмiснi з шшими платформами. Тому порiвняння ефективност роботи технологiй масштабування доцiльно проводити в рамках однiеi платформи. Найбшьш популярними середовищами типу «Платформа як послуга» (PaaS) е Amazon AWS Elastic Beanstalk [1, 2], Google App Engine [3], Microsoft Azure [4, 5]. Ус перераховаш платформи можуть за-безпечувати високу доступшсть при роботi хмарного застосунку за рахунок географiчного розподiлення сер-

BepiB. При виборi конкретно! платформи використову-ються таю критери, як варпсть хостингу та додатковi можливостi платформи. Враховуючи тaкi особливостi, як простота розгортування та можлившть програмного масштабування хмарних застосунюв, що використовують технолопю Microsoft Azure App Service (Web apps), шформацшну систему автоматизованого масштабування хмарного застосунку дощльно peaлiзовувaти саме в контeкстi цiei технологи.

До кнуючих систем, якi тдтримують автоматичне масштабування хмарного застосунку, що розмщуеться на плaтфоpмi Azure Web apps ввдносяться портал Microsoft Azure [6] та систему автоматизацп CloudMonix [7]. Обидвi системи дозволяють налаштовувати peaктивнi правила масштабування, а також тдтримують масш-табування за розкладом.

3. 06'ект, мета та задач1 дослщження

Об'ект дослгдження — процес масштабування хмар-ного застосунку.

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

Для досягнення поставлено! мети необхвдно вирь шити тaкi зaдaчi:

1. Розробити архитектуру iнфоpмaцiйноi технологи масштабування хмарного застосунку.

2. Провести дослщження eфeктивностi роботи хмарного застосунку iз застосуванням розроблено! шформа-цiйноi технологи та поpiвняти результати з аналогами.

4. Архитектура шформацмно! технологи

Вибip стратеги масштабування хмарного застосунку е комплексним процесом, що складаеться з декшькох етатв, на яких вiдбувaеться уточнення режиму роботи хмарного застосунку, прогнозування кшькосп мережевих запипв, що надходять до застосунку, а також вибip оптимального вapiaнту масштабування. Пepepaховaнi етапи з'еднуються мiж собою iнфоpмaцiйними потоками, що мктять вхiднi та вихщш дaнi кожного з eтaпiв виршення зaдaчi масштабування хмарного застосунку.

J

Для систематизацп масштабування хмарного застосунку етапи цього процесу дощльно об'еднати у технолопчний ланцюжок, що дозволяе розглядати 1х як iнформацiйну технологiю [8].

У ввдповщносп з класичним визначенням [9, 10] щформацшно1 технологii, щформацшну технологiю масш-табування хмарного застосунку можна представити як сукупнiсть процесiв класифжацп поточного режиму ро-боти хмарного застосунку, прогнозування його стану за допомогою методiв прогнозу-вання часових ряд1в, прийнят-тя рiшення щодо необхiдностi проведення масштабування на основi методiв реактивного та проактивного масштабування, об'еднанi в технолопчний ланцюжок з метою тдвищення ефективносп функщонуван-ня хмарного застосунку То-дi iнформацiйна технолопя масштабування хмарного за-стосунку складаеться з регулярного повторення наступних етапiв:

1. Визначення поточного стану завантаження хмарного застосунку, а саме — кшьюсть запипв за хвилину, заванта-ження процесора та пам'яп, середнiй час виконання ме-режевого запиту, кiлькiсть та тип вiртуальних машин. Да-ний стан записуеться в базу даних статистично'i шфор-мацii про роботу хмарного за-стосунку.

2. Поповнення службових структур даних, необхвдних для прогнозування стану хмарного застосунку та при-йняття ршення щодо вибору

варiанту масштабування зiбраною статистичною ш-формацiею.

3. Прогнозування юлькосп мережевих запитiв, яке складаеться з наступних тд-етатв:

3.1. Проведення класифжацп поточного режиму ро-боти хмарного застосунку.

3.2. Здшснення прогнозування кiлькостi вхiдних мережевих запипв за допомогою моделi прогнозування часових рядiв, обрано! в залежност вiд результатiв класифiкацii.

4. Прийняття ршення про проведення масштабування, складаеться з таких тд-етатв:

4.1. Перевiрка правил реактивного масштабування хмарного застосунку.

4.2. Вибiр варiанту масштабування за допомогою алгоритму проактивного масштабування.

4.3. Обробка результапв методiв реактивного та проактивного масштабування за допомогою алгоритму прийняття ршень щодо масштабування хмарного застосунку.

5. Здшснення масштабування хмарного застосунку, якщо було прийняте ввдповвдне рiшення. Шсля завершення масштабування — оновлення шформацп

про ваги дуг в графi станiв iнфраструктури хмарного застосунку.

Перед початком використання необхщно провести розгортування шформацшно! технологii, а саме створен-ня структур даних та введення початкових даних про правила реактивного масштабування та граф можливих сташв хмарного застосунку.

Загальна схема шформацшно! технологii масштабу-вання хмарного застосунку зображена на рис. 1.

Рис. 1. Архггектура шформацшно! технологи масштабування хмарного застосунку

1нформацшна технологiя масштабування хмарного застосунку повинна надавати можлившть легкого розгортування для вже функщонуючих застосунюв. Для цього необхiдно максимально iзолювати роботу технологii вiд внутрiшньоi лопки хмарного застосунку. Таку iзоляцiю можна забезпечити шляхом видшення структур даних хмарного застосунку в окрему лопчну одиницю, а також шляхом групування уах етапiв ш-формацiйноi технологи у модуль масштабування, який е складовою хмарного застосунку та взаeмодie лише з API управлiння хмарним застосунком, але не з ш-шими його частинами.

Модуль масштабування хмарного застосунку може бути видшений в якосп окремого хмарного застосунку, що тдвищуе його iзольованiсть та позбавляе основний застосунок вщ паразитного споживання обчислюваль-них ресурав. Проте такий пiдхiд вимагае додаткових видатюв на утримання окремого хмарного застосунку, а також може призвести до проблем з безпекою, так як потребуе надання прав керувати одним хмарним застосунком з шшого. Схема взаемодп модуля масштабування з шшими частинами хмарного застосунку наведена на рис. 2.

Рис. 2. ВзаЕмодя модуля масштабування з шшими частинами хмарного застосунку

4.1. Модуль прогнозування ктькосл мережевих за-nHTÎB до хмарного застосунку. Модуль прогнозування кшькосп мережевих запитiв, що надходять до хмарного застосунку приймае в якост вхiдних даних список по-дiй, що впливають на роботу хмарного застосунку та часовий ряд, що представляе шторш частоти мережевих запипв. Результатом роботи модуля е прогноз кшькосп мережевих запипв.

Модуль включае в себе такi складов^

— блок класифiкацiï режиму роботи хмарного застосунку, що реалiзовуе алгоритм класифжацп роботи хмарного застосунку;

— реалiзацiю моделей прогнозування часового ряду кшькосп мережевих запитiв до хмарного застосунку;

— мехашзм вибору методу прогнозування на осно-вi режиму роботи хмарного застосунку;

— блок виконання прогно-зування кшькост мережевих запипв, що надходять до хмарного застосунку. Потоки даних мiж компонентами модуля прогнозування кiлькостi мережевих запитiв наведет на рис. 3. Вхвдними да-ними е часовий ряд мережевих запипв достатньоï довжини для застосування прогнозування за допомогою регресп, а також час та тривалкть попередньоï та наступноï подiй, що можуть вплинути на роботу хмарного застосунку. Вихщт данi модуля являють собою число — прогноз кiлькостi мережевих запипв.

Для коректного функцiону-вання модуль також повинен включати сховище даних для таких налаштувань, як горизонт

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

4.2. Модуль прийняття pi-шень щодо масштабування. Модуль прийняття ршень щодо масштабування хмарного засто-сунку складаеться з блоюв, якi забезпечують виконання алгоритму масштабування. В про-цесi функщонування модуль взаемодiе з такими об'ектами, як база даних правил реактивного масштабування, гшеркуб станiв хмарного застосунку, що мктить iнформацiю про час виконання мережевого за-питу при рiзних станах iнфраструктури хмарного застосунку, функщя розподiлу iмовiрностi втрати користувача в залежностi вщ часу виконання мережевого запиту та вщношення загальноï кiлькостi мережевих запипв до кiлькостi користувачiв.

Для забезпечення коректноï неперервноï роботи iнформацiйноï технологи вказаш джерела даних по-винш постiйно оновлюватися на основi статистики роботи хмарного застосунку Також на роботу модуля впливають налаштування пошуку шформацп у гшер-^6î сташв хмарного застосунку, що регулюють ви-значення часу виконання мережевих запипв в умовах невизначеностi.

Рис. 3. Обмш даними м1ж блоками модуля прогнозування кшькосп мережевих запит1в

ISSN 222Б-3780

информационные технологии

J

Модуль передбачае формування рiшень щодо про-ведення масштабування блоками реактивного та про-активного масштабування з подальшим порiвнянням отриманих значень та прийняттям остаточного ршення щодо масштабування на 1х основi. Результатом робо-ти модуля е ршення щодо проведення масштабування (5', А^), де 5' — розмiр вiртуальноi машини пiсля масштабування, АN — прирiст кiлькостi вiртуальних машин вiдносно стану iнфраструктури хмарного за-стосунку до початку масштабування. Потоки даних мiж компонентами модуля масштабування хмарного застосунку наведет на рис. 4.

1нформщшна технолопя

Z

g i

i 'i

! Кшыасть запит ib, ¡ стан шфраструктурн

Модуль масшгабуванвя хмарного застосунку

Гшеркуб сташв хмарного застосунку

1нформацшна технолопя

БД правил масшт.

Блок про активного масштабування

н И tî

Е g

J

г

Ol

ш

и

Визначення збнтшв В1д

втратн корнетувач1в

W Ol g 3 я S

3 н

sä Ее й)

S

1мОЕ1рШСТЬ БТрЭТН корнстувача

Вшн. 1МОБ1рНОСТ1 втратн корнстувача

Рнпення щодо масштабування

Блок реактивного масшт абування

Вшн. EapTOCTÍ утрнмання шфр аструктурн

Рнс. 4. Обмш даними mím блоками модуля масштабування хмарного застосунку

4.3. Brfip цiльовоi платформи використання. Розгля-немо платформи розмiщення хмарних застосунюв, на 6a3i яких може бути використана шформацшна система масштабування хмарного застосунку з перюдичними т-ками навантаження. До найбiльш популярних середовищ типу «Платформа як послуга» (PaaS) належать Amazon AWS Elastic Beanstalk [1, 2], Google App Engine [3], Microsoft Azure [4, 5]. Уп перераховат платформи можуть забезпечувати високу доступшсть при робот хмарного застосунку за рахунок географiчного розподшення сер-верiв. При виборi конкретно! платформи використову-

ються таю критерп, як вартiсть хостингу та додатковi можливостi платформи. З точки зору використання iнформацiйноï технологй масштабування хмарного застосунку необхвдно розглянути можливостi платформи по постачанню актyальноï статистичноï iнформацiï про стан роботи хмарного застосунку та можливостей про-грамного штерфейсу (API) масштабування.

Порiвняння швидкодп та питомоï вартостi платформ [ll] не виявило однозначного лвдера — резуль-тати сyттeво вiдрiзнялись в залежностi вiд конкретного тесту продуктивности тому цей критерш не може бути використаний при виборi цiльовоï платформи використання шформащйнсп снстемн масштабування хмарного застосунку з перiодичними пiками навантаження.

Google App Engine пiдтримye створення застосунюв з вико-ристанням мов програмування Java, Python, PHP та Go. Роз-робка в межах цieï платформи yскладнюeться необхiднiстю використання вyзькоспецiалiзова-них рiшень, якi не працюють за межами платформи [l2]. Платформа пiдтримye три режими масштабування: ручне, при яко-му юльюсть вiртyальних машин задаeться користувачем в файлi конфiгyрацiï [l3]; базове — при наявносп запитiв вiд користу-вачiв активyeться вiртyальна машина iз застосунком, при вiдсyтностi запитiв — хмарний застосунок переводиться в режим очжування; автоматичне — масштабування здiйснюeться за допомогою вбудованого модуля, що використовye час обробки мережевого запиту та частоту запитiв для прийняття ршення щодо масштабування. У зв'язку з необхiднiстю використовувати жорстко прив'язаш до платформи технологй та незручшстю автоматичного користувацького масштабування, використання Google App Engine в якосп щ-льовоï платформи для шформа-цiйноï платформи масштабування e недоцiльним.

Amazon AWS, зокрема служба Elastic Beanstalk дозволяe розмщувати застосунки, розробленi за допомогою Java, Node.js, PHP, Python, Ruby, та ASP.NET. При цьому платформа забезпечye автоматичне оновлення програм-ного забезпечення та балансування навантаження мiж вiртyальними машинами. Розгортування хмарного застосунку може бути здшснене з репозиторiя GIT або з таких середовищ розробки, як MS Visual Studio та Eclipse за допомогою спещальних плагiнiв. Платформа Elastic Beantalk пiдтримye автоматичне масштабування хмарних застосунюв та масштабування за розкладом, проте не надаe програмний штерфейс для проведення

Блок форму: рппення

1нформацшна

технолопя

информационные технологии

ISSN 222Б-37В0

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

Бiльш низькорiвневе рiшення вiд Amazon — Elastic Compute Cloud (EC2) мае гнучку систему об'еднання вiртуальних машин в групи масштабування [14], проте EC2 ближча до IaaS, шж до PaaS та вимагае виконання значних обсяпв операцш для розгортування хмарного застосунку.

Платформа Microsoft Azure надае можлившть роз-мiщувати хмарш застосунки, використовуючи три технологи: Azure App Service (Web apps), Azure Cloud Services (Web roles) та вiртуальнi машини [15]. Остання технолопя вiдноситься до рiвня IaaS та вимагае значних адмшстраторських роби по розгортуванню та пiдтримцi функщонування хмарного застосунку. Розглянемо бiльш детально рiзницю мiж Azure Web apps та Azure Web roles, обидвi з яких е PaaS технолопями.

Web apps надае можлившть швидкого розгортуван-ня хмарного застосунку та зручного запуску планових задач за допомогою Azure WebJobs [16], в той же час дана технолопя не тдтримуе деяю застарт можли-востi ASP.NET та складш налаштування середовища виконання коду. З точки зору масштабування, Web apps надае зручний графiчний штерфейс та можли-вiсть автоматизованого масштабування за допомогою спецiальноï утилгги. При масштабуваннi не потрiбно проводити повторну конф^уращю та розгортування хмарного застосунку, що важливо при наявносп тюв навантаження. Microsoft Azure Web pps дозволяе роз-мiщувати ASP.Net та PHP застосунки, а також надае доступ до Java та Ruby SDK.

Web roles дозволяе проводити складш налаштування середовища, вщдалено тд'еднуватися до серверiв, автоматично запускати задачi при старт сервера та використовувати необмежену кшьюсть вiртуальних машин. В той же час масштабування хмарного застосунка вгору вимагае його повторного розгортування, що значно ускладнюе процедуру.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

PaaS платформи можна роздшити на низькорiвне-вi (Microsoft Azure Web roles, Amazon EC2), що дозво-ляють проводити детальне налаштування середовища, в тому чи^ — проводити гнучке масштабування через програмш штерфейси, проте вимагають вщносно великих затрат на розгортування та тдтримку, та високо-рiвневi (Google App Engine, Amazon Elastic Beanstalk, Microsoft Azure Web apps), що дозволяють проводити швидке розгортування та мають вбудований мехашзм автоматичного масштабування.

Враховуючи таю особливосп, як простота розгортування та можлившть програмного масштабування хмарних застосунюв, що використовують технолопю Microsoft Azure App Service (Web apps), шформацшну систему автоматизованого масштабування хмарного за-стосунку доцшьно реалiзовувати саме в контексп цiеï технологй.

5. Розробка модулiв прогнозування та масштабування

Для реалiзащï алгоритму модуля прогнозування не-обхвдно забезпечити можливiсть отримання часового ряду мережевих запипв, що надходять до хмарного застосунку, реалiзувати алгоритми класифжацп стану

роботи хмарного застосyнкy та прогнозyвання кiлькостi мережевих запитiв.

Розглянемо можливi джерела iнформацiï про кшьюсть мережевих запипв, якi надходять до хмарного застосyнкy, що працюв розгорнутий на базi Microsoft Azure Web apps:

— Microsoft Azure Application insight [17] — слyжба по з6ору телеметрп роботи хмарного застосyнкy, потребyв модифжацп коду хмарного застосyнкy для початку роботи. Статистика кiлькостi мережевих запипв доступна через портал Microsoft Azure. Не-долiком пiдходy в новизна технологи та ввдсутшсть API збору статистики, що ускладнюв задачу автоматичного аналiзy статистики.

— Continious export [18] — опцiя, що надав мож-ливiсть експорту телеметрп Application Insight у blob сховище, до якого може мати доступ модуль прогнозування юлькост мережевих запипв. Для цього тдходу характерна значна затримка отримання даних через накладання затримок ввд збору телеметрп через Application Insight, накопичення даних перед експортом та читання експортованих даних. Дослвдження показують, що затримка може сягати юлькох хвилин, що перевищув штервал мiж вшшрюванням юлькосп мережевих запитiв та може негативно вплинути на ефектившсть роботи iнформацiйноï технологй.

— Performance Counters — стандартний мехашзм збору статистики в ASP.NET при класичному, не хмарному, мав обмежену область застосування у Azure Web apps через розподшену архиектуру сервшу [15], вимiряти юльюсть мережевих запитiв таким чином неможливо.

— Бiблiотека Azure Web Sites Management [19] — доступна у виглядi NuGet-пакету та дозволяв отри-мувати iнформацiю про поточний стан хмарного застосунку та здшснювати операцп по керуванню хмарним застосунком через .net-середовище. Ви-користання бiблiотеки потребув додаткових дш щодо адмiнiстрyвання хмарного застосунку, яю полягають у генерацiï криптографiчного ключа доступу на рiвнi хмарного застосунку для збiр-ки, що буде використовувати бiблiотекy. Пiсля пiдключення ключа бiблiотека дав можливiсть от-римувати статистику юлькосп мережевих запитiв з штервалом до однiвï хвилини.

Таким чином, для отримання статистичноï шформацп про роботу хмарного застосунку, що розмщувться у Micosoft Azure варто використовувати Azure Web Sites Management, так як ця бiблiотека забезпечув легкий доступ до актyальноï i детальноï статистичноï iнформацiï.

Для забезпечення бшьш тiсноï iнтеграцiï з платформою Microsoft Azure варто використовувати технолопю .NET для реалiзацiï методiв прогнозування часових рядiв, так як саме ця технологи в основною для платформи. .NET не мктить вбудованих алгоритмiв прогнозування часових рядiв, а iснyючi CLR бiблiотеки не реалiзyють необхiдний набiр функцш. Проте iснyють бiблiотеки, що забезпечують можливкть виклику з .NET-коду спещалп зованих середовищ аналiзy даних, таких як Matlab [20] та статистичноï мови програмування R [21]. Для реа-лiзацiï алгоритмiв прогнозування було обрано бiблiоте-ку R.NET, так як вона в безкоштовною для комерцшного використання.

технологический аудит и резервы производства — № 5/2(25), 2015

Список подш, що можуть вплинути на завантажешсть хмарного застосунку мае досить просту структуру i у бшьшост ви-падкiв використовуеться у режимi читання, тому для його збереження використаемо плоский вщсортований csv-файл, так як вш простiший у реалiзацiï в порiвняннi з реляцiйними i словниковими базами да-них. Налаштування модуля прогнозуван-ня кiлькостi мережевих запипв, а саме горизонт прогнозування та опис моделей прогнозування мовою R також дощльно зберiгати у файловш системi.

Статистичнi данi про стан хмарного застосунку варто збер^ати у реляцшнш базi даних, так як можливе штенсивне двосторонне використання даних у режимi читання та запису, а також част операци селекци, виконання яких може бути при-скорене завдяки використанню iндексiв. Платформа Microsoft Azure мае тiсну ш-теграцiю з Microsoft SQL Server, зокрема дозволяе розмщувати бази даних безпо-середньо в хмарi, без додаткового шару у виглядi вiртуальноï машини [22], тому доцiльно використовувати саме Microsoft SQL Server для розмщення реляцшних баз даних. У базi даних статистичноï ш-формаци слiд зберiгати поточну мiтку часу, юльюсть мережевих запитiв у хвилину, середнш час виконання мережевого запиту.

Перераховаш данi доцiльно зберiгати у однш таблицi.

Модуль масштабування хмарного застосунку склада-еться з блоюв проактивного та реактивного масштабування, а також з блоку прийняття ршень, реалiзованого вiдповiдним алгоритмом.

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

Для реалiзацiï блока проактивного масштабування були розроблеш класи, що забезпечують визначення iмовiрностi втрати користувача, прогнозування часу виконання мережевого запиту, керування списком подш, що пов'язаш з роботою хмарного застосунку, визначення вартосп утримування шфраструктури хмарного застосунку та втрати користувачiв.

Весь програмний код, що реалiзуе модуль масштабування хмарного застосунку об'еднаний в .NET-збiрку ScalingStrategies.dll.

Взаемодiя цiеï збiрки з iншими компонентами си-стеми масштабування хмарного застосунку зображена на рис. 5.

Таким чином, на базi технологи .NET Framework було розроблено модулi прогнозування юлькосп мережевих запипв та масштабування хмарного застосунку, що на основi даних про використання хмарного застосунку, отриманих за допомогою бiблiотеки Azure Web Sites Management та бази даних подш, пов'язаних з тками навантаження дозволяють вибрати стратегш масшта-бування хмарного застосунку.

й® HostringSpecificFunctions.dll

ö HostringSpecificFunctions

^^^^^^^^^^^^^^^^ <n¡3 ScalingGraph 1

PriceOfHoldingCalculator I

шш^Вк

^ ScalingGraphRow

H WebAppState

^ MetricsBuilder

|íjP AzureScaleManagement2.exe

[ff ScalingStrategies.d Ii

i Sea I ¡ ngStrateg ¡es. ReactiveSca I ¡ng

}■ ScalingStrategíes

j' ScalingStrategies.Enums

? SealíngStrategies.ProactiveScalirvg

A

[íp ForecastTímeSeries.dll

IjlJÏ CpuRequestsMapping.dll

Рис. 5. ВзаEм□дiя компоненпв системи масштабування хмарного застосунку

6. Дослщження ефективност

застосування шформацшно! технолог!! масштабування хмарного застосунку

За допомогою симулятора роботи хмарного застосунку було проведено визначення ефективност роботи технологи масштабування хмарного застосунку в умовах штенсивних шкових навантажень та в умовах штатно! роботи з перюдичними пiковими навантажен-нями. Також була визначена ефектившсть масштабування за допомогою реактивних правил. Визначення ефективност проводилося шляхом розрахунку значен-ня критерiя ефективностi функщонування хмарного за стосунку (2.11), що ввдповщае сумарним витратам вiд втрат користувачiв через занадто довге виконання за-питiв та затрат на тдтримку iнфраструктури хмарного застосунку. Для побудови профтв тестiв навантаження використовувались даш вiдвiдуваностi сайту чемпiонату свиу з футболу [23].

Порiвняння ефективност функцiонування хмарного застосунку iз використанням рiзних технологiй масштабування зображено на рис. 6.

Стратепя реактивного масштабування включала в себе таю правила:

— збшьшення юлькосп вiртуальних машин на 1 якщо завантаження ЦП бшьше 75 %;

— зменшення кiлькостi вiртуальних машин на 1 якщо завантаження ЦП менше 10 %;

— збiльшення юлькосп вiртуальних машин на 1 якщо завантаження пам'ят бiльше 90 %;

— збiльшення розмiру вiртуальноi машини на 1 якщо час виконання запиту бшьший за 5 с;

— збшьшення розмiру вiртуальноi машини на 1 якщо завантаження ЦП бшьше 70 %;

— зменшення розмiру вiртуальноi машини на 1 якщо завантаження ЦП менше 15 %.

Рис. 6. П^вняння вартост утримання хмарного застосунку пiд час ¡нтенсивних

niKiB навантаження

та 2,75 (0,0039 за хвилину) для шформа-цiйноi технологii масштабування хмарного застосунку.

Таким чином, використання шформацш-ноi технологii масштабування хмарного застосунку дозволяе зменшити експлуатацшш витрати на 8 % в режимi штатного використання та на 12 % в режимi штенсивних пiкiв навантаження. Результати шших тестiв наведенi в табл. 1.

Як видно з табл. 1, застосування шфор-мацiйноi технологii масштабування хмарного застосунку збшьшуе ефективнiсть викори-стання хмарного застосунку, при чому в най-бшьшш мiрi ефективнiсть зростае тд час пiкiв навантаження. В середньому, використання iнформацiйноi технологii масштабування збшьшуе ефективтсть роботи хмарного застосунку на 8 %, а при високш частой тюв навантаження — до 28 %.

Таблиця 1

Пор1вняння результапв тес™ навантаження

□пис тесту навантаження Iнфоpмацiйна технологiя масштабування Реактивне масштабування Приршт ефективносп з використанням шформа-щйно'1 технологи

Значення критерш ефективносп Середнс за 1 хв. Значення критерш ефективносп Середнс за 1 хв.

Уа дата 12,51 0,00118 13,6 0,00125 8 %

Подвшний niK 2,75 0,0039 3,12 0,0044 12 %

Подвшний niK № 2 1,27 0,00253 1,77 0,0035 28 %

Малий подвiйний niK 0,758 0,00094 0,74 0,00093 -2 %

Штатний високонавантажений режим 2,34 0,00086 2,34 0,00086 0 %

□диничний niK 1,25 0,00313 1,67 0,00417 25 %

□дин день 2,14 0,00149 2,56 0,00178 16 %

Штатний режим з низьким навантаженням 2,24 0,00075 2,24 0,00075 0 %

Правила створювалися з врахуванням того, що заван-таження процесора е головним фактором сповiльнення обробки мережевих запипв. Налаштування iнформацiйноi технологи масштабування хмарного застосунку включали в себе цей же набiр правил реактивного масштабування, а також передбачали варпсть втрати одного користувача рiвною $0,00027 (недоотриманий дохщ ввд показу рекла-ми Google AdSense [24]), кшьюсть елементiв часового ряду мережевих запипв, що використовуеться для про-гнозування — 125, крок часового ряду мережевих запипв — 1 хв, горизонт прогнозування — 15 хв (вибраний як максимальне значення часу операци масштабування), мшмальний час мiж операщями масштабування — 25 хв. Початковий стан шфраструктури хмарного застосунку складав одну малу вiртуальну машину

Для тесту, що вщтворюе штатш умови з перюдич-ними тками навантаження сумарне значення критерш ефективностi склало 13,6 (0,00125 за хвилину) для реактивного масштабування та 12,51 (0,00118 за хвилину) для iнформацiйноi технологи масштабування хмарного застосунку.

Для тесту, що вщтворюе штенсивш пiковi навантаження сумарне значення критерш ефективност склало 3,12 (0,0044 за хвилину) для реактивного масштабування

7. Висновки

В результат проведених дослщжень була розробле-на шформацшна технолопя масштабування хмарного застосунку з перюдичними пiками навантаження, що базуеться на використаннi методiв реактивного та проак-тивного масштабування, яке здшснюеться шляхом прогнозування кiлькостi мережевих запипв, що надходять до хмарного застосунку. На базi iнформацiйноi технологи була розроблена система автоматичного масштабування хмарного застосунку, сумкна з платформою Microsoft Azure web apps.

Порiвняння ефективносп роботи хмарного застосунку з використанням розробленоi iнформацiйноi технологи та з використанням стандартного методу масштабування на основi реактивних правил показало, що використання розробленоi iнформацiйноi технологи збшьшуе ефективтсть використання хмарного застосунку на 8 %.

Литература

1. Amazon EC2 [Electronic resource] // Amazon Web Services. — Available at: \www/URL: http://aws.amazon.com/es/ec2/

2. Jinesh, V. Overview of Amazon Web Services [Electronic resource] / V. Jinesh, M. Sajee // Amazon Web Services. —

January 2014. — Available at: \www/URL: http://www.fronde. com/assets/Datasheets/AWS-Overview.pdf

3. Sanderson, D. Programming Google App Engine with Python: Build and Run Scalable Python Apps on Google's Infrastructure [Text] / D. Sanderson. — O'Reilly Media, Inc., 2015. — 464 р.

4. Virtual Machine and Cloud Service Sizes for Azure [Electronic resource] // Microsoft Azure. — June 24, 2015. — Available at: \www/URL: https://msdn.microsoft.com/en-us/library/azure/ dn197896.aspx. — 10.08.2015.

5. Wilder, B. Cloud Architecture Patterns: Using Microsoft Azure [Text] / B. Wilder. — O'Reilly Media, Inc, 2012. — 182 p.

6. Microsoft Azure [Electronic resource]. — Available at: \www/ URL: http://portal.azure.com/

7. CloudMonix [Electronic resource]. — Available at: \www/ URL: http://cloudmonix.com/

8. Гвоздева, В. А. Информатика, автоматизированные информационные технологии и системы [Текст] / В. А. Гвоздева. — М.: Форум, 2011. — 544 с.

9. Лихачева, Г. Н. Информационные технологии [Текст]: уч.-практ. пос. / Г. Н. Лихачева, М. С. Гаспариан. — М.: Изд. центр ЕАОИ, 2007. — 189 с.

10. Корнеев, И. К. Информационные технологи [Текст]: уч. / И. К. Корнеев, Г. И. Ксандопуло, В. А. Адамович. — Проспект, 2009. — 224 с.

11. Wayner, P. Ultimate cloud speed tests: Amazon vs. Google vs. Windows Azure [Electronic resource] / P. Wayner // InfoWorld. — Feb 26, 2014. — Available at: \www/URL: http://www.infoworld. com/article/2610403/cloud-computing/ultimate-cloud-speed-tests--amazon-vs--google-vs--windows-azure.html

12. Разважаев, А. Технологи «хмарного» обчислення для застосу-вання в шформацшних центрах [Текст] / А. Разважаев, О. Со-ловйов // Науковi пращ Нащонально! бiблiотеки Украши iм. В. I. Вернадського. — 2014. — Вип. 40. — С. 226-236.

13. Toffetti, G. Web Engineering for Cloud Computing [Text] / G. Toffetti // Current Trends in Web Engineering. — Springer Science + Business Media, 2012. — P. 5-19. doi:10.1007/978-3-642-35623-0_2

14. Bellenger, D. Scaling in Cloud Environments [Electronic resource] / D. Bellenger, J. Bertram, A. Budina, A. Koschel, B. Pffin-der, C. Serowy, I. Astrova, S. G. Grivas, M. Schaaf // Recent Researches in Computer Science. — 2011. — P. 145-150. — Available at: \www/URL: http://www.wseas.us/e-library/con-ferences/2011/Corfu/C0MPUTERS/C0MPUTERS-23.pdf

15. Dykstra, T. Azure App Service, Cloud Services, and Virtual Machines comparison [Electronic resource] / T. Dykstra // Microsoft Azure. — 08.10.2015. — Available at: \www/URL: https://azure.microsoft.com/en-us/documentation/articles/ choose-web-site-cloud-service-vm/

16. Dykstra, T. Azure WebJobs documentation resources [Electronic resource] / T. Dykstra // Microsoft Azure. — 09.22.2015. — Available at: \www/URL: https://azure.microsoft.com/en-us/ documentation/articles/websites-webjobs-resources/

17. Wills, A. C. Get started with Visual Studio Application Insights [Electronic resource] / A. C. Wills // Microsoft Azure. — 10.05.2015. — Available at: \www/URL: http://azure.microsoft. com/en-us/documentation/articles/app-insights-get-started/

1S. Fritz, A. Export telemetry from Application Insights [Electronic resource] / A. Fritz // Microsoft Corporation. — 11 Dec 2014. — Available at: \www/URL: http://blogs.msdn.com/b/

visualstudioalm/archive/2014/12/11/export-telemetry-from-application-insights.aspx

19. Gaster, B. Getting Started with the Windows Azure Management Libraries for.NET [Electronic resource] / B. Gaster // Website of Brady Gaster. — 22 October 2013. — Available at: \www/URL: http://www.bradygaster.com/post/getting-started-with-the-windows-azure-management-libraries

20. MATLAB Compiler SDK [Electronic resource] // The MathWorks, Inc. — Available at: \www/URL: http://www.mathworks. com/products/matlab-compiler-sdk/

21. R.NET [Electronic resource] // CodePlexProject Hosting for Open Source Software. — Available at: \www/URL: http:// rdotnet.codeplex.com/

22. Curino, C. Relational Cloud: A Database-as-a-Service for the Cloud [Electronic resource] / C. Curino, E. P. C. Jones, R. A. Popa, N. Malviya, E. Wu, S. Madden, H. Balakrishnan, N. Zeldovich // 5th Biennial Conference on Innovative Data Systems Research, CIDR 2011, January 9-12, 2011, Asilomar, California. — Massachusetts Institute of Technology, 2011. — P. 235-240. — Available at: \www/URL: http://www.cidrdb.org/ cidr2011/Papers/CIDR11_Paper33.pdf

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

23. WorldCup98 [Electronic resource] // The Internet Traffic Archive. — Available at: \www/URL: http://ita.ee.lbl.gov/ html/contrib/WorldCup.html

24. Mohan, M. How Much Traffic Do You Need To Make $100,000 With Google AdSense [Electronic resource] / M. Mohan // Min-terest. — April 28, 2014. — Available at: \www/URL: http://www. minterest.org/how-much-traffic-do-you-need-to-make-money/

ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ МАСШТАБИРОВАНИЯ ОБЛАЧНОГО ПРИЛОЖЕНИЯ С ПЕРЕМЕННЫМИ ПИКАМИ НАГРУЗКИ

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

Ключевые слова: облачные вычисления, PaaS, масштабирование облачного приложения.

Савчук Тамара Олександрiвна, кандидат техтчних наук, професор, кафедра комп'ютерних наук, Втницький нащональний техтчний утверситет, Украта.

Козачук Андрт Валертович, асистент, кафедра комп'ютерних наук, Втницький нащональний техтчний утверситет, Украта, e-mail: kozachuk35@rambler.ru.

Савчук Тамара Александровна, кандидат технических наук, профессор, кафедра компьютерных наук, Винницкий национальный технический университет, Украина.

Козачук Андрей Валерьевич, ассистент, кафедра компьютерных наук, Винницкий национальный технический университет, Украина.

Savchuk Tamara, Vinnytsia National Technical University, Ukraine. Kozachuk Andriy, Vinnytsia National Technical University, Ukraine, e-mail: kozachuk35@rambler.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.