Детальная информация

Название: Управление развертыванием микросервисов с сохранением обратной совместимости API: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_02 «Технологии разработки программного обеспечения»
Авторы: Киселев Никита Дмитриевич
Научный руководитель: Стручков Игорь Вячеславович
Другие авторы: Нестеров Сергей Александрович
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2021
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: обратная совместимость; непрерывное развертывание; API; микросервисная архитектура; service mesh; оркестровка; OpenAPI; Kubernetes; backward compatibility; continuous integration; microservice architecture; orchestration
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Бакалавриат
Код специальности ФГОС: 09.03.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
Ссылки: Отзыв руководителя; Рецензия; Отчет о проверке на объем и корректность внешних заимствований
DOI: 10.18720/SPBPU/3/2021/vr/vr21-705
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: ru\spstu\vkr\12823

Разрешенные действия:

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа: Анонимные пользователи

Сеть: Интернет

Аннотация

Одной из проблем в области разработки и сопровождения систем с микросервисной архитектурой является трудоемкость процесса обновления программных интерфейсов приложений (API) с сохранением обратной совместимости и постоянной работоспособности системы. В работе предлагается подход к решению данной проблемы – метод автоматического определения и развертывания группы сервисов за счет использования возможностей инфраструктурных механизмов, таких как оркестровка и сервисная сеть. Предложенный метод был реализован в виде библиотеки интеграции и сервиса оркестратора Kubernetes, управляющего процессами развертывания и маршрутизации. Полученные результаты тестирования показывают существенное повышение автоматизации процесса обновления API.

One of the problems in the development and maintenance of systems with a microservice architecture is the laboriousness of the process of updating application programming interfaces (API) while maintaining backward compatibility and constant system availability. The paper proposes a solution to the problem - a method of automated deployment and management of a group of services by using the capabilities of infrastructure mechanisms such as orchestration and service mesh. The proposed method was implemented in the form of an integration library and a Kubernetes service that manages the deployment and routing processes. The obtained test results show a significant increase in the automation of an API update process.

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
Внешние организации №2 Все Прочитать
Внешние организации №1 Все
Интернет Авторизованные пользователи СПбПУ Прочитать Печать Загрузить
Интернет Авторизованные пользователи (не СПбПУ, №2) Прочитать
Интернет Авторизованные пользователи (не СПбПУ, №1)
-> Интернет Анонимные пользователи

Оглавление

  • ВВЕДЕНИЕ
  • 1. Анализ области сохранения обратной совместимости API
    • 1.1. Анализ актуальности
    • 1.2. Анализ требований
    • 1.3. Обзор существующих решений
      • 1.3.1. Ручной контроль последовательности развертывания
      • 1.3.2. Переключение версии по флагу
      • 1.3.3. Синхронизация развертывания через переключение маршрутизации
      • 1.3.4. Версионирование
      • 1.3.5. Использование эволюционирующих протоколов для API
      • 1.3.6. Ограничение изменений
    • 1.4. Итоги анализа существующих решений
  • 2. Обзор предлагаемого решения
    • 2.1. Оркестровка
    • 2.2. Сервисная сеть
    • 2.3. Проверка совместимости API
    • 2.4. Алгоритм переключения сервисов
    • 2.5. Анализ предложенного решения
  • 3. Архитектура предлагаемого решения
    • 3.1. Оркестратор
      • 3.1.1. Kubernetes
      • 3.1.2. Docker swarm
      • 3.1.3. Сравнение и выбор оркестратора
    • 3.2. Cервисная сеть
      • 3.2.1. Linkerd
      • 3.2.2. Istio
      • 3.2.3. Сравнение и выбор сервисной сети
    • 3.3. Механизм документации API
      • 3.3.1. OpenAPI
    • 3.4. Определение основных модулей системы
  • 4. Разработка системы управления развертыванием
    • 4.1. Библиотека интеграции
      • 4.1.1. Разметка API
      • 4.1.2. Динамический REST клиент
      • 4.1.3. Предоставление манифеста API
    • 4.2. Оркестратор развертывания
      • 4.2.1. Клиент Kubernetes
      • 4.2.2. Маршрутизация трафика
      • 4.2.3. API оркестратора (meta API client)
      • 4.2.4. Контроль версионирования API
  • 5. Тестирование
    • 5.1. Разработка тестового стенда
    • 5.2. Разработка приложения для тестирования
    • 5.3. Процесс тестирования
    • 5.4. Результат тестирования
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ 1. СПЕЦИФИКАЦИИ
  • ПРИЛОЖЕНИЕ 2. ЛИСТИНГИ

Статистика использования

stat Количество обращений: 6
За последние 30 дней: 3
Подробная статистика