Наукоемкий проблемно-ориентированный сервис вычислительного портала КемГУ
|
ВВЕДЕНИЕ 3
ОБЗОР ЛИТЕРАТУРЫ 5
ГЛАВА 1. ОБЗОР И СРАВНЕНИЕ ИМЕЮЩИХСЯ РЕШЕНИЙ ДЛЯ
СОЗДАНИЯ ВЫЧИСЛИТЕЛЬНЫХ ПОРТАЛОВ 6
1.1. СИСТЕМА УПРАВЛЕНИЯ КОНТЕЙНЕРАМИ KUBERNETES 6
1.2. НАБОР СВОБОДНО РАСПРОСТРАНЯЕМЫХ ПРИЛОЖЕНИЙ ДЛЯ
САМОСТОЯТЕЛЬНОЙ РАЗРАБОТКИ ПО 13
1.3. СРАВНЕНИЕ СРЕДСТВ РАЗРАБОТКИ ВЫЧИСЛИТЕЛЬНЫХ
ПОРТАЛОВ 15
ГЛАВА 2. ДЕКОМПОЗИЦИЯ ПРОЦЕССА РАЗРАБОТКИ ТЕСТОВЫХ ВЫЧИСЛИТЕЛЬНОГО ПОРТАЛА И СЕРВИСА И СОПУТСТВУЮЩИХ МЕТОДОВ 18
2.1. ОПИСАНИЕ ОБЪЕКТА, ИСПОЛЬЗУЕМОГО В РАБОТЕ 18
2.2. ОПИСАНИЕ АРХИТЕКТУРЫ ТЕСТОВОГО ПОРТАЛА 20
2.3. ОПИСАНИЕ МЕХАНИЗМА ВЗАИМОДЕЙСТВИЯ КОНТЕЙНЕРОВ
ПОРТАЛА И ПРОБЛЕМНО-ОРИЕНТИРОВАННОГО СЕРВИСА 23
ГЛАВА 3. РЕАЛИЗАЦИЯ 26
3.1. ОПИСАНИЕ СРЕДСТВ РЕАЛИЗАЦИИ СЕРВИСОВ 26
3.2. СЕРВИС «ВЫЧИСЛИТЕЛЬНЫЙ ПОРТАЛ» 26
3.3. СЕРВИС «ПРОБЛЕМНО-ОРИЕНТИРОВАННЫЙ НАУКОЁМКИЙ
СЕРВИС» 28
3.4. РАЗВОРАЧИВАНИЕ ЛОКАЛЬНОГО КЛАСТЕРА 29
3.5. КОНТЕЙНЕРИЗАЦИЯ РАЗРАБОТАННЫХ СЕРВИСОВ И
РАЗВОРАЧИВАНИЕ ИХ НА ЛОКАЛЬНОМ КЛАСТЕРЕ 31
ЗАКЛЮЧЕНИЕ 37
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
ОБЗОР ЛИТЕРАТУРЫ 5
ГЛАВА 1. ОБЗОР И СРАВНЕНИЕ ИМЕЮЩИХСЯ РЕШЕНИЙ ДЛЯ
СОЗДАНИЯ ВЫЧИСЛИТЕЛЬНЫХ ПОРТАЛОВ 6
1.1. СИСТЕМА УПРАВЛЕНИЯ КОНТЕЙНЕРАМИ KUBERNETES 6
1.2. НАБОР СВОБОДНО РАСПРОСТРАНЯЕМЫХ ПРИЛОЖЕНИЙ ДЛЯ
САМОСТОЯТЕЛЬНОЙ РАЗРАБОТКИ ПО 13
1.3. СРАВНЕНИЕ СРЕДСТВ РАЗРАБОТКИ ВЫЧИСЛИТЕЛЬНЫХ
ПОРТАЛОВ 15
ГЛАВА 2. ДЕКОМПОЗИЦИЯ ПРОЦЕССА РАЗРАБОТКИ ТЕСТОВЫХ ВЫЧИСЛИТЕЛЬНОГО ПОРТАЛА И СЕРВИСА И СОПУТСТВУЮЩИХ МЕТОДОВ 18
2.1. ОПИСАНИЕ ОБЪЕКТА, ИСПОЛЬЗУЕМОГО В РАБОТЕ 18
2.2. ОПИСАНИЕ АРХИТЕКТУРЫ ТЕСТОВОГО ПОРТАЛА 20
2.3. ОПИСАНИЕ МЕХАНИЗМА ВЗАИМОДЕЙСТВИЯ КОНТЕЙНЕРОВ
ПОРТАЛА И ПРОБЛЕМНО-ОРИЕНТИРОВАННОГО СЕРВИСА 23
ГЛАВА 3. РЕАЛИЗАЦИЯ 26
3.1. ОПИСАНИЕ СРЕДСТВ РЕАЛИЗАЦИИ СЕРВИСОВ 26
3.2. СЕРВИС «ВЫЧИСЛИТЕЛЬНЫЙ ПОРТАЛ» 26
3.3. СЕРВИС «ПРОБЛЕМНО-ОРИЕНТИРОВАННЫЙ НАУКОЁМКИЙ
СЕРВИС» 28
3.4. РАЗВОРАЧИВАНИЕ ЛОКАЛЬНОГО КЛАСТЕРА 29
3.5. КОНТЕЙНЕРИЗАЦИЯ РАЗРАБОТАННЫХ СЕРВИСОВ И
РАЗВОРАЧИВАНИЕ ИХ НА ЛОКАЛЬНОМ КЛАСТЕРЕ 31
ЗАКЛЮЧЕНИЕ 37
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
В настоящее время все сильнее прослеживается тенденция к переходу от классической модели распространения ПО к облачным технологиям. Облачные сервисы позволили уравнять в ИТ-возможностях и малый бизнес, и крупные компании. Сегодня облачные сервисы и приложения — идеальный вариант для большинства начинаний в сфере IT.
Однако, для некоторых задач, использование облачных технологий всё же не нашло повсеместного распространения. Одной из сфер, в которой распространение через облако весьма затруднительно, является вычислительные порталы.
Казалось бы, что именно они и должны были стать самым популярным объектом в сфере облачных технологий, предоставляя пользователям ресурсы для решения различных ресурсоемких задач, но, при более детальном рассмотрении, становится очевидно, что имеется ряд мелких задач, без решения которых становится невозможным реализовать корректный pipeline использования конечным продуктом с целью получения результата, например:
• отсутствие унифицированного интерфейса не позволит воспользоваться инструментами пакетного размещения решателей;
• размещение ресурсов под каждый отдельный экземпляр задачи должен размещаться либо вручную, либо специализированным ПО, способным балансировать нагрузку без вмешательства администратора;
• межпользовательское взаимодействие реализуется лишь на уровне форумов, но не на уровне подготовки моделей, что может сказаться на временных затратах решения ресурсоемкой задачи, и т.д.
Но помимо концептуальных проблем, связанных с такими порталами, возникают и локальные проблемы, которые могут привести к отсутствию положительного результата:
• отсутствие сериализации при передаче данных между модулями;
• сбои внутри модуля (например, утечки памяти), которые приводят к потере контроля над всем кластером.
Целью работы является разработка наукоемкого проблемно-ориентированного сервиса, который может встраиваться на различных вычислительных порталах.
Актуальность исследуемой темы заключается в том, что на момент написания ВКР не существует общедоступных специализированных инструментариев по созданию универсальных сервисов, которые не зависели бы от используемых CMS, систем управления задач и т.д.
Реализация поставленной цели потребует решения следующих задач:
1. провести сравнение имеющихся решений для создания вычислительных порталов;
2. создать тестовую платформу для развертки сервисов;
3. провести обзор доступных технологий, используемых для создания унифицированных самоизолированных сервисов;
4. рассмотреть способы межмодульного взаимодействия;
5. произвести тестирование развернутого модуля
К объектам исследования относятся программное обеспечение для масштабирования контейнеризированных приложений, автоматизации развёртывания и управления Kubernetes, постановка задачи «Математическое моделирование процессов переноса воздушных масс».
Методы исследования определяются сущностью теоретических и практических проблем. Используются: теория и методы разработки программного обеспечения, математическое моделирование, компьютерное моделирование.
ОБЗОР ЛИТЕРАТУРЫ
При написании магистерской диссертации были использованы книги и пособия по программному продукту Kubernetes, научные статьи по выбранной тематике, а также различные электронные порталы, расположенные в сети Интернет, по тематике магистерской диссертации и смежных с ней.
Анализ представленных в открытом доступе источников литературы показал, что по выбранной тематике отсутствует какая-либо литература, она имеется в наличии лишь по смежным темам, например: по проектированию моделей в пакете вычислительной гидродинамики PHOENICS, по способам распознавания объектов на изображениях, по отдельным классификаторам, и т.д.
На основе работ «Введение в технологию контейнеров и Kubernetes» Маркелов, А. А [1] «Kubernetes в действии» Лукша, М [2], подробно изучен механизм развертки контейнеров на любом подходящем абстрактном устройстве, в котором установлена система управления контейнерами Kubernetes.
Такие электронные ресурсы как «Инженерный вычислительный портал для решения экологических задач» [3], «Один из подходов к созданию вычислительных сервисов для инженерного вычислительного портала» [4] и «Механизм создания вычислительных сервисов для инженерного вычислительного портала» [5] позволили освоить основные принципы разработки вычислительных порталов и сервисов для них.
Используя такие работы, как «Теория информационных процессов и систем» Доррер, Г.А [6], «Системный анализ и моделирование информационных процессов и систем» Горлушкиной, Н. Н [7] был проведен подробный разбор способов построения диаграмм информационных процессов .
Работы «Python. Подробный справочник, 4-е издание» Бизли Д. [8], «Программирование на Python, 4-е издание, I и II том» Лутц М [9]. легли в основу реализации вспомогательных модулей, используемых для дальнейшей работы .
Однако, для некоторых задач, использование облачных технологий всё же не нашло повсеместного распространения. Одной из сфер, в которой распространение через облако весьма затруднительно, является вычислительные порталы.
Казалось бы, что именно они и должны были стать самым популярным объектом в сфере облачных технологий, предоставляя пользователям ресурсы для решения различных ресурсоемких задач, но, при более детальном рассмотрении, становится очевидно, что имеется ряд мелких задач, без решения которых становится невозможным реализовать корректный pipeline использования конечным продуктом с целью получения результата, например:
• отсутствие унифицированного интерфейса не позволит воспользоваться инструментами пакетного размещения решателей;
• размещение ресурсов под каждый отдельный экземпляр задачи должен размещаться либо вручную, либо специализированным ПО, способным балансировать нагрузку без вмешательства администратора;
• межпользовательское взаимодействие реализуется лишь на уровне форумов, но не на уровне подготовки моделей, что может сказаться на временных затратах решения ресурсоемкой задачи, и т.д.
Но помимо концептуальных проблем, связанных с такими порталами, возникают и локальные проблемы, которые могут привести к отсутствию положительного результата:
• отсутствие сериализации при передаче данных между модулями;
• сбои внутри модуля (например, утечки памяти), которые приводят к потере контроля над всем кластером.
Целью работы является разработка наукоемкого проблемно-ориентированного сервиса, который может встраиваться на различных вычислительных порталах.
Актуальность исследуемой темы заключается в том, что на момент написания ВКР не существует общедоступных специализированных инструментариев по созданию универсальных сервисов, которые не зависели бы от используемых CMS, систем управления задач и т.д.
Реализация поставленной цели потребует решения следующих задач:
1. провести сравнение имеющихся решений для создания вычислительных порталов;
2. создать тестовую платформу для развертки сервисов;
3. провести обзор доступных технологий, используемых для создания унифицированных самоизолированных сервисов;
4. рассмотреть способы межмодульного взаимодействия;
5. произвести тестирование развернутого модуля
К объектам исследования относятся программное обеспечение для масштабирования контейнеризированных приложений, автоматизации развёртывания и управления Kubernetes, постановка задачи «Математическое моделирование процессов переноса воздушных масс».
Методы исследования определяются сущностью теоретических и практических проблем. Используются: теория и методы разработки программного обеспечения, математическое моделирование, компьютерное моделирование.
ОБЗОР ЛИТЕРАТУРЫ
При написании магистерской диссертации были использованы книги и пособия по программному продукту Kubernetes, научные статьи по выбранной тематике, а также различные электронные порталы, расположенные в сети Интернет, по тематике магистерской диссертации и смежных с ней.
Анализ представленных в открытом доступе источников литературы показал, что по выбранной тематике отсутствует какая-либо литература, она имеется в наличии лишь по смежным темам, например: по проектированию моделей в пакете вычислительной гидродинамики PHOENICS, по способам распознавания объектов на изображениях, по отдельным классификаторам, и т.д.
На основе работ «Введение в технологию контейнеров и Kubernetes» Маркелов, А. А [1] «Kubernetes в действии» Лукша, М [2], подробно изучен механизм развертки контейнеров на любом подходящем абстрактном устройстве, в котором установлена система управления контейнерами Kubernetes.
Такие электронные ресурсы как «Инженерный вычислительный портал для решения экологических задач» [3], «Один из подходов к созданию вычислительных сервисов для инженерного вычислительного портала» [4] и «Механизм создания вычислительных сервисов для инженерного вычислительного портала» [5] позволили освоить основные принципы разработки вычислительных порталов и сервисов для них.
Используя такие работы, как «Теория информационных процессов и систем» Доррер, Г.А [6], «Системный анализ и моделирование информационных процессов и систем» Горлушкиной, Н. Н [7] был проведен подробный разбор способов построения диаграмм информационных процессов .
Работы «Python. Подробный справочник, 4-е издание» Бизли Д. [8], «Программирование на Python, 4-е издание, I и II том» Лутц М [9]. легли в основу реализации вспомогательных модулей, используемых для дальнейшей работы .
В результате проведённой работы достигнуты следующие результаты:
• проведен анализ системы управления контейнерами Kubernetes в качестве хоста вычислительного портала, в ходе которого были выявлены основные функции и возможности системы, а так же проведено сравнение с другими решениями для создания вычислительных порталов;
• создана тестовая платформа для развертки сервисов на языке Python с использованием библиотеки для разработки web-приложений Flask, изолированной базы данных SQLite; данная платформа не использует большого количества ресурсов и поддерживает запаковку в изолированный контейнер, что вписывается в общую концепцию контейнеризации;
• проведен обзор доступных технологий, используемых для создания унифицированных самоизолированных сервисов ; в качестве такой технологии была выбрана контейнеризация, как наиболее востребованная в современном мире и предоставляющая как простоту развертки, так и универсальность;
• рассмотрены способы межмодульного взаимодействия; в качестве такого способа выступает изоляция отдельных модулей в различных Pod^, т.к. передача данных между модулями не предусматривается, а для взаимодействия модулей со специфичным ПО используются общие дисковые тома, подключаемые непосредственно к контейнеру с сервисом;
• произвести тестирование развернутых сервисов на изолированном локальном кластере Kubernetes с использованием minikube в качестве основной тестирующей среды; тестирование продемонстрировало, что взаимодействие между сервисами и самим локальным окружением выстроено корректно, ввиду того, что сервисы «видимы» друг для друга, а сам Kubernetes занимается как выделением ресурсов для Pod^, равно как и занимается их сетевой маршрутизацией.
• проведен анализ системы управления контейнерами Kubernetes в качестве хоста вычислительного портала, в ходе которого были выявлены основные функции и возможности системы, а так же проведено сравнение с другими решениями для создания вычислительных порталов;
• создана тестовая платформа для развертки сервисов на языке Python с использованием библиотеки для разработки web-приложений Flask, изолированной базы данных SQLite; данная платформа не использует большого количества ресурсов и поддерживает запаковку в изолированный контейнер, что вписывается в общую концепцию контейнеризации;
• проведен обзор доступных технологий, используемых для создания унифицированных самоизолированных сервисов ; в качестве такой технологии была выбрана контейнеризация, как наиболее востребованная в современном мире и предоставляющая как простоту развертки, так и универсальность;
• рассмотрены способы межмодульного взаимодействия; в качестве такого способа выступает изоляция отдельных модулей в различных Pod^, т.к. передача данных между модулями не предусматривается, а для взаимодействия модулей со специфичным ПО используются общие дисковые тома, подключаемые непосредственно к контейнеру с сервисом;
• произвести тестирование развернутых сервисов на изолированном локальном кластере Kubernetes с использованием minikube в качестве основной тестирующей среды; тестирование продемонстрировало, что взаимодействие между сервисами и самим локальным окружением выстроено корректно, ввиду того, что сервисы «видимы» друг для друга, а сам Kubernetes занимается как выделением ресурсов для Pod^, равно как и занимается их сетевой маршрутизацией.



