ВВЕДЕНИЕ 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
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
В настоящее время все сильнее прослеживается тенденция к переходу от классической модели распространения ПО к облачным технологиям. Облачные сервисы позволили уравнять в ИТ-возможностях и малый бизнес, и крупные компании. Сегодня облачные сервисы и приложения — идеальный вариант для большинства начинаний в сфере 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]. легли в основу реализации вспомогательных модулей, используемых для дальнейшей работы .
В результате проведённой работы достигнуты следующие результаты:
• проведен анализ системы управления контейнерами Kubernetes в качестве хоста вычислительного портала, в ходе которого были выявлены основные функции и возможности системы, а так же проведено сравнение с другими решениями для создания вычислительных порталов;
• создана тестовая платформа для развертки сервисов на языке Python с использованием библиотеки для разработки web-приложений Flask, изолированной базы данных SQLite; данная платформа не использует большого количества ресурсов и поддерживает запаковку в изолированный контейнер, что вписывается в общую концепцию контейнеризации;
• проведен обзор доступных технологий, используемых для создания унифицированных самоизолированных сервисов ; в качестве такой технологии была выбрана контейнеризация, как наиболее востребованная в современном мире и предоставляющая как простоту развертки, так и универсальность;
• рассмотрены способы межмодульного взаимодействия; в качестве такого способа выступает изоляция отдельных модулей в различных Pod^, т.к. передача данных между модулями не предусматривается, а для взаимодействия модулей со специфичным ПО используются общие дисковые тома, подключаемые непосредственно к контейнеру с сервисом;
• произвести тестирование развернутых сервисов на изолированном локальном кластере Kubernetes с использованием minikube в качестве основной тестирующей среды; тестирование продемонстрировало, что взаимодействие между сервисами и самим локальным окружением выстроено корректно, ввиду того, что сервисы «видимы» друг для друга, а сам Kubernetes занимается как выделением ресурсов для Pod^, равно как и занимается их сетевой маршрутизацией.
1. Маркелов, А. А. Введение в технологию контейнеров и Kubernetes [Электронный ресурс] / А. А. Маркелов. — Москва : ДМК Пресс, 2019. — 194 с. — ISBN 978-5-97060-775-6. — // Лань : электронно-библиотечная система. — URL:https://edanbook.com/book/131702.— Режим доступа: для авториз. пользователей.
2. Лукша, М. Kubernetes в действии [Электронный ресурс] / М. Лукша; перевод с английского А. В. Логунов. — Москва : ДМК Пресс, 2019. — 672 с. — ISBN 978-5-97060-657-5. — // Лань : электронно-библиотечная система. — URL:https://edanbook.com/book/131688.— Режим доступа: для авториз. пользователей.
3. Гудов А. М. Инженерный вычислительный портал для решения
экологических задач [Текст] / А. М. Гудов, С. Ю. Завозкин, И. Ю. Сотников // Экология и безопасность в техносфере: современные проблемы и пути решения : сборник трудов Всероссийской научно-практической
конференции молодых ученых, аспирантов и студентов, г. Юрга, 23-25 ноября 2017 г. — Томск : Изд-во ТПУ, 2017. — [С. 455-460].
4. Гудов А. М. Один из подходов к созданию вычислительных сервисов для инженерного вычислительного портала [Текст] / А. М. Гудов, С. Ю. Завозкин, И. Ю. Сотников // Цифровые технологии в образовании, науке, обществе : материалы XII всероссийской науч.-практ. конф. (4 - 6 декабря 2018 года). — Петрозаводск, 2018. — 268 с. — [С. 85 - 89].
5. Гудов А. М. Механизм создания вычислительных сервисов для инженерного вычислительного портала [Текст] / А. М. Гудов, И. Ю. Сотников // Тезисы XIX Всероссийской конференции молодых учёных по математическому моделированию и информационным технологиям. г. Кемерово, Россия, 29 октября - 2 ноября 2018 г. — Новосибирск: ИВТ СО РАН, 2018. — 94 стр. — [С. 77 - 78].
6. Доррер, Г.А. Теория информационных процессов и систем [Электронный ресурс] : учеб. пособие / Г.А. Доррер .— Красноярск : СибГТУ, 2008 .— 196 с. — Режим доступа:https://rucont.ru/efd/206257
7. Горлушкина, Н. Н. Системный анализ и моделирование информационных процессов и систем [Текст] : учебное пособие / Н. Н. Горлушкина. — Санкт-Петербург : НИУ ИТМО, 2016. — 120 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://edanbook.com/book/110469.— Режим доступа: для авториз. пользователей.
8. Бизли, Д. Python. Подробный справочник [Электронный ресурс] / Д. Бизли. - Пер. с англ. - СПб.: Символ-Плюс, 2010. - 864 с. - Режим доступа: http://prog.tversu.ru/library/Python.pdf.
9. Лутц, М. Программирование на Python, 4-е издание в 2-х томах [Текст] / М. Лутц. - М.: Символ-Плюс, 2011. - 992 с.
10. Что такое Kubernetes [Электронный ресурс] / Авторы Kubernetes,
2020. - Режим доступа:kubernetes.io/ru/docs/concepts/overview/what-is-
kubernetes/
11. Компоненты Kubernetes [Электронный ресурс] / Авторы Kubernetes, 2020. - Режим доступа:kubernetes .io/ru/docs/concepts/overview/components/
12. Сидоров А. Так что же такое pod в Kubernetes? [Электронный ресурс]
/ А. Сидоров. - Хабр, 2020. - Режим доступа:
https://habr.com/ru/company/flant/blog/427819/
13. Что вас ждёт до, после и во время перехода на Kubernetes [Электронный ресурс] / Новосибирск : ООО «Тру Инжиниринг», 2020. — Режим доступа:https://trueengineering.ru/ru/cases/k8s for business
14. Облачные вычисления второго поколения: Система CLAVIRE [Электронный ресурс] / Университет ИТМО. - Хабр, 2017. - Режим доступа:https://habr.com/ru/company/spbifmo/blog/319688/
15. Белоножко П.П. Свободные облачные аппаратно-программные платформы. Аналитический обзор [Электронный ресурс] // Белоножко П. П., Белоус В. В., Куцевич Н. А., Храмов Д. А. Вестник евразийской науки. 2016. №6 (37). Режим доступа:https://cyberleninka.ru/article/n/svobodnye-oblachnye-apparatno-programmnye-platformy-analiticheskiy-obzor
16. Руководство по Kubernetes, часть 1: приложения, микросервисы и контейнеры [Электронный ресурс] / ru_vds. - Хабр, 2019. - Режим доступа: https://habr.com/ru/company/ruvds/blog/438982/
17. Изучение подов и узлов [Электронный ресурс] / Авторы Kubernetes,
2020. - Режим доступа:https://kubernetes.io/ru/docs/tutorials/kubernetes-
basics/explore/explore-intro/
18. Три уровня автомасштабирования в Kubernetes: как их эффективно использовать [Электронный ресурс] / pxeno, Блог компании Mail.ru Group, 2020. - Режим доступа:https://habr.com/ru/company/mailru/blog/484344/
19. Степанов И.Ю. Применение ГИС-технологий в задачах моделирования процессов загрязнения окружающей среды : магистерская диссертация [ Текст ] / И.Ю. Степанов. Кемерово, КемГУ. - 2019 г. - 52 с.
20. Procida C. Getting Started with Kubernetes via Minikube [Электронный
ресурс] / C. Procida, Medium. - 2016. - Режим доступа:
https://medium.com/@claudiopro/getting-started-with-kubernetes-via-minikube-ada8c7a29620
21. Hale J. Learn Enough Docker to be Useful [Электронный ресурс] / J.
Hale, Towards Data Science. - 2019. - Режим доступа:
https://towardsdatascience.com/learn-enough-docker-to-be-useful-b0b44222eef5
22. Шпаргалка по kubectl [Электронный ресурс] / Авторы Kubernetes,
2020. - Режим доступа:
https://kubernetes.io/ru/docs/reference/kubectl/cheatsheet/