Тип работы:
Предмет:
Язык работы:


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

Работа №141919

Тип работы

Дипломные работы, ВКР

Предмет

изобразительное искусство

Объем работы24
Год сдачи2023
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
22
Не подходит работа?

Узнай цену на написание


Введение 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 и 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 источника


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


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