Реализация контрактного тестирования микросервисов

Руководитель от корпоративного партнера: Громов П., Пешков А., Шахматов А., GS Labs
Руководитель от Университета ИТМО: Маркина Татьяна Анатольевна, Университет ИТМО

Открытых вакансий: 1

Подать заявку в этот проект

Аннотация

Микросервисная архитектура широко распространена в настоящий момент и компании заинтересованы в быстрой эволюции своих сервисов и их API. Проблема заключается в том, что клиенты сервисов не всегда готовы к таким быстрым изменениям. Контрактное тестирование помогает договариваться сервису и клиентам о совместном развитии, решая проблемы удаления старого API без потери обратной совместимости и уведомлений клиентов о развитии сервиса.

Предлагается создать протокол контрактного тестирования, реализовать сервис регистратор и клиентские библиотеки для разных языков.

План действий

  1. Исследование архитектуры микросервисов.
  2. Исследование контрактного тестирования.
  3. Исследование аналогичных способов тестирования.
  4. Проектирование протокола контрактного тестирования.
  5. Разработка сервиса регистратора и клиентских бибилиотек для разных языков.

Стек технологий

  1. User and Organizations
    • Инструменты гибкой разработки Agile, Scrum, Kanban
    • Тайм-менеджмент и планирование временем
  2. System Modeling
    • Системное моделирование (UML)
    • Анализ требований
  3. System Architecture and Infrastructure
    • Методы проектирования программных систем
    • Методы проектирования интеллектуальных систем
    • Проектирование событийно-ориентированных систем
    • Организация параллельных и распределенных вычислений
    • Компьютерные сети
    • Виртуальные системы и сервисы
  4. Software Development
    • Программирование на языках Python, Golang
    • Frontend разработка с использованием HTML/CSS/JS
    • PostgreSQL, Redis, Distributed data stores, Real-time data processing

Кем станет студент по завершению магистратуры

В зависимости от выполняемых задач внутри проекта выпускник может стать:

  • исследователем
  • системным архитектором
  • ведущим разработчиком

Пререквизиты (входные требования)

Для участия в проекте необходимы базовые знания по следующим направлениям:

  • Дискретная математика
  • Математическая статистика
  • Теория алгоритмов
  • Математическая оптимизация
  • Математическая логика
  • Высшая математика
  • Основы программирования
  • Алгоритмы и структуры данных
  • Программная инженерия
  • Архитектура программных систем
  • Базы данных