it_arch
Термин Monolith, частенько используемый в качестве альтернативы микросервисов, выбран крайне неудачно. Его давно следовало бы заменить на термин Bottleneck. Причем речь идет как о разработке, так и об эксплуатации.
Представьте себе заголовки статей: выбираем между bottleneck-ом и микросервисами или почему мы решили вернуться назад к архитектуре bottleneck. По-моему, отлично звучит
В живом обсуждении этого сообщения, на мой взгляд, постоянно ускользала одна простая вещь. Сервис – это просто процесс; фоновый процесс, запущенный под управлением операционной системы и обрабатывающий передаваемые в него через REST API запросы. (Ну, или процесс, читающие запросы из очереди сообщений и обрабатывающий их). Даже в самом простом приложении нам потребуются десятки коллекций веб-ресурсов: пользователи, справочники, операции совершаемые и уже завершенные, задействованные в этих операциях вещи и многое другое. У каждого их этих ресурсов свой жизненный цикл, свои представления для разного типа запросов, более или менее сложный набор операций и уж наверняка разная скорость будущих изменений. Будь это статические веб-странички, то каждый элемент любой из коллекций лежал бы в отдельном файле. Четверть века назад CGI (common gateway interface) предусматривал свой исполняемый модуль для каждой коллекции ресурсов, ну да ладно
Сегодня же нас не особо коробит обрабатывать все запросы, не важно читаем ли мы данные GET-ом, создаем ресурсы POST-ом или заменяем PUT-ом, причем запросы для всех используемых приложением веб-ресурсов из десятков совершенно разных коллекций одним исполняемым модулем. Это и правда такая архитектура? Даже архитектурный стиль с гордым именем «монолит» :-) Да нет здесь никакой архитектуры и это обыкновенный bottleneck. Подарок, так сказать, службе эксплуатации и будущим поколениям разработчиков из нашего непростого настоящего