📄Работа №195199

Тема: ПЛАНИРОВЩИК ЗАДАЧ НА ДИНАМИЧЕСКИ РАСШИРЯЕМОМ КЛАСТЕРЕ MESOS

📝
Тип работы Дипломные работы, ВКР
📚
Предмет информатика
📄
Объем: 68 листов
📅
Год: 2020
👁️
Просмотров: 36
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

Аннотация
Введение 5
1 Обзор Apache Mesos 8
2 Обзор аналогов 12
3 Требования к системе 19
3.1 Функциональные требования 19
3.2 Нефункциональные требования 20
4 Проектирование системы 23
4.1 HTTP интерфейс 23
4.2 Модель акторов 25
4.3 Подсистема запуска задач на кластере Mesos 28
4.4 Подсистема изменения размеров кластера Mesos 31
4.5 Точки расширения системы 34
4.5.1 Поддержка новых стратегий изменения размеров кластера 35
4.5.2 Поддержка новых источников вычислительных ресурсов 38
4.6 Структура пакетов 43
5 Реализация системы 45
5.1 Подготовка окружения. Travis CI 45
5.2 Простая стратегия изменения размеров кластера 51
5.3 Поддержка облачного провайдера Digital Ocean 52
Заключение 57
Список использованных источников и литературы 60
Приложение А OpenAPI спецификация HTTP интерфейса системы

📖 Введение

В настоящее время распределённые вычисления пользуются большой популярностью, поскольку они предоставляют возможность обрабатывать гораздо большие объёмы данных, нежели одиночные вычислительные устройства. Нередко высоконагруженные системы могут включать в себя десятки, сотни и даже тысячи серверов, объединяясь в кластеры и образуя сложные топологии. Эти кластеры сложно не только администрировать, но и эффективно распределять доступные ресурсы кластера в зависимости от текущей нагрузки и имеющихся потребностей в работе приложений. Поэтому возникает необходимость в создании централизованных отказоустойчивых систем для управления кластером, которые полностью берут на себя функции оркестрации запускаемых в нём приложений. Таким образом, написание приложений для кластера становится намного проще, так как в них реализуется только необходимая бизнес-логика, а управлением необходимыми приложению ресурсами занимается уже другая система.
Также за последние годы сильно увеличилась доля использования виртуальных серверов, предоставляемых так называемыми облачными провайдерами. В первую очередь это связано с тем, что благодаря таким сервисам удается достичь значительного уменьшения затрат на приобретение вычислительных ресурсов на ранних этапах проекта. Аренда виртуального сервера на несколько месяцев обойдётся гораздо дешевле, чем покупка полноценного мощного сервера, средств на который на старте проекта может не быть. Экономить также помогает гибкость, заключающаяся в возможности довольно сильно кастомизировать конфигурацию арендуемых серверов: увеличивать или уменьшать объём мощностей по требованию, без дорогостоящих ручных миграций. Кроме того, тенденцию на использование таких виртуальных машин можно объяснить простотой использования: настройка и обслуживание собственного сервера является весьма трудоемкой задачей, в то время как облачные провайдеры берут эти активности на себя.
Компания, в которой работает автор данной работы, занимается реализацией и поддержкой зарубежного коммерческого проекта, в котором также возникла необходимость запускать и отслеживать процессы на кластере, работающем с использованием мощностей виртуальных машин. Для решения этих задач, в проекте используется Apache Mesos (далее - Mesos). Mesos представляет собой дополнительный слой абстракции, инкапсулирующий детали расположения и доступа к конкретным вычислительным узлам, представляя весь кластер как набор ресурсов: центральных и графических процессоров, оперативной памяти, дискового пространства и так далее. Mesos широко используется многими коммерческими гигантами, такими как Apple, Twitter, eBay, Uber и другими . Для выполнения некоторых сложных задач требуется большое количество ресурсов, поэтому в проекте иногда возникает проблема нехватки ресурсов кластера. Только после добавления администратором кластера новых ресурсов сложные задачи могут запуститься. Но после их завершения возникает ещё одна проблема - добавленные ресурсы могут не использоваться проектом довольно продолжительное время. Сам Mesos автоматически не изменяет размер кластера, поскольку не анализирует нагрузку процессов, работающих в кластере.
...

Возникли сложности?

Нужна качественная помощь преподавателя?

👨‍🎓 Помощь в написании

✅ Заключение

