📄Работа №141919

Тема: Разработка сервиса для работы с porto-слоями

Характеристики работы

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

📋 Содержание

Введение 4
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-слоёв для внутренней инфраструктуры компании Яндекс. Актуальность исследования обусловлена отсутствием единого удобного инструмента для управления porto-слоями, которые являются стандартом для изоляции и предсказуемого окружения задач в таких сервисах, как YTsaurus и Nirvana, что затрудняет их поиск, анализ и повторное использование. В ходе работы на основе анализа потребностей пользователей были сформулированы функциональные и нефункциональные требования, после чего сервис был реализован на Java с использованием стека технологий Spring Boot, Hibernate и PostgreSQL. Ключевыми результатами стали: создание улучшенного механизма поиска по слоям, внедрение системы версионирования и настройки прав доступа, а также обеспечение обратной совместимости и бесперебойной миграции базы данных. Практическая значимость заключается во внедрении данного сервиса в инфраструктуру Яндекс, что позволяет повысить удобство работы разработчиков, увеличить переиспользуемость слоев и, как следствие, эффективность выполнения задач за счёт кэширования популярных окружений на вычислительных узлах. Анализ литературных источников подтвердил базовые принципы контейнеризации и используемые технологии. Внедрение сервиса прошло успешную апробацию, в ходе которой пользователи отметили повышение удобства работы без нарушения существующих бизнес-процессов.

📖 Введение

Каждому сервису, предоставляющему вычислительные ресурсы, требуется обеспечить изоляцию пользовательских пространств как друг от друга, так и от возможного негативного воздействия на операцион­ную систему, в которой они исполняются. Пользователям этих сервисов для запуска вычислительных процессов, кроме изоляции, необходимо настроенное определённым образом окружение — установленные паке­ты и библиотеки. В компании Яндекс окружения и их изоляция в ос­новном реализуются с помощью Porto и Docker. Porto — система контейнеризации, разработанная внутри компании.
Porto-слой является отдельным набором директорий с файлами, по структуре повторяющий Unix-систему и служащий для запуска задач в предсказуемом окружении. Porto-слои — де-факто стандарт внутри компании Яндекс для запуска задач в предсказуемом окружении. Они используются в вычислительных сервисах различного назначения, на­пример, в YTsaurus — в сервисе распределённого хранения больших объёмов данных и распределённых MapReduce вычислений. Кро­ме того, porto-слои используются для организации непрерывной инте­грации (continuous integration, CI) и непрерывной доставки (continuous delivery, CD) кода во внутренней системе контроля версий.
Однако работа со слоями далека от того, чтобы быть удобной и про­зрачной. Во многих сервисах можно лишь указать идентификатор слоя, который нужно использовать для запуска задачи, но нельзя посмотреть никакую информацию о слое и тем более найти подходящий слой. Лишь в сервисе Nirvana (неспециализированная облачная платформа для визуализации, управления и запуска вычислительных процессов) уже реализован просмотр списка слоёв с различными фильтрами и сорти­ровками, просмотр метаинформации слоя и сборка нового слоя.
В рамках данной работы предлагается вынести эту функциональ­ность в отдельный сервис — реестр porto-слоёв внутри компании, а также реализовать настройку прав доступа и просмотр истории версий слоя и их списаний. Ожидается, что новый сервис повысит не только удобство работы с porto-слоями, но и переиспользуемость слоёв внут­ри компании. Это в свою очередь повысит эффективность выполнения задач в сервисах YTsaurus и Nirvana за счёт того, что популярные слои закэшируются на узлах вычислительных кластеров.

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

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

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

✅ Заключение

В ходе данной работы были получены следующие результаты.
• Выявлены потенциальные пользователи сервиса, проведен сбор их пожеланий к функциональности. Сформулированы функцио­нальные и нефункциональные требования.
• Уточнена архитектура сервиса. Проведена интеграция с серви­сом управления доступами пользователей. Сервис реализован на языке Java с использованием фреймворков Spring Boot, Maven и библиотеки Hibernate.
• Улучшен поиск по porto-слоям и добавлена следующая функцио­нальность: версионирование porto-слоев и возможность настройки прав доступа к porto-слоям.
• Написаны unit-, mock- и интеграционные тесты для проверки корректности работы сервиса. В ходе выпуска релиза, а конкретно проведения миграции базы данных, удалось избежать недоступ­ности сервиса. Проведена апробация сервиса пользователями, ни­какой из бизнес-процессов не был сломан. Пользователи отметили повышение удобства работы с porto-слоями.
Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

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

[1] Yandex. Yet another Linux container management system. — Access mode: https://github.com/yandex/porto (online; accessed: 2022­12-20).
[2] Docker Inc. Docker documentation. — Access mode: https://docs. docker.com/ (online; accessed: 2022-12-20).
[3] YTsaurus. Documentation. — Access mode: https://ytsaurus. tech/docs/en/ (online; accessed: 2022-12-20).
[4] Wikipedia. MapReduce.—Access mode: https://en.wikipedia. org/wiki/MapReduce (online; accessed: 2022-12-20).
[5] Яндекс. Познаём Нирвану — универсальную вычислительную платформу Яндекса. — 2018. — Access mode: https://habr.com/ ru/company/yandex/blog/351016/ (online; accessed: 2022-12-20).
[6] AWS. Cloud Computing Services — Amazon Web Services. —Access mode: https://aws.amazon.com/ (online; accessed: 2022-12-20).
[7] Intel. What Is Hyper-Threading? — Access mode: https: //www.intel.co.uk/content/www/uk/en/gaming/resources/ hyper-threading.html (online; accessed: 2022-12-20).
[8] The Kernel Development Community. The Linux Kernel documenta­tion. — Access mode: https://www.kernel.org/doc/html/latest/ filesystems/tmpfs.html (online; accessed: 2022-12-20).
[9] JSON-RPC Working Group. JSON-RPC 2.0.— Access mode: https: //www.jsonrpc.org/specification (online; accessed: 2023-05-01).
[10] M. Thomson, C. Benfield. HTTP/2. — Access mode: https:// datatracker.ietf.org/doc/html/rfc9113 (online; accessed: 2023­05-01).
[11] Red Hat. Hibernate.—Access mode: https://hibernate.org (on­line; accessed: 2022-12-20).
[12] Jakarta Persistence Team. Jakarta Persistence 2.2. — Access
mode: https://jakarta.ee/specifications/persistence/2.2/
(online; accessed: 2022-12-20).
[13] The PostgreSQL Global Development Group. PostgreSQL: About. — Access mode: https://www.postgresql.org/about/ (online; ac­cessed: 2023-05-01).
[14] Spring. Spring Boot official web site.—Access mode: https:// spring.io/projects/spring-boot (online; accessed: 2022-12-20).
[15] Apache. Maven. — Access mode: https://maven.apache.org/ (on­line; accessed: 2022-12-20).
... всего 23 источника

🖼 Скриншоты

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

Работу высылаем в течении 5 минут после оплаты.
Предоставляемые услуги, в том числе данные, файлы и прочие материалы, подготовленные в результате оказания услуги, помогают разобраться в теме и собрать нужную информацию, но не заменяют готовое решение.
Укажите ник или номер. После оформления заказа откройте бота @workspayservice_bot для подтверждения. Это нужно для отправки вам уведомлений.

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