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
|