Тема: ПЛАНИРОВЩИК ЗАДАЧ НА ДИНАМИЧЕСКИ РАСШИРЯЕМОМ КЛАСТЕРЕ MESOS
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Введение 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 в качестве сервиса оркестрации, однако на рынке существуют другие системы подобного рода, некоторые из которых в последние года приобрели большую популярность, например, Kubernetes [35]. На самом деле, задача запуска процессов на кластере, которые необходимо выполнить как можно быстрее, даже за счёт выделения дополнительных платных ресурсов, может быть рассмотрена в отрыве Mesos, Kubernetes или другой конкретной технологии подобного вида. Теоретически, в разработанной системе можно абстрагировать слой, работающий с Mesos, выделив набор операций с определённой структурой и семантикой, который будет допускать конкретные реализации для различных сервисов оркестрации. Иначе говоря, спроектировать интерфейс и сделать всю работу с Mesos лишь одной из его реализаций. В этом случае получим систему более общего назначения, оставляющую за пользователем право выбора определённого “движка” или даже реализации поддержки собственного. Эта задача сама по себе заслуживает нетривиального анализа многих сложных технологий для проработки не менее сложного интерфейса, но теоретически выглядит реализуемой.
В качестве другой потенциальной точки расширения можно рассмотреть стратегию выбора очередной задачи для запуска на кластере. Если вспомнить рассмотренную архитектуру системы, то можно придать сомнению текущий подход, который WorkloadSupervisorActor применяет для принятия или отклонения очередного оффера от Mesos. А именно, он всегда ориентируется на запросы первой задачи в очереди, что не всегда оправдано. В некоторых случаях задача с большими запросами ресурсов будет причиной отказа от многих офферов, несмотря на то, что после неё в очереди находятся менее требовательные задачи, которые можно было бы запустить до последующего расширения кластера. Процесс принятия решения в отношении поступившего набора офферов на основании всей очереди задач вполне может быть представлен в виде интерфейса, допускающего различные реализации, в том числе текущую. Поскольку в рамках данной работы не ставилось такого требования, в целях экономии времени такая возможность кастомизации не была реализована, но в целом имеет смысл.
...