В рамках данной работы была разработана система, полностью отвечающая поставленным требованиям. Таким образом, цель работы - разработка системы, позволяющей запускать задачи на вычислительном кластере Mesos и автоматически увеличивать или уменьшать размер этого кластера в зависимости от потребностей запускаемых приложений - достигнута. Система протестирована с использованием облачного провайдера Digital Ocean, а также предоставляет точки расширения, позволяющие реализовать поддержку других облачных провайдеров, а также различные стратегии принятия решений об изменении размеров кластера, исходя из потребностей конкретной предметной области. Эти точки расширения задокументированы для облегчения их использования разработчиками, не имеющими полного представления об архитектуре системы. В настоящее время для внедрения в проект требуется реализация конкретной стратегии изменения размеров кластера, для чего необходимо провести анализ нагрузки в виде задач, которые уже запускаются в проекте. Также в проекте используется другой облачный провайдер, который в рамках данной работы использовать было нецелесообразно ввиду дороговизны его услуг. В то же время, Digital Ocean предоставил некоторое количество предоплаченных услуг в рамках помощи студенческим проектам, за что автор работы премного ему благодарен. Это позволило тестировать частое создание и удаление платных виртуальных машин в процессе отладки системы, что повлекло бы значительные финансовые траты при работе с целевым для проекта облачным провайдером.
Помимо вышеупомянутых точек расширения, система имеет большой потенциал в своём развитии. Как видно из названия работы, система работает исключительно с Mesos в качестве сервиса оркестрации, однако на рынке существуют другие системы подобного рода, некоторые из которых в последние года приобрели большую популярность, например, Kubernetes [35]. На самом деле, задача запуска процессов на кластере, которые необходимо выполнить как можно быстрее, даже за счёт выделения дополнительных платных ресурсов, может быть рассмотрена в отрыве Mesos, Kubernetes или другой конкретной технологии подобного вида. Теоретически, в разработанной системе можно абстрагировать слой, работающий с Mesos, выделив набор операций с определённой структурой и семантикой, который будет допускать конкретные реализации для различных сервисов оркестрации. Иначе говоря, спроектировать интерфейс и сделать всю работу с Mesos лишь одной из его реализаций. В этом случае получим систему более общего назначения, оставляющую за пользователем право выбора определённого “движка” или даже реализации поддержки собственного. Эта задача сама по себе заслуживает нетривиального анализа многих сложных технологий для проработки не менее сложного интерфейса, но теоретически выглядит реализуемой.
В качестве другой потенциальной точки расширения можно рассмотреть стратегию выбора очередной задачи для запуска на кластере. Если вспомнить рассмотренную архитектуру системы, то можно придать сомнению текущий подход, который WorkloadSupervisorActor применяет для принятия или отклонения очередного оффера от Mesos. А именно, он всегда ориентируется на запросы первой задачи в очереди, что не всегда оправдано. В некоторых случаях задача с большими запросами ресурсов будет причиной отказа от многих офферов, несмотря на то, что после неё в очереди находятся менее требовательные задачи, которые можно было бы запустить до последующего расширения кластера. Процесс принятия решения в отношении поступившего набора офферов на основании всей очереди задач вполне может быть представлен в виде интерфейса, допускающего различные реализации, в том числе текущую. Поскольку в рамках данной работы не ставилось такого требования, в целях экономии времени такая возможность кастомизации не была реализована, но в целом имеет смысл.
...
Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

1. Powered By Mesos [Электронный ресурс] - URL:
http://mesos.apache.org/documentation/latest/powered-by-mesos/ (дата
обращения: 02.10.2019)
2. Apache Mesos - Building [Электронный ресурс] - URL: http://mesos.apache.org/documentation/latest/building/ (дата обращения: 04.10.2019)
3. Scheduler HTTP API [Электронный ресурс] - URL:
http://mesos.apache.org/documentation/latest/scheduler-http-api/ (дата
обращения: 06.10.2019)
4. Apache Mesos - Software Projects Built on Mesos [Электронный ресурс] - URL: http://mesos.apache.org/documentation/latest/frameworks/ (дата обращения: 06.04.2020)
5. vamp.io - Cloud-Native Release Orchestration [Электронный ресурс] - URL: https://vamp.io/ (дата обращения: 06.04.2020)
6. Marathon: A container orchestration platform for Mesos and DC/OS [Электронный ресурс] - URL: https://mesosphere.github.io/marathon/ (дата обращения: 07.11.2019)
7. Metronome: Cron Service for DC/OS [Электронный ресурс] - URL: https://dcos.github.io/metronome/ (дата обращения: 07.11.2019)
8. Elasticsearch: The Official Distributed Search & Analytics Engine | Elastic [Электронный ресурс] - URL: https://www.elastic.co/elasticsearch/ (дата обращения: 06.04.2020)
9. douban/tfmesos: Tensorflow in Docker on Mesos #tfmesos #tensorflow #mesos [Электронный ресурс] - URL: https://github.com/douban/tfmesos (дата обращения: 06.04.2020)
10. TensorFlow [Электронный ресурс] - URL: https://www.tensorflow.org/ (дата обращения: 06.04.2020)
11. Artificial Intelligence Computing Leadership from NVIDIA [Электронный ресурс] - URL: https://www.nvidia.com/en-us/ (дата обращения: 06.04.2020)
12. Representational state transfer - Wikipedia [Электронный ресурс] - URL: https://en.wikipedia.org/wiki/Representational state transfer (дата обращения: 23.11.2019)
13. Akka: build concurrent, distributed, and resilient message-driven applications for Java and Scala [Электронный ресурс] - URL: https://akka.io/ (дата обращения: 01.12.2019)
14. SQLite Home Page [Электронный ресурс] - URL: https://www.sqlite.org/index.html (дата обращения: 06.12.2019)
15. OpenAPI Specification - Version 3.0.2 | Swagger [Электронный ресурс] - URL: https://swagger.io/specification/ (дата обращения: 30.03.2020)
16. JSON [Электронный ресурс] - URL: https://www.json.org/ (дата обращения: 09.01.2020)
17. Модель акторов — Википедия [Электронный ресурс] - URL: https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB %D 1 %8C%D0%B0%D0%BA%D 1 %82%D0%BE%D 1 %80%D0%BE%D0% B2 (дата обращения: 23.01.2020)
18. Реактивные приложения на Java с Akka | DOU [Электронный
ресурс] - URL:
https://dou.ua/lenta/articles/Reactive-Applications-in-Java-with-Akka/ (дата обращения: 01.04.2020)
.... всего 35 источников

🖼 Скриншоты

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.

©2026 Cервис помощи студентам в выполнении работ