Введение 6
1 Разработка программных средств для реализации
автоматического конвертирования образов систем 7
1.1 Анализ предметной области 7
1.2 Сравнительный анализ программных продуктов-аналогов 8
1.2.1 Анализ Image2Docker 9
1.2.2 Анализ RancherVM 9
1.2.3 Результаты проведенного анализа 11
1.3 Постановка задачи 11
1.4 Анализ требований программного средства автоматического
конвертирования образов систем 12
1.4.1 Функциональные требования программного средства 13
1.4.2 Нефункциональные требования программного средства 17
2 Проектирование программных средств 18
2.1 Проектирование виртуализации дискового пространства
исходного образа системы 18
2.2 Проектирование проверки требований используемой
операционной системы 22
2.3 Проектирование генерации Dockerfile для управления
платформой Docker 23
3 Реализация программного средства для автоматического
конвертирования образов систем 27
4 Тестирование программного средства 31
4.1 Рефакторинг кода 33
5 Планирование разработки и оценка бюджета 35
Заключение 39
Список использованных источников 41
Приложение А Глоссарий 43
Приложение Б Листинг программы 45
«Docker - программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации. Позволяет «упаковать» приложение или группу приложений со всем окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему, а также предоставляет среду по управлению контейнерами» [1].
Контейнер - это изолированная от основной операционной системы совокупность процессов. Основным и главным отличием от виртуальных машин является виртуализация процессов, а не всей системы целиком. Тем самым, напрямую используются ресурсы основной машины, как подпроцесс без какой-либо эмуляции «машины в машине».
Данная работа является актуальной, так как существующие программные средства не обеспечивают удобства и полной универсальности в переносе связанных многомодульных систем. На смену виртуальных машин приходят контейнеры, которые осуществляют нагрузку на основную операционную систему намного меньшую, чем их конкурент. Данная технология является одним из приоритетов разработки крупных фирм, таких как Google и Amazon, начиная с 2014 года.
Ключевыми особенностями использования Docker являются:
- экономия значительных ресурсов ЭВМ при контейнеризации;
- перенос готовых контейнеров на другие машины осуществляется без использования сторонних модулей, то есть, если меняется операционная система хост-машины, контейнер будет работать после его переноса;
- виртуализация не всей операционной системы целиком, а лишь нужных процессов, которые необходимо добавить в контейнер.
Целью выпускной квалификационной работы является разработка программных средств для конвертирования образов виртуальных машин и использования их в среде Docker.
В ходе выполнения выпускной квалификационной работы разработаны программные средства для реализации автоматического конвертирования образов систем.
Был проведен анализ программ, доступных для автоматического переноса в контейнеры и их возможная совместимость. В рамках работы был проведен сравнительный анализ программных продуктов-аналогов. Были исследованы следующие продукты-аналоги. Каждый продукт-аналог был охарактеризован, были приведены его преимущества и недостатки.
На основе полученной информации была сформулирована задача на разработку программного средства, определены функциональные и нефункциональные требования к приложению.
Для решения данной задачи были выделены основные этапы построения данного программного средства:
- виртуализация дискового пространства исходного образа системы;
- проверка требований используемой операционной системы;
- генерация Dockerfile для управления платформой Docker;
Данные о проектировании представлены в виде диаграмм и сегментов кода, удовлетворяющим концепции разработки. С целью простоты понимания и дальнейшего усовершенствования кода была использована библиотека shellcheck.
В отличие от известных, разработанное программное средство обеспечивает удобство и полную универсальность в переносе связанных многомодульных систем. Данное приложение претендует на роль уникального на рынке программных средств.
Разработка программных средств проводилась на языках программирования Bash и Python в средах Visual Studio Code и JetBrains PyCharm в операционной системе Windows. Тестирование и отладка проводилась на основе Docker в операционной системе Ubuntu Server 18.04 LTS семейства Linux. Все тесты были успешно пройдены и в результате тестирования не выявлено ошибок.
В ходе работы было проведено планирование и оценка бюджета разработки при помощи программы для управления проектами Microsoft Project. Трудозатраты составили 280 человеко-часов. Затраты на проект составили 38523 рубля. Время разработки составило 27 рабочих дней.
Таким образом, в результате выполнения квалификационной работы были разработаны программные средства для реализации автоматического конвертирования образов систем, которые удовлетворяют требованиям технического задания.