DAS_2023_1/alexandrov_dmitrii_lab_3/readme.md

2.5 KiB
Raw Permalink Blame History

Задание

  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