Тема: Разработка сервиса для работы с porto-слоями
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1. Обзор предметной области 6
1.1. Porto: предпосылки создания 6
1.2. Porto-слои 6
1.3. Системы Nirvana и YTsaurus 7
1.4. Ранее реализованная функциональность 8
2. Постановка задачи 9
3. Требования 10
3.1. Потенциальные пользователи 10
3.2. Функциональные требования 10
3.3. Нефункциональные требования 11
4. Архитектура 13
5. Особенности реализации 15
5.1. Поиск по porto-слоям 15
5.2. Версионирование porto-слоёв 16
5.3. Настройка прав доступа к porto-слоям 17
5.4. Сложности, возникшие в процессе реализации 17
5.4.1. Миграции базы данных без долгих блокировок . . 18
5.4.2. Обеспечение обратной совместимости 19
6. Тестирование и апробация 20
6.1. Тестирование 20
6.2. Апробация 21
Заключение 22
Список литературы 23
📖 Введение
Porto-слой является отдельным набором директорий с файлами, по структуре повторяющий Unix-систему и служащий для запуска задач в предсказуемом окружении. Porto-слои — де-факто стандарт внутри компании Яндекс для запуска задач в предсказуемом окружении. Они используются в вычислительных сервисах различного назначения, на-пример, в YTsaurus [3] — в сервисе распределённого хранения больших объёмов данных и распределённых MapReduce [4] вычислений. Кроме того, porto-слои используются для организации непрерывной интеграции (continuous integration, CI) и непрерывной доставки (continuous delivery, CD) кода во внутренней системе контроля версий.
Однако работа со слоями далека от того, чтобы быть удобной и прозрачной. Во многих сервисах можно лишь указать идентификатор слоя, который нужно использовать для запуска задачи, но нельзя посмотреть никакую информацию о слое и тем более найти подходящий слой. Лишь в сервисе Nirvana [5] (неспециализированная облачная платформа для визуализации, управления и запуска вычислительных процессов) уже реализован просмотр списка слоёв с различными фильтрами и сортировками, просмотр метаинформации слоя и сборка нового слоя.
В рамках данной работы предлагается вынести эту функциональность в отдельный сервис — реестр porto-слоёв внутри компании, а также реализовать настройку прав доступа и просмотр истории версий слоя и их списаний. Ожидается, что новый сервис повысит не только удобство работы с porto-слоями, но и переиспользуемость слоёв внутри компании. Это в свою очередь повысит эффективность выполнения задач в сервисах YTsaurus и Nirvana за счёт того, что популярные слои закэшируются на узлах вычислительных кластеров.
✅ Заключение
• Выявлены потенциальные пользователи сервиса, проведен сбор их пожеланий к функциональности. Сформулированы функциональные и нефункциональные требования.
• Уточнена архитектура сервиса. Проведена интеграция с сервисом управления доступами пользователей. Сервис реализован на языке Java с использованием фреймворков Spring Boot, Maven и библиотеки Hibernate.
• Улучшен поиск по porto-слоям и добавлена следующая функциональность: версионирование porto-слоев и возможность настройки прав доступа к porto-слоям.
• Написаны unit-, mock- и интеграционные тесты для проверки корректности работы сервиса. В ходе выпуска релиза, а конкретно проведения миграции базы данных, удалось избежать недоступности сервиса. Проведена апробация сервиса пользователями, ни-какой из бизнес-процессов не был сломан. Пользователи отметили повышение удобства работы с porto-слоями.



