DAS_2023_1/alexandrov_dmitrii_lab_3
2023-12-23 01:50:54 +04:00
..
message_service Лабораторная 3 2023-12-23 01:50:54 +04:00
user_service Лабораторная 3 2023-12-23 01:50:54 +04:00
docker-compose.yml Лабораторная 3 2023-12-23 01:50:54 +04:00
nginx.conf Лабораторная 3 2023-12-23 01:50:54 +04:00
readme.md Лабораторная 3 2023-12-23 01:50:54 +04:00

Задание

  1. Создать 2 микросервиса, реализующих CRUD на связанных сущностях.
  2. Реализовать механизм синхронного обмена сообщениями между микросервисами.
  3. Реализовать шлюз на основе прозрачного прокси-сервера nginx.

Вариант: сообщения и пользователи

Выполнение

Были написаны два сервиса на языке python с технологией flask:

  • Сервис msg_service, хранящий данные о сообщениях и реализующий CRUD операции с ними через HTTP запросы.
  • Сервис usr_service, хранящий данные о пользователях и реализующий CRUD операции с ними через HTTP запросы.

Сервисы синхронно сообщены - сервис пользователей запрашивает данные у сервиса сообщений для получения сообщений пользователя.

Для сервисов прописаны файлы Dockerfile, описывающие создание контейнеров:

  • Для обоих контейнеров выбирается Python 3.9.
  • Оба контейнера проявляют порты, на которых работает приложение: 8081 для сообщений и 8082 для пользователей.
  • В оба контейнера устанавливаются пакеты Flask и requests.
  • Выбирается рабочая директория /work и туда копируются файлы скриптов.
  • Командой запускаются сами скрипты.

Общий yaml-файл развёртки был настроен следующим образом:

  • блок services, где перечислены разворачиваемые сервисы.
  • для каждого сервиса прописан build, где объявляется его папка и докерфайл создания и зависимости.
  • для сервиса nginx прописан порт для отображения вовне.

Результат

Демонстрация работы в видео.

Ссылка на видео

https://drive.google.com/file/d/1gmZsbzMmC34Uidi4u_D3nFyPAG0MuPAf/view?usp=drive_link