Разработка технологии обеспечения высокоскоростных вычислений на основе облачной инфраструктуры тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Кочовски Петар
- Специальность ВАК РФ05.13.11
- Количество страниц 96
Оглавление диссертации кандидат наук Кочовски Петар
Введение
1. Обзор технологий обеспечения высокоскоростных вычисленный на основе облачной инфраструктуры
1.1 Обзор парадигм облачных вычислений
1.1.1 Хронология вычислений от вычислительной машины до облачных вычислений
1.1.2 Вычислительные парадигмы
1.1.3 Типы облачных вычислений
1.2 Виртуализация вычислительных ресурсов
1.2.1 Виртуализация на основе виртуальных машин
1.2.2 Виртуализация на основе контейнеров
1.2.3 Атрибуты, определяющие качество вычисления
1.3 Методы принятия решения и механизмы для выбора оптимальных облачных инфраструктур
2. Методика выбора оптимальной облачной инфраструктуры
2.1 Вероятностная модель и Марковские процессы
2.2 Расчет вероятностей модели вознаграждений
2.3 Процесс принятия решений
3. Методика сокращения вычислительной сложности
3.1 Определение классов эквивалентности
3.2 Сокращения вычислительной сложности на основе классов эквивалентности
4. Методика оценки корректности результата на основе темпоральной логики
4.1 Проверка на модели
4.2 Свойства, формулируемые в темпоральной логике PCTL
5. Формализованный метод для автоматизации процесса развертывания приложений в облачных инфраструктурах
5.1 Концепция процесса автоматического ранжирования инфраструктур и развертывания приложений
5.2 Архитектура программного комплекса
5.3 Механизм принятия решений о развертывании
5.4 Автоматическое развертывание приложений
6. Экспериментальная оценка предложенных методик
6.1 Экспериментальные сценарии
6.1.1 Хранилище документов - «File Upload»
6.1.2 WebRTC видеоконференции
6.1.3 Базы данных
6.2 Экспериментальная среда
6.3 Экспериментальные результаты
6.4 Сравнения и соотнесения
Заключение
Список работ, опубликованных автором по теме диссертации
Список литературы
Список рисунков
Рисунок 1 Хронология вычислений от вычислительной машины до облачных вычислений
Рисунок 2 Вычислительные парадигмы
Рисунок 3 Традиционная вычислительная архитектура (без виртуализации)
Рисунок 4 Виртуализация на основе виртуальных машин
Рисунок 5 Виртуализация на основе контейнеров
Рисунок 6 Архитектура Kubemetes кластера
Рисунок 7 Пример вероятностной модели, состоящей из облачных инфраструктур
развертывания в одном классе эквивалентности
Рисунок 8 Пример классификации по эквивалентности
Рисунок 9 Концепция процесса принятия решений для развертывания микросервисов
Рисунок 10 Системная архитектура высокого уровня
Рисунок 11 Диаграмма компонентов
Рисунок 12 YAML инструкция по развертыванию приложения на Kubemetes кластере
Рисунок 13 Первоначальная вероятностная модель
Рисунок 14 Вероятностная модель использующая метод классификации эквивалентности
Рисунок 15 МАИ иерархия нефункциональных требований и доступных инфраструктур развертывания для сценариев 1 и
Список таблиц
Таблица 1 Сравнение виртуализации на основе контейнеров и виртуальных машин
Таблица 2 Нефункциональные атрибуты, используемые в этой работе
Таблица 3 Инфраструктуры «Edge-to-Cloud», используемые в экспериментальном процессе ... 67 Таблица 4 Средняя сетевая производительность инфраструктур, используемых в
экспериментальном процессе
Таблица 5 Мягкие ограничения для экспериментального тестирования
Таблица 6 Результаты развертывания микросервисов для хранилища документов
Таблица 7 Результаты развертывания микросервисов для WebRTC видеоконференции
Таблица 8 Результаты развертывания микросервисов для базы данных
Таблица 9 Проверка результатов развертывания микросервисов для хранилища документов на
основе жестких и мягких ограничений
Таблица 10 Проверка результатов развертывания микросервисов для WebRTC
видеоконференции на основе жестких и мягких ограничений
Таблица 11 Проверка результатов развертывания микросервисов для базы данных на основе
жестких и мягких ограничений
Таблица 12 Сравнение результатов ранжирования методов по количеству нарушений порогов к
качеству обслуживания для сценария хранилища документов
Таблица 13 Сравнение результатов ранжирования методов по количеству нарушений порогов к
качеству обслуживания для сценария WebRTC видеоконференции
Таблица 14 Сравнение результатов ранжирования методов по количеству нарушений порогов к качеству обслуживания для сценария базы данных
Словарь терминов
Аббревиатура Значение Перевод
Amazon EC2 Amazon Elastic Compute Cloud
Amazon ECS Amazon Elastic Container Service
API Application programming interface Программный интерфейс приложения
CSL Continuous-time Stochastic Logic Непрерывная стохастическая логика
CTMC Continuous-time Markov Chains Цепь Маркова с непрерывным временем
DARPA Defense Advanced Research Projects Agency Управление перспективных исследовательских проектов Министерства обороны США
DTMC Discrete-time Markov chain Цепь Маркова с дискретным временем
GKE Google Kubernetes Engine
IaaS Infrastructure as a Service Инфраструктура как услуга
JSON Java Script Object Notation
MDP Markov Decision Process Марковский процесс принятия решений
NFR Non-functional requirement Нефункциональные требования
NSGA Non-dominated Sorting Genetic Algorithm
PaaS Platform as a Service Платформа как услуга
PCTL Probabilistic Computation Tree Logic Вероятностная логика ветвящегося времени
QoE Quality of Experience Качество пользовательского опыта
QoS Quality of Service Качество обслуживания
REST Representational state transfer Передача состояния представления
SaaS Software as a Service Программное обеспечение как услуга
TSDB Time Series Database Базы данных временных рядов
WebRTC Web Real-Time Communication Веб-коммуникация в реальном времени
YAML YAML Ain't Markup Language YAML — не язык разметки
ОС Операционная система
ВР Верификатор решений
ГВМ Генератор Вероятностной Модели
ГКЭ Генератор Классов Эквивалентности
ИТ Информационные технологии
МАИ Метод анализа иерархий
ЦП Центральный процессор
Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Технология построения проблемно-ориентированных сред для научных исследований в рамках модели персонального облака2013 год, кандидат наук Чуров, Тимофей Николаевич
Разработка системы запуска ресурсоемких приложений в облачной гетерогенной среде2013 год, кандидат технических наук Е Мьинт Найнг
Разработка и исследование метода оценки качества инфокоммуникационной облачной услуги «виртуальный рабочий стол»2018 год, кандидат наук Сулейманов Алмаз Авхатович
Методы и алгоритмы оптимизации ресурсного обеспечения сложных информационно-вычислительных систем на железнодорожном транспорте2014 год, кандидат наук Игнатов, Николай Александрович
Защита облачных вычислений от атак на средства виртуализации2013 год, кандидат наук Никольский, Алексей Валерьевич
Введение диссертации (часть автореферата) на тему «Разработка технологии обеспечения высокоскоростных вычислений на основе облачной инфраструктуры»
Введение
Актуальность темы. С появлением концепции Интернета вещей, возникла необходимость создания приложений в различных областях, таких как умный дом, умные города и населенные пункты, промышленность 4.0 и подобных, требующих высокой вычислительной мощности и быстрой передачи данных. Следуя новейшим стандартам разработки программного обеспечения для архитектуры микросервисов, программное обеспечение может быть построено как набор модульных сервисов, которые называются микросервисами. Микросервис -это небольшой, независимый и масштабируемый сервис с конкретными бизнес-целями, который взаимодействует с клиентами и другими сервисами по стандартным протоколам с четко определенными интерфейсами. Микросервисы можно виртуализировать в форме виртуальных машин или контейнеров. Таким образом, они могут быть развернуты по всему вычислительному спектру, от облачных центров обработки данных до вычислительных узлов на периферии. Разработка программного обеспечения на основе микросервисов поддерживается новыми подходами, методологиями и инструментами, которые обещают радикальное улучшение жизненного цикла программного обеспечения [1], [2], [3]. Новые средства разработки программного обеспечения поддерживают разработку программного обеспечения путем объединения существующих микросервисов, обнаружения и согласования вычислительных ресурсов с облачными провайдерами, развертывания и оркестровки во время выполнения в мульти-облачных вычислительных средах. Однако процесс разработки программного обеспечения не зависит от облаков в том смысле, что программное обеспечение может быть спроектировано и разработано до выбора инфраструктуры развертывания.
Облачные технологии предлагают целый ряд преимуществ, в том числе: эластичность, быстрое масштабирование и низкие расходы. В отличие от традиционных систем высокопроизводительных вычислений, облачные
вычисления предоставляют возможность: использовать ресурсы как сервис через сеть, такие как: «Инфраструктура как услуга» (IaaS), «Платформа как услуга» (PaaS), «Программное обеспечение как услуга» (SaaS) и т.д.; варьировать количество используемых ресурсов в зависимости от требований пользователя; контролировать затраты на использование ресурсов. В данной работе будут рассматриваться вопросы, связанные с организацией высокопроизводительных вычислений в облачных инфраструктурах с использованием виртуальных машин и их настройкой в соответствии с потребностями и предпочтениями пользователя к качеству обслуживания.
При реализации Интернета вещей в настоящее время существует богатый выбор различного рода программного обеспечения. При этом на основе различных сценариев использования программное обеспечение запрашивает удовлетворения различных требований, включая требования, предъявляемые к качеству обслуживания. Примером такого программного обеспечения является приложение для раннего предупреждения. Чтобы своевременно прогнозировать и предотвращать катастрофу, такое приложение взаимодействует с множеством датчиков и должно быстро обрабатывать большие объемы данных и адекватно реагировать. С другой стороны, в контексте Интернета вещей, также могут быть разработаны приложения для хранения и управления данными или видеоконференций WebRTC в реальном времени и других применений. Из-за огромной разницы между сценариями все эти приложения имеют разные требования к качеству. Например, система раннего предупреждения потребует высокой скорости отклика, приложение хранения потребует большой емкости хранилища, а приложение для видеоконференций в реальном времени потребует высокой пропускной способности и низкой задержки. Поэтому принятие решения о том, где развернуть программное обеспечение, которое должно удовлетворять требованиям к высокой вычислительной производительности, в континууме от узла до облака, где много различных доступных инфраструктур для развертывания, является особенно сложным.
Прежде чем принять решение о развертывании, разработчик программного обеспечения должен рассмотреть различные требования, связанные с качеством обслуживания, включая большой выбор инфраструктур, различные технологии виртуализации, географическое распределение, качество сети (например, задержка, пропускная способность) и другие требования на уровне приложения и пользователя. Имея в виду количество доступных инфраструктур и большое количество требований к качеству, разработчик программного обеспечения практически не может вручную выбрать оптимальную инфраструктуру для развертывания программного обеспечения. Следовательно, появляется необходимость в разработке новых подходов, методов и технологий, призванных улучшить процесс принятия решений и помочь принять адекватные и оптимальные или близкие к оптимальным решениям по развертыванию приложений в облаках.
Настоящая работа сосредоточена на этапе развертывания программного обеспечения, а именно, этапе, когда программный инженер должен выбрать подходящую инфраструктуру для развертывания программного обеспечения или его микросервисов. Чем больше используемых критериев используется инженером, тем выше сложность процесса принятия решений [4], [5]. Поэтому необходимо разработать новые методы, которые могут поддерживать развертывание микросервисов и которые могут быть интегрированы в существующие среды разработки, такие как Juju [6], Fabric8 [7] или SWITCH [8].
Целью диссертационного исследования является разработка методов и средств для балансировки использования ресурсов и увеличения вычислительной производительности облачной системы с помощью автоматического ранжирования доступных облачных инфраструктур. Для достижения поставленной цели должны быть решены следующие задачи:
1. Создание методики выбора оптимальной облачной инфраструктуры;
2. Создание методики разделения облачных инфраструктур на классы эквивалентности с целью сокращения вычислительной сложности процесса принятия решения;
3. Создание методики оценки корректности результата с проверкой выполнения обязательных ограничений качества (жесткие ограничения) и выполнения максимального количества необязательных ограничений качества (мягкие ограничения);
4. Объединение предложенных методик в формализованный эффективный метод развертывания программного обеспечения в облачных инфраструктурах;
5. Разработка программного комплекса на основе предложенного метода, автоматизирующего процесс развертывания приложений в облачных инфраструктурах с использованием нефункциональных требований для достижения высокого качества обслуживания;
6. Выполнение экспериментального исследования результатов применения программного комплекса на реальных сценариях развертывания облачных приложений.
Постановка цели и задач исследования соответствует следующем пунктом паспорта специальности 05.13.11: Модели, методы, алгоритмы и программная инфраструктура для организации глобально распределенной обработки данных.
Научная новизна состоит в следующем:
1. Разработана методика выбора оптимальной облачной инфраструктуры на основе Марковского процесса принятия решения;
2. Предложена методика сокращения вычислительной сложности путем формирования классов эквивалентности на основе выбранных ограничений нефункциональных требований;
3. Предложена методика оценки корректности результата на основе темпоральной логики;
4. Предложен формализованный метод для автоматизации процесса развертывания приложений в облачных инфраструктурах, позволяющий использовать нефункциональные требования для достижения высокого качества обслуживания.
Практическая значимость работы. На базе полученных научных результатов был разработан комплекс программных средств, предназначенных для автоматического ранжирования доступных облачных инфраструктур и развертывания приложений в облачных инфраструктурах. Программный комплекс разработанный в рамках диссертации был использован в рамках международного проекта BI-RU/16-18-043 Internet of Things and Cloud computing as support for the development of new smart approaches in the construction sector (Интернет вещей и облачные вычисления как поддержка разработки новых интеллектуальных подходов в строительном секторе), европейских проектов DECENTER-Decentralised technologies for orchestrated Cloud-to-Edge intelligence (Децентрализованные технологии для управления интеллектуальными вычислениями от облака до периферии, ID проекта: 815141) и SWITCH-Software Workbench for Interactive, Time Critical and Highly self-adaptive Cloud applications (Программное обеспечение для разработки интерактивных, критичных ко времени и самоадаптирующихся облачных приложений, ID проекта: 643963). Созданные программные средства могут быть использованы для обеспечения и гарантии качества обслуживания приложенный во время выполнения на облачных инфраструктурах различными категориями пользователей.
Объектом исследования являются технологии обеспечения высокоскоростных вычисленный на основе облачной инфраструктуры.
Предметом исследования являются нефункциональные требования для высокоскоростных и качественных вычислений, методы принятия решений в средах облачных вычислений, типы инфраструктур облачных вычислений и технологии облачных вычислений.
Методология и методы исследования. Исследование включает использование теории множеств, логики предикатов первого порядка, темпоральной логики, методов принятия решений, а также методов планирования и обработки результатов эксперимента. Для разработки предложенного решения применены инструменты и подходы программной инженерии.
Основные положения, выносимые на защиту:
1. Предложена методика выбора оптимальной облачной инфраструктуры на основе Марковского процесса принятия решения;
2. Предложена методика сокращения вычислительной сложности путем формирования классов эквивалентности на основе выбранных ограничений нефункциональных требований;
3. Предложена методика оценки корректности результата на основе темпоральной логики;
4. Разработан формализованный метод для автоматизации процесса развертывания приложений в облачных инфраструктурах, позволяющий использовать нефункциональные требования для достижения высокого качества обслуживания. Разработано программное обеспечение реализующий предложенный метод.
Достоверность результатов и сформулированных выводов обеспечивается корректным применением математического аппарата, полнотой выполненных теоретических и практических исследований. Положения получили положительную оценку на научных конференциях, а также внедрены в практику. По сравнению с работами других авторов, решение, разработанное в рамках диссертации: 1) показало лучшие результаты в отношении вычислительной сложности процесса принятия решения, 2) достигло более высокой точности результата с точки зрения количества нарушений требований к качеству, заданных пользователем, 3) достигло более высокого уровня технологической готовности и технология была внедрена в три проекта, где использовалась для обеспечения автоматизированной оркестровки ресурсов с учетом требований к качеству от периферии к облаку.
Апробация результатов работы. Основные результаты исследований и научных разработок обсуждались на конференциях: международная конференция 33rd IEEE International Parallel and Distributed Processing Symposium, IPDPS 2019, Рио-де-Жанейро (Бразилия); международная конференция IEEE World Congress on
Services, IEEE SERVICES 2019, Милан (Италия); международная конференция IEEE Computer Society - XXVII International Conference on Information, Communication and Automation Technologies (ICAT 2019), Сараево (Босния и Герцеговина).
Публикации. Основные результаты по теме диссертации изложены в восьми научных работах, в том числе три статьи в научных журналах, три статьи в сборниках докладов конференции и один раздел книги, входящих в перечень Scopus, а также одна статья в научном журнале, входящем в перечень ВАК.
Личный вклад. Содержание диссертации, включая все основные результаты выносимые на защиту, получены автором самостоятельно. Из работ, выполненных в соавторстве, в диссертацию включены результаты, которые соответствуют личному участию автора.
Структура и объем диссертации. Диссертация состоится из введения, 6 глав, заключения и списка литературы из 87 наименований. Объем диссертации 96 страниц текста, в том числе 15 рисунков и 14 таблиц.
Текст работы построен следующим образом: Глава 1 представляет результаты обзора литературы; Глава 2 описывает методику выбора оптимальной облачной инфраструктуры; Глава 3 представляет методику сокращения вычислительной сложности; Глава 4 представляет оценки корректности результата; Глава 5 описывается формализованный метод для автоматизации процесса развертывания приложений в облачных инфраструктурах; и Глава 6 посвящена созданию и экспериментальному исследованию разработанных методик программного комплекса.
1. Обзор технологий обеспечения высокоскоростных вычисленный
на основе облачной инфраструктуры
В данной главе представлены результаты обзора литературы. На основе анализа источников рассмотрены основные парадигмы облачных вычислений и хронология их развития, рассмотрены основные принципы виртуализации в облачных вычислениях, описаны нефункциональные требования и их отношение к надежности облачных вычислений. Кроме того, представлен обзор наиболее часто используемых методов принятия решений в средах облачных вычислений.
1.1 Обзор парадигм облачных вычислений
В этом параграфе предоставлено краткое изложение истории вычислительных машин, описывающее развитие компьютеров и Интернета и начало облачных вычислений. Также будут рассмотрены различные типы вычислительных парадигм и описаны модели облачных вычислений.
1.1.1 Хронология вычислений от вычислительной машины до облачных
вычислений
История вычислений охватывает очень большой период, и берет начало около 5000 лет назад с изобретения абака и до последних тенденций в вычислительной технике, связанных с квантовыми вычислениями [9]. Рисунок 1 изображает хронологию вычислений от вычислительной машины до облачных вычисленный.
Рисунок 1 Хронология вычислений от вычислительной машины до облачных вычислений
Первые документированные вычислительные машины были механические вычислительные машины, спроектированные Вильгельмом Шикардом в 1623 и Чарльзом Бэббиджем в 1837 году. Вскоре после изобретения электричества Аллан Маркванд подготовил проект электрической логической машины, который был реализован в 1936 году Бенджамином Бураком. Однако история современных вычислений началась в XX веке с появления мощных вычислительных машин Z3 и ENIAC, которые считаются первыми компьютерами в мире [10], [11]. Эти машины наряду с изобретением транзисторов в 1947 году способствовали развитию мэйнфреймов, таких как IBM-704 и IBM System/360. Мэйнфрейм является большим универсальным высокопроизводительным отказоустойчивым компьютером для выполнения сервисного программного обеспечения.
В 1950-х годах ХХ века началась постепенная эволюция мэйнфреймов. Из-за затрат на покупку и обслуживание компьютеров для мэйнфреймов организациям было непрактично покупать и обслуживать один компьютер для каждого сотрудника. В 1961 году ученый Джон Маккарти предложил идею предоставлять вычислительные ресурсы пользователям как услуга (сервис) [12]. В результате были предприняты усилия для обеспечения многопользовательского доступа к
мэйнфреймам. Агенство DARPA (Defense Advanced Research Projects Agency) в 1963 году разработало прототип мэйнфрейма, который мог быть использован двумя или более пользователями одновременно. Более того, они впервые определили термин «виртуализация», который затем описывал доступ к машине сразу несколькими пользователями. Другим важным этапом для развития облачных вычислений стала разработка система связи Арпанет в 1969 году [13], которая считается предшественником Интернета. Это была система связи, которая оставалась доступной, даже если некоторый из ее узлов отказал в обслуживании, и была основана на идее обмена данными между различными компьютерами или компьютерными сетями. В последующий период, с 1970-х по 1990-е годы, было представлено много технологических достижений, необходимых для настоящих облачных вычислений, таких как улучшенная концепция виртуализации, а также рост виртуальных частных сетей (VPN) и Интернета. В 1970-х годах, IBM выпустила операционную систему под названием VM, которая позволяла пользователям в ее мэйнфреймовых IBM System/370 иметь несколько виртуальных систем, то есть виртуальных машин на одном физическом узле. Это изменило существующее определение виртуализации, которое начало описывать создание виртуальных машин, действующих как независимые физические машины с полнофункциональной операционной системой. Каждая виртуальная машина работала с собственными операционными системами или гостевыми операционными системами, которые имели собственную память, процессор и жесткие диски, а также компакт-диски, клавиатуры и сетевые устройства, несмотря на то что эти ресурсы были общими.
В 1990-х годах новые технологии, такие как Интернет и вычислительные сети, позволили обеспечить подключение достаточного количества компьютеров, чтобы создавать огромные взаимосвязанные общие пулы для вычислений и хранения данных. Этот распределенный тип вычислений был назван грид-вычисления [14]. К этой парадигме вычислений возник особый интерес у финансовых компаний, которые имели тысячи неиспользуемых персональных
компьютеров и серверов, доступных для использования вне рабочего времени. Тем не менее, дорогостоящие инфраструктуры, сетевые или программные сборы и ограничения, связанные с грид-вычислениям, привели к появлению парадигмы облачных вычислений.
В 1997 году профессор Рамнат Челлапа из Университета Эмори определил облачные вычисления как новую «вычислительную парадигму, в которой границы вычислений будут определяться экономическим обоснованием, а не только техническими ограничениями» [15]. Спустя два года после определения облачных вычислений Salesforce.com стала первой компанией, предложившей использование бизнес-приложений через Интернет, и объявила о появлении программного обеспечения как услуги (SaaS). Другими словами, это считается первой официальной реализацией облачных вычислений. С начала 2000-х годов облачные вычисления приобрели популярность, поскольку компании стали лучше понимать свои услуги и полезность. Например, в 2002 году Amazon представила свои розничные веб-сервисы, а затем запустила Amazon Web Services, которые предлагают онлайн-сервисы, такие как: хранение, вычисления и «искусственный интеллект» другим веб-сайтам или клиентам. Кроме того, Amazon представила Elastic Compute Cloud (EC2), позволяющую пользователям арендовать виртуальные машины и запускать там свои собственные приложения. В тот же период Google и Apple также запустили свои собственные облачные сервисы, которые дали пользователям возможность хранить и редактировать документы. В 2012 году Oracle представила Oracle Cloud, предлагая три базовых условия для бизнеса: IaaS (инфраструктура как услуга), PaaS (платформа как услуга) и SaaS (программное обеспечение как услуга). Однако оказалось, что облачные вычисления также имеют некоторые недостатки и в некоторых случаях они не могут удовлетворить все требуемые стандарты качества во многих IoT сценариях. В результате в 2012 году, компания Cisco представила новую вычислительную парадигму, называемую туманным вычислением [16]. Кроме того, в 2014 году Карим Араби предложил другую, более распределенную вычислительную
парадигму, называемую периферийными вычислениями [17]. С 2015 года созданы несколько организаций, таких как: OpenFog consortium [18], Cloud Native Computing Foundation [19] и European Edge Computing Consortium [20], призванных помочь продвинуть вычислительные технологии и согласовать технологическую отрасль с развитием вычислительных технологий. Эти парадигмы будут более подробно рассмотрены в следующем параграфе.
1.1.2 Вычислительные парадигмы
Термины «периферийные вычисления», «туманные вычисления», «облачные вычисления» различают между собой такие свойства как: производительность вычислений, производительность сети и географическое распределение [21].
Облачные вычисления - это вычислительная парадигма, предлагающая централизованные вычисления, обеспечивающие высокую вычислительную мощность и высокую пропускную способность в крупных центрах обработки данных. Тем не менее, она также имеет некоторые недостатки, особенно в области IoT. Например, на производительность облачных вычислений обычно сильно влияет круговая задержка сети из-за расстояния между клиентскими устройствами и инфраструктурами обработки данных. Таким образом, облачные вычисления дополняются новыми появляющимися вычислительными парадигмами, которые расширяют вычислительные возможности ближе к периферии сети.
Туманные и облачные вычисления взаимосвязаны (Рисунок 2). В природе туман находится ближе к земле чем облака, поэтому в технологическом мире вычисления туман может восприниматься как вычислительные ресурсы, которые существуют между сенсорными устройствами и традиционными облачными инфраструктурами [16]. Инфраструктура туманных вычислений состоит из небольших и достаточно мощных центров обработки данных в непосредственной близости от периферии сети. Их целью является поддержка IoT приложений,
которые требуют высокопроизводительных вычислений с улучшенной производительностью сети. Кроме того, основное различие между туманными вычислениями и облачными вычислениями состоит в том, что облако - это централизованная система, а туман - это распределенная децентрализованная инфраструктура.
Рисунок 2 Вычислительные парадигмы
Периферийные вычисления - это высоко распределенный подход вычисления, который позволяет обрабатывать данные на различных многопроцессорных устройствах, работающих в непосредственной близости от датчиков, таких как Raspberry Pi, BeagleBoard или PCDuino [22]. Эта парадигма может иметь высокую производительность сети, но она не рекомендуется для интенсивных вычислительных операций. Следовательно, эта парадигма полезна, когда IoT приложение требует легких вычислительных операций при достижении высокой скорости отклика.
1.1.3 Типы облачных вычислений
Облачные вычисления можно классифицировать с двух точек зрения: классификация по типу услуги и классификация по типу модели [23].
Наиболее распространенными и широко принятыми сервисами облачных вычислений являются: инфраструктура как услуга (IaaS), платформа как услуга (PaaS) и программное обеспечение как услуга (SaaS). IaaS - это модель услуг, которая предлагает пользователям виртуальные инфраструктуры, такие как: хранилища, серверы или сетевые компоненты в качестве подключаемой услуги. Таким образом, вместо того, чтобы располагать все компоненты инфраструктуры в помещениях компании, эта модель услуг позволяет компаниям арендовать виртуальные инфраструктуры на платной основе у провайдеров облачных услуг. PaaS - это модель сервиса, который относится к поставке облачной среды по требованию для разработки, тестирования, доставки и управления программными приложениями. Он предназначен для быстрой разработки программного обеспечения без необходимости управления базовой инфраструктурой серверов, хранилищ, сетей и баз данных. SaaS - это модель сервиса облачных вычислений, который включает в себя IaaS и PaaS. SaaS поставляет программные приложения через Интернет в соответствии с требованием и на основе подписки. С помощью этого вида услуг, поставщик облачных услуг предоставляет весь программный пакет в виде модели с оплатой за использование.
Основываясь на способности организации управлять данными и обеспечивать их безопасность, а также на потребностях бизнеса, существуют три типа моделей облачного развертывания: публичная, частная и гибридная модель и модель сообщества.
Публичное облако - это тип модели облачного развертывания, который поддерживает всех пользователей, которые хотят использовать вычислительные ресурсы, такие как аппаратное обеспечение (ОС, ЦП, память, хранилище) или программное обеспечение (сервер-приложение, база данных) на основе подписки. Такая облачная инфраструктура может принадлежать, управляться и эксплуатироваться коммерческой, академической или государственной организацией. Она существует на территории облачного провайдера. Частное облако - это обычно инфраструктура, используемая одной организацией. Такая
инфраструктура может управляться самой организацией для поддержки различных групп пользователей, или она может управляться поставщиком услуг, который заботится о ней как на территории организации, так и дистанционно. Частные облака дороже чем публичные из-за капитальных затрат на их приобретение и обслуживание. Тем не менее, частные облака лучше справляются с проблемами безопасности и конфиденциальности организаций. Гибридное облако позволяет организации одновременно использовать взаимосвязанные частные и публичные облачные инфраструктуры. Эта модель используется многими организациями, когда им необходимо быстро расширить свою ИТ-инфраструктуру, например, при использовании общедоступных облаков для дополнения емкости, доступной в частном облаке. Модель сообщества представляет собой облачную инфраструктуру, которая предоставляется для исключительного использования конкретным сообществом потребителей из организаций, которые разделяют общие озабоченности (например, миссия, требования безопасности, политика и соображения соответствия). Она может принадлежать и управляться одной или несколькими организациями в сообществе, третьей стороной или какой-либо их комбинацией, а также может существовать внутри организации или за ее пределами.
Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Виртуализация многокомпонентной системной архитектуры предметно-ориентированной облачной вычислительной среды2014 год, кандидат наук Федосин, Михаил Евгеньевич
Математическое и программное обеспечение средств повышения производительности и безопасности процессов обработки транзакций облачных маршрут-нестабильных баз данных2023 год, кандидат наук Аль-Мусави Осама Адил Рахим
Методы управления ресурсами в проблемно-ориентированных распределенных вычислительных средах2014 год, кандидат наук Шамакина, Анастасия Валерьевна
Управление потоками сообщений в вычислительных сетях и системах с переменной структурой2019 год, кандидат наук Джафар Мустафа Садек Джавар
Планирование исполнения наборов композитных приложений во временных окнах распределенных облачных сред2014 год, кандидат наук Боченина, Клавдия Олеговна
Список литературы диссертационного исследования кандидат наук Кочовски Петар, 2021 год
Список литературы
1. Kebir S., Borne I., Meslati D. A genetic algorithm-based approach for automated refactoring of component-based software // Information and Software Technology, Т. 88, 2017. С. 17-36.
2. Moonen L., Yazdanshenas A.R. Analyzing and visualizing information flow in heterogeneous component-based software systems // Information and Software Technology, Т. 77, 2016. С. 34-55.
3. Tahir M., Khan F., Babar M., Arif F., Khan S. Framework for Better Reusability in Component Based Software Engineering // Journal of Applied Environmental and Biological Sciences (JAEBS), Т. 6, № 4S, 2016. С. 77-81.
4. Bonissone P. Research issues in multi criteria decision making (MCDM): The impact of uncertainty in solution evaluation // Proceedings of the 12th international conference on processing and management of uncertainty in knowledge-based systems (IPMU). Malaga. 2008. С. 1409-1416.
5. Curry , Dagli. Computational complexity measures for many-objective optimization problems // Procedia Computer Science, Т. 36, 2014. С. 185-191.
6. Juju C. Juju documentation // Canonical Juju. 2019. URL: https://jaas.ai/docs (дата обращения: 18.11.2019).
7. Fabric8. Fabric8 Documentation // Fabric8. 2019. URL: https://fabric8.io/docs/ index.html (дата обращения: 18.11.2019).
8. Stefanic P., Cigale M., Jones A.C., Knight L., Taylor I., Istrate C., Siciu G., Ulisses A., Stankovski V., Taherizadeh S. SWITCH workbench: A novel approach for the development and deployment of time-critical microservice-based cloud-native applications // Future Generation Computer Systems, Т. 99, 2019.
9. Harding E., Georges I. The universal history of computing: From the abacus to the quantum computer. Т. 1. John Wiley & Sons, Inc., 2001.
10. Goldstine H.H., Goldstine A. The electronic numerical integrator and computer (ENIAC) // Mathematical Tables and Other Aids to Computation, Т. 2, № 15, 1946.
11. Rojas R. Konrad Zuse's legacy: the architecture of the Z1 and Z3 // IEEE Annals of the History of Computing, Vol. 19, No. 2, 1997. pp. 5-16.
12. Garfinkel S. Architects of the information society: 35 years of the Laboratory for Computer Science at MIT. MIT press, 1999.
13. Salus P., Vinton G. Casting the Net: From ARPANET to Internet and Beyond. Addison-Wesley Longman Publishing Co., Inc., 1995.
14. Baker M., Buyya R., Laforenza D. Grids and Grid technologies for wide-area distributed computing // Software: Practice and Experience, Т. 32, № 15, 2002.
15. Chellappa R. Intermediaries in cloud-computing: A new computing paradigm // INFORMS Annual Meeting. Dallas. 1997. С. 26-29.
16. Bonomi F., Milito R., Zhu J., Addepalli S. Fog Computing and Its Role in the Internet of Things // Proceedings of the first edition of the MCC workshop on Mobile cloud computing. 2012. С. 13-16.
17. Arabi K. Mobile Computing Opportunities, Challenges and Technology Drivers // 51st IEEE Design Automation Conference. San Francisco. 2014.
18. OpenFog Consortium [Электронный ресурс] // OpenFog Consortium: [сайт]. [2015]. URL: https://www.openfogconsortium.org/ (дата обращения: 20.4.2020).
19. Cloud Native Computing Foundation [Электронный ресурс] // Cloud Native Computing Foundation: [сайт]. [2015]. URL: https://www.cncf.io/ (дата обращения: 20.4.2020).
20. European Edge Computing Consortium [Электронный ресурс] // European Edge Computing Consortium: [сайт]. [2018]. URL: https://ecconsortium.eu/ (дата обращения: 20.4.2020).
21. Taherizadeh S., Stankovski V., Grobelnik M. A capillary computing architecture for dynamic internet of things: Orchestration of microservices from edge devices to fog and cloud providers // Sensors, Т. 18, № 9, 2018. С. 29-38.
22. Shi W., Cao J., Zhang Q., Li , Xu L. Edge computing: Vision and challenges // IEEE Internet of Things Journal, Т. 3, № 5, 2016. С. 637-646.
23. Mell P., Grance T. The NIST definition of cloud computing, 2011.
24. Xing , Zhan. Virtualization and Cloud Computing. Т. 1. // В кн.: Future Wireless Networks and Information Systems. Wuhan: Springer, 2012. С. 305-312.
25. Merkel D. Docker: lightweight linux containers for consistent development and deployment // Linux Journal, Т. 2014, № 239, 2014.
26. Bernstein D. Containers and cloud: From lxc to docker to kubernetes // IEEE Cloud Computing, Т. 1, № 3, 2014. С. 81-84.
27. Cloud G. Google Kubernetes Engine documentation // Google Cloud. 2019. URL: https://cloud.google.com/kubernetes-engine/docs/ (дата обращения: 1.1.2020).
28. Amazon Web Services I. Amazon Elastic Container Service (Amazon ECS). Amazon Web Services, Inc., 2019.
29. Chen Y., Farley , Ye N. QoS requirements of network applications on the Internet // Information Knowledge Systems Management, Т. 4, № 1, 2004. С. 55-76.
30. Sandhu R., Sood. Scheduling of big data applications on distributed cloud based on QoS parameters // Cluster Computing, Т. 18, № 2, 2015.
31. Li L., Li S., Zhao S. QoS-aware scheduling of services-oriented internet of things // IEEE Transactions on Industrial Informatics, Т. 10, № 2, 2014. С. 1497-1505.
32. Hu J., Gu J., Sun G., Zhao T. A scheduling strategy on load balancing of virtual machine resources in cloud computing environment // 2010 3rd International symposium on parallel architectures, algorithms and programming. 2010. С. 89-96.
33. Li L.E., Woo T. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network, US Patent App. 12/571,271, Март 31, 2011.
34. Randles M., Lamb D., Taleb-Bendiab A. A comparative study into distributed load balancing algorithms for cloud computing // 2010 IEEE 24th International Conference on Advanced Information Networking and Applications Workshops. 2010. С. 551-556.
35. Chaczko , Mahadevan , Aslanzadeh , Mcdermid C. Availability and load balancing in cloud computing // International Conference on Computer and Software Modeling. Сингапур. 2011. Т. 14.
36. Manvi S., Shyam G.K. Resource management for Infrastructure as a Service (IaaS) in cloud computing: A survey // Journal of network and computer applications, Т. 41, 2014. С. 424-440.
37. Jennings B., Stadler R. Resource management in clouds: Survey and research challenges // Journal of Network and Systems Management, Т. 23, № 3, 2015. С. 567-619.
38. Luong N.C., Wang P., Niyato , Wen , Han Z. Resource management in cloud networking using economic analysis and pricing models: A survey // IEEE Communications Surveys & Tutorials, Т. 19, № 2, 2017. С. 954-1001.
39. Jain N., Menache I. Resource management for cloud computing platforms, US Patent 9,450,838, Сентябрь 20, 2016.
40. Singh S., Chana I. Q-aware: Quality of service based cloud resource provisioning // Computers & Electrical Engineering, Т. 47, 2015. С. 138-160.
41. Chaisiri , Lee B.S., Niyato D. Optimization of resource provisioning cost in cloud computing // IEEE transactions on services Computing, Т. 5, № 2. С. 164-177.
42. Zhang L., Li Z., Wu C. Dynamic resource provisioning in cloud computing: A randomized auction approach // IEEE INFOCOM 2014-IEEE Conference on Computer Communications. 2014. С. 433-441.
43. Pascinski U., Trnkoczy J., Stankovski V., Cigale M., Gec S. QoS-aware orchestration of network intensive software utilities within software defined data centres // Journal of Grid Computing, Т. 16, № 1, 2018. С. 85-112.
44. Mijumbi , Serrat , Gorricho J.L., Latre , Charalambides , Lopez D. Management and orchestration challenges in network functions virtualization // IEEE Communications Magazine, Т. 54, № 1, 2016.
45. Karim R., Ding C., Miri A. An end-to-end QoS mapping approach for cloud service selection341-348 // 2013 IEEE Ninth World Congress on Services. 2013. С. 341348.
46. Garg S.K., Versteeg S., Buyya R. A framework for ranking of cloud computing services // Future Generation Computer Systems, Т. 29, № 4, 2013. С. 1012-1023.
47. Goncalves Junior R., Rolim T., Sampaio A., Mendonca N.C. A multi-criteria approach for assessing cloud deployment options based on non-functional requirements // Proceedings of the 30th Annual ACM Symposium on Applied Computing}. 2015. С. 1383-1389.
48. Mardani A., Jusoh A., Nor K., Khalifah Z., Zakwan N., Valipour A. Multiple criteria decision-making techniques and their applications—a review of the literature from 2000 to 2014 // Economic Research, Т. 28, № 1, 2015. С. 516-571.
49. Zheng Z., Wu X., Zhang Y., Lyu , Wang J. QoS ranking prediction for cloud services // IEEE transactions on parallel and distributed systems, Т. 24, № 6, 2012. С. 1213-1222.
50. Guerrero C., Lera I., Juiz C. Genetic algorithm for multi-objective optimization of container allocation in cloud architecture // Journal of Grid Computing, Т. 16, № 1, 2018. С. 113-135.
51. Stefanic P., Kimovski D., Siciu G., Stankovski V. Non-functional requirements optimisation for multi-tier cloud applications: An early warning system case study // 2017 IEEE SmartWorld, Ubiquitous Intelligence & Computing, Advanced & Trusted Computed, Scalable Computing & Communications, Cloud & Big Data Computing, Internet of People and Smart City Innovation. 2017. C. 1-8.
52. Trenz M., Huntgeburth J., Veit D. The Role Of Uncertainty In Cloud Computing Continuance: Antecedents, Mitigators, And Consequences // ECIS. 2013. C. 147.
53. Tchernykh , Schwiegelsohn U., Alexandrov V., Talbi E.G. Towards understanding uncertainty in cloud computing resource provisioning // Procedia Computer Science, T. 51, 2015. C. 1772-1781.
54. Bennett C., Hauser K. Artificial intelligence framework for simulating clinical decision-making: A Markov decision process approach // Artificial intelligence in medicine, T. 57, № 1, 2013. C. 9-19.
55. Iversen E., Morales J., Madsen H. Optimal charging of an electric vehicle using a Markov decision process // Applied Energy, T. 123, 2014. C. 1-12.
56. Kolobov A. Planning with Markov decision processes: An AI perspective // Synthesis Lectures on Artificial Intelligence and Machine Learning, T. 6, № 1,
2012. C. 1-210.
57. Yang J., Lin W., Dou W. An adaptive service selection method for cross-cloud service composition // Concurrency and Computation: Practice and Experience, T. 25, № 18, 2013. C. 2435-2454.
58. Su G., Chen T., Feng Y., Rosenblum D., Thiagarajan P. An iterative decision-making scheme for markov decision processes and its application to self-adaptive systems // International Conference on Fundamental Approaches to Software Engineering. 2016. C. 269-286.
59. Llerena Y.R.S., Su G., Rosenblum D.S. Probabilistic model checking of perturbed mdps with applications to cloud computing // Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering. 2017. C. 454-464.
60. Tsoumakos , Konstantinou , Boumpouka C., Sioutas S., Koziris N. Automated, elastic resource provisioning for nosql clusters using tiramola // 2013 13 th IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing.
2013. C. 34-41.
61. Naskos A., Stachtiari E., Gounaris A., Katsaros P., Tsoumakos D., Konstantinou I., Sioutas S. Dependable horizontal scaling based on probabilistic model checking //
2015 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. 2015. С. 31-40.
62. Foundation T.A.S. Apache Mesos Documentation // Apache Mesos. 2020. URL: http://mesos.apache.org/documentation/latest/ (дата обращения: 20.2.2020).
63. Inc. D. Docker Swarm mode overview // Docker. 2020. URL: https:// docs.docker.com/engine/swarm/ (дата обращения: 20.2.2020).
64. Foundation T.L. Kubernetes // Kubernetes. 2019. URL: https://kubernetes.io/docs/ home/ (дата обращения: 1.1.2020).
65. Tretheway H.J. A snapshot of the OpenStack users' attitudes and deployments // Openstack User Survey. November 2017. С. 2-18.
66. Conway S. Survey Shows Kubernetes Leading as Orchestration Platform, Cloud Native Computing Foundation (CNCF), Survey 2017.
67. Foundation T.L. Borg: The Predecessor to Kubernetes // Kubernetes. 2015. URL: https://kubernetes.io/blog/2015/04/borg-predecessor-to-kubernetes/ (дата обращения: 20.2.2020).
68. Kwiatkowska M., Norman G., Parker D. PRISM 4.0: Verification of probabilistic real-time systems // International conference on computer aided verification, 2011. С. 585--591.
69. Parker D., Kwiatkowska M. PRISM-API. Birmingham. 2015.
70. Alur R., Henzinger T.A. Reactive modules // Formal methods in system design, Т. 15, № 1, 1999. С. 7-48.
71. Zanella A., Bui N., Castellani A., Vangelista L., Zorzi M. Internet of things for smart cities // IEEE Internet of Things journal, Т. 1, № 1, 2014. С. 22-32.
72. Al-Fuqaha A., Guizani M., Mohammadi M., Aledhari M., Ayyash M. Internet of things: A survey on enabling technologies, protocols, and applications // IEEE communications surveys & tutorials, Т. 17, № 4. С. 2347-2376.
73. Kochovski P., Stankovski V. Supporting smart construction with dependable edge computing infrastructures and applications // Automation in Construction, Т. 85, 2018. С. 182-192.
74. Foundation T.A.S. Apache Maven Project // Apache Maven Project. 2019. URL: https://maven.apache.org/ (дата обращения: 1.1.2020).
75. Trihinas , Pallis , Dikaiakos M.D. Jcatascopia: Monitoring elastically adaptive applications in the cloud // 2014 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. 2014. С. 226-235.
76. NetData. NetData Documentation // NetData. 2020. URL: https:// docs.netdata.cloud/ (дата обращения: 1.1.2020).
77. Foundation T.L. Prometheus Overview // Prometheus. 2014. URL: https:// prometheus.io/docs/introduction/overview/ (дата обращения: 31.12.2019).
78. Foundation T.A.S. Apache Cassandra Documentation // Apache Cassandra. 2019. URL: http://cassandra.apache.org/doc/latest/ (дата обращения: 1.1.2020).
79. Foundation T.A.S. Apache Jena Fuseki // The Aoache Software Foundation. 2019. URL: https://jena.apache.org/documentation/fuseki2/ (дата обращения: 1.1.2020).
80. Community J.M. Jitsi Meet Community // Jitsi Meet. 2019. URL: https:// community.jitsi.org/ (дата обращения: 1.1.2020).
81. Chadd A. The httperf HTTP load generator // GitHub. 2015. URL: https:// github.com/httperf/httperf (дата обращения: 1.1.2020).
82. Foundation T.A.S. Cassandra Stress Documentation // The Apache Software Foundation. 2016. URL: https://docs.datastax.com/en/archived/cassandra/3.0/ cassandra/tools/toolsCStress.html (дата обращения: 1.1.2020).
83. Google. Compute Engine documentation // Google Cloud Platform. 2020. URL: https://cloud.google.com/compute/docs/ (дата обращения: 1.1.2020).
84. Amazon. Amazon Elastic Compute Cloud Documentation // Amazon EC2. 2020. URL: https://docs.aws.amazon.com/ec2/index.html?nc2=h_ql_doc_ec2 (дата обращения: 1.1.2020).
85. Arnes. About Arnes // Arnes. 2020. URL: https://www.arnes.si/about-arnes/ (дата обращения: 1.1.2020).
86. Guo X., Wang Y., Wang X. Using objective clustering for solving many-objective optimization problems // Mathematical Problems in Engineering, Т. 2013, 2013.
87. Decenter. DECENTER: Decentralised technologies for orchestrated Cloud-to-Edge intelligence // DECENTER: Decentralised technologies for orchestrated Cloud-to-Edge intelligence. 2018. URL: https://www.decenter-project.eu/ (дата обращения: 1.1.2020).
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.