Форум сайта python.su
Есть достаточно тяжелый проект на джанге 1.6 с питоном 2.7 и кучей древних зависимостей. За 6 лет разработки там накопился огромный функционал и куча модулей.
Условно - пускай будет это магазин, с поставщиками, клиентами, логистикой доставки товаров, сотрудниками и их оборудованием и подобное. Вот взять сразу и переписать это все не реально. Поэтому возникла идея оттуда выдирать куски функционала и делать их как микросервисы.
Но собственно возникает вопрос - а как вообще должен происходить обмен данными ? Все очень плотно связанно и дернув данные клиента нам необходимы его заказы, текущие процессы связанные с ним в логистике, сотрудники его обслуживающие.
Сейчас все лежит в одной базе и собственно проблем нет. А в случае с отдельными микросервисами как ? К примеру таблица пользователей. Реплицировать ее между микросервисами или напрямую переключаться в нужную БД и raw запросами тянуть инфу ?
На API переводить - это пипец сколько запросов гулять будет и огромнейший оверхед.
Пока совсем не понятно куда двигаться. Да и гораздо удобнее к модели за пару минут дописать нужный метод и получать данные за одно движение в дальнейшем.
Может кто делал подобное и может поделиться тут своим видением, в каком направлении двигаться.
Офлайн
VadimKЭто ты хочешь писать новый проект, который будет делать то же самое, что и существующий проект.
Поэтому возникла идея оттуда выдирать куски функционала и делать их как микросервисы.
VadimKДа, нереально, просто затратно и нерезультативно. Поэтому надо писать новый проект.
Вот взять сразу и переписать это все не реально.
VadimKНадо смотреть на это как на новый проект. Тогда ты спроектируешь базу данных по-новому.
Но собственно возникает вопрос - а как вообще должен происходить обмен данными ?
VadimKЭти вопросы появляются из того, что ты пытаешься этот проект переделать. А это не надо делать. Это пустая трата времени. Это как за новичком доделывать его говнокод. Не надо этого делать! Надо ему написать готовый код правильный сразу, без переделываний, без очистки его говна в каком-то там его говнокоде. Не надо на это тратить время.
Сейчас все лежит в одной базе и собственно проблем нет. А в случае с отдельными микросервисами как ? К примеру таблица пользователей. Реплицировать ее между микросервисами или напрямую переключаться в нужную БД и raw запросами тянуть инфу ?
На API переводить - это пипец сколько запросов гулять будет и огромнейший оверхед.
VadimKНу вот, он сдох. Потому что его архитектура - это говно, не расчитанное на долгую жизнь. Микросервисная архитектура - тоже не панацея. Может, там вообще несколько программ должно быть. Это первый признак: если у тебя всё лежит в одном месте и превращается в свалку, то это надо разделить на хорошо стыкующиеся отдельные части. И потом для этих частей в отдельности то же самое работает: если у тебя всё лежит в одном месте и превращается в свалку, то это надо разделить на хорошо стыкующиеся отдельные части. То есть это не в микросервисах дело. Это вот кто придумал, что оно должно быть таким монолитным, вот тот не знает нихера. Что в итоге через шесть лет ты и наблюдаешь.
Есть достаточно тяжелый проект на джанге 1.6 с питоном 2.7 и кучей древних зависимостей. За 6 лет разработки там накопился огромный функционал и куча модулей.
Офлайн