Никогда раньше серьёзные масштабируемые программы не делал, просто грубо говоря в блокноте файл написал, сохранил, запустил, поэтому сейчас возникли вопросы.
Мой проект
по описанию фотографий вырос и я решил его переделать, полностью с нуля переписать.
Там такие составляющие
1. Mysql (или другая) база данных;
2. Python Flask + Nginx, http JSON API, возможно будут использоваться DLib, TensorFlow и другие библиотеки (основа всего);
3. Python Flask + Nginx, веб сайт/ веб интерфейс, определённый домен, порт 80, порт 443 SSL сертификат;
4. Python бот Telegram (один файл, long poll) tg_bot.py;
5. Python бот VK (один файл, long poll) vk_bot.py;
6. Python бот Discord (один файл, long poll) discord_bot.py;
7. Возможны будут ещё другие боты.
Сейчас это просто файлы, лежащие в одной папке и запускающиеся через Supervisor.
Сейчас у меня свалено всё в одну папку, functions.py лежит на поверхности и во всех состовляющих (с 3 по 7) я его импортирую import functions
и использую общие функции типа functions.recognize("file.jpg")
.
Хочу сделать всё красиво, через Docker. Особенно об этом задумался, когда переезжал с одного сервера на другой и вручную всё устанавливал, настраивал и прописывал новые пути и адреса.
Как правильно?
В одном контейнере будет крутится 1, 2, 3, а в другом все 4, 5, 6, 7
и каждый элемент с 3 по 7 будет взаимодействовать с 2 по http API?
Или здесь вообще Docker. не нужен, делается как-то по-другому?
Пожалуйста, подробно объясните, как построить архитектуру данного проекта грамотно, правильно?