32 lines
2.5 KiB
Markdown
32 lines
2.5 KiB
Markdown
## Задание
|
||
|
||
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 |