Skip to content

Современные технологии разработки программного обеспечения. 5 курс

License

Notifications You must be signed in to change notification settings

itsecd/cloud-development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Современные технологии разработки программного обеспечения

Таблица с успеваемостью

Задание

Цель

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

Задачи

  • Реализация межсервисной коммуникации,
  • Изучение работы с брокерами сообщений,
  • Изучение архитектурных паттернов,
  • Изучение работы со средствами оркестрации на примере .NET Aspire,
  • Повторение основ работы с системами контроля версий,
  • Интеграционное тестирование.

Лабораторные работы

1. «Кэширование» - Реализация сервиса генерации контрактов, кэширование его ответов

В рамках первой лабораторной работы необходимо:

  • Реализовать сервис генерации контрактов на основе Bogus,
  • Реализовать кеширование при помощи IDistributedCache и Redis,
  • Реализовать структурное логирование сервиса генерации,
  • Настроить оркестрацию Aspire.
2. «Балансировка нагрузки» - Реализация апи гейтвея, настройка его работы

В рамках второй лабораторной работы необходимо:

  • Настроить оркестрацию на запуск нескольких реплик сервиса генерации,
  • Реализовать апи гейтвей на основе Ocelot,
  • Настроить балансировку нагрузки по заданному алгоритму.

3. «Интеграционное тестирование» - Реализация файлового сервиса и объектного хранилища, интеграционное тестирование бекенда

В рамках третьей лабораторной работы необходимо:

  • Добавить в оркестрацию объектное хранилище,
  • Реализовать файловый сервис, сериализующий сгенерированные данные в файлы и сохраняющий их в объектном хранилище,
  • Реализовать отправку генерируемых данных в файловый сервис посредством брокера,
  • Реализовать интеграционные тесты, проверяющие корректность работы всех сервисов бекенда вместе.

4. (Опционально) «Переход на облачную инфраструктуру» - Перенос бекенда в Yandex Cloud

В рамках четвертой лабораторной работы необходимо перенестиервисы на облако все ранее разработанные сервисы:

  • Клиент - в хостинг через отдельный бакет Object Storage,
  • Сервис генерации - в Cloud Function,
  • Апи гейтвей - в Serverless Integration как API Gateway,
  • Брокер сообщений - в Message Queue,
  • Файловый сервис - в Cloud Function,
  • Объектное хранилище - в отдельный бакет Object Storage,

Задание. Общая часть

Обязательно:

  • Реализация серверной части на .NET 8.
  • Оркестрация проектов при помощи .NET Aspire.
  • Реализация сервиса генерации данных при помощи Bogus.
  • Реализация тестов с использованием xUnit.
  • Создание минимальной документации к проекту: страница на GitHub с информацией о задании, скриншоты приложения и прочая информация.

Факультативно:

  • Реализация кастомного алгоритма балансировки нагрузки, не явялющегося аналогом доступного в Ocelot из коробки
  • Перенос бекенда на облачную инфраструктуру Yandex Cloud

Внимательно прочитайте дискуссии о том, как работает автоматическое распределение на ревью. Сразу корректно называйте свои pr, чтобы они попали на ревью нужному преподавателю.

По итогу работы в семестре должна получиться следующая информационная система:

C4 диаграмма Современные_технологии_разработки_ПО_drawio

Варианты заданий

Номер варианта задания присваивается в начале семестра. Изменить его нельзя. Каждый вариант имеет уникальную комбинацию из предметной области, базы данных и технологии для общения сервиса генерации данных и сервера апи.

Список вариантов
Список предметных областей

Схема сдачи

На каждую из лабораторных работ необходимо сделать отдельный Pull Request (PR).

Общая схема:

  1. Сделать форк данного репозитория
  2. Выполнить задание
  3. Сделать PR в данный репозиторий
  4. Исправить замечания после code review
  5. Получить approve

Критерии оценивания

Конкурентный принцип. Так как задания в первой лабораторной будут повторяться между студентами, то выделяются следующие показатели для оценки:

  1. Скорость разработки
  2. Качество разработки
  3. Полнота выполнения задания

Быстрее делаете PR - у вас преимущество. Быстрее получаете Approve - у вас преимущество. Выполните нечто немного выходящее за рамки проекта - у вас преимущество. Не укладываетесь в дедлайн - получаете минимально возможный балл.

Шкала оценивания

  • 3 балла за качество кода, из них:
    • 2 балла - базовая оценка
    • 1 балл (но не более) можно получить за выполнение любого из следующих пунктов:
      • Реализация факультативного функционала
      • Выполнение работы раньше других: первые 5 человек из каждой группы, которые сделали PR и получили approve, получают дополнительный балл

Вопросы и обратная связь по курсу

Чтобы задать вопрос по лабораторной, воспользуйтесь соответствующим разделом дискуссий или заведите ишью.
Если у вас появились идеи/пожелания/прочие полезные мысли по преподаваемой дисциплине, их можно оставить здесь.

About

Современные технологии разработки программного обеспечения. 5 курс

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published