частями, причём это почти бесплатно
Хотите новую реализацию системы рекомендаций? Да без проблем, будет сделано без оглядки на остальной код. Не нужен больше этот модуль? Ок, просто убираем его, ничего не ломая
Low coupling и high cohesion - прямо вот жирные плюсы микросервисов
Почему нельзя разрабатывать монолит на тех же принципах? Ну и традиционно, почему именно микросервисы, а не другие подходы к распределённым приложениям
Для меня самый очевидный плюс (при правильном менеджменте) что разные команды деливерать код и отвечают только за свой небольшой участок проекта. Это позволяет намного быстрее выкатывать новые фичи
А на сколько хорошо при этом поддерживать старые, когда есть 100500 сервисов, написанных в разном стиле, с разной архитектурой?
а в чём проблема писать вместо сервисов плагины?
Можно, я не запрещаю Но микросервисы провоцируют к такому подходу, а монолит позволяет его использовать
На одном большом проекте который я имел (и наверно лучшый из всех и самый высоконагруженный) было много тимок по 2-6 человек. Каждая тимка отдельный микросервис. Они его и саппортят так как это их зона ответсвенности
Просто звучит, как костыль.
Плагины к чему? Это какая-то плагинальная архитектура? Возможно, я такую не встречал, и ничего не могу сказать Следующий плюс микросервисов - возможность их масштабирования. Плагины тоже можно масштабировать?
Что именно звучит как костыль? 😳
Использование микросервисов просто как провокатор для разработки приложения на low coupling и high cohesion
Что мешает делать тоже в монолите?
То, что в день 20-40 pr и конфликты в них не избежать
Не вижу, в чём костыльность То есть мы обсуждаем плюсы, я привожу пример, а ты говоришь, что это не пример плюса, а костыль 😒
плагин это сомостоятельная программа которая динамический может быть подключена к основной программе через единый интерфейс. Так добавляются фитчи
Ну а чем это лучше микросервиса?
Откуда будут конфликты, если каждая команда будет работать над своей частью монолита?
Плагин работает, как часть приложения, не требуя сетевого взаимодействия, добавления транспорта, сериализации и маршалинга, что тратит гору ресурсов
Отсутствием требований к трасировке данных, написанием обвязки, слежением за откликом, зацикливанием, снятием метрик латентностью сети
я не говорю не возможно. Но в микросервисах это проще.
Ну и + усложнения логгирования, мониторинга, отладки и развёртывания
Этим всем должен заниматься фреймворк, уже решённые задачи
к плюсам обычно микросервисов относят переиспользование сервисов в разных проектах
Это значит, что его нельзя отдельно масштабировать? Что если он упадёт, то упадёт всё? Что если он реализован с ошибкой, откатывать надо всё приложение?
Почему всё приложение? Ты знаком с понянием динамической библиотеки?
Ты хочешь сказать, что сегфолт в (условно) dll не обрушит основной процесс?
Обсуждают сегодня