🦾 IT-Качалка Давида Шекунца 💪
2024-02-02 10:57
# Давайте подытожим раз и навсегда:. Монолит – общая кодовая база, много команд, общие ресурсы, одно приложение, внутренняя коммуникация. Модульный монолит – общая кодовая база, много / одна команда, общие / раздельные ресурсы, много приложений, внутренняя и внешняя коммуникация. Микросервисы – раздельная кодовая база, одна команда, раздельные ресурсы, много приложений, внешняя коммуникация# Словарь. Приложение – запущенный на сервере процесс (инстанс), использующий какую-то кодовую базу для решения набора бизнес-задач. Инстансов у одного приложения может быть много.. Команда – набор специалистов, имеющих постоянную коммуникацию и разрабатывающих одни и теже приложения.. Кодовая база – сокращенно от "кодовая база приложения", то есть, код, описывающий специфичный (уникальный) для вашего приложения процесс (синонимы – "бизнес-логика", "фича"). Ресурсы – инфра (БД, кэши, fs, транспорт, etc.) переиспользуется между приложениями. Внутренняя коммуникация – вызов бизнес-логики внутри одного приложения засчет вызова функции изнутри кода. Внешняя коммуникация – вызов бизнес-логики из другого приложения с использованием какого-либо транспорта (TCP, HTTP, MQ, 2IP, stdin, etc.)# Подставим значения из словаря. Монолит – много команд пилят фичи в рамках 1-ой кодовой базы; для исполнения какой-то фичи можно вызвать функцию изнутри самого приложения, которую могла написать другая команда; при этом вся кодовая база шерит туже БД, кэш, fs; запускается это все в одно приложение (но может быть в множество инстансов, если, например, кроны выделили). Модульный монолит – много или одна команда пилит фичи в рамках 1-ой кодовой базы; для исполнения какой-то фичи можно вызвать функцию изнутри самого приложения или сделать запрос к другому приложению (например, в рамках модульного монолита), при этом можно шерить туже БД, кэш, fs, а можно не шерить; запускается это все в рамках множества приложений. Микросервис – пилит одна команда; для исполнения какой-то фичи нужно сделать запрос к другому микросервису; свои собственные БД, кэш, fs; запускается это все в рамках множества приложений# Выводы. Несомненно, бывают и другие вариации, но в 90% случаев части системы можно классифицировать именно так. Ваша система может состоять одновременно из Микросервисов, Монолитов и Модульных Монолитов. Модульный монолит – самый гибкий вариант, потому что позволяет реализовать множество приложений, которым не придется использовать межсервисную коммуникацию (потому что можно просто вызвать функцию изнутри кода), а при надобности можно воспользоваться и межсервисными запросами(продолжение ниже)