А те, у кого получилось, называют такие преимущества, часть из которых прямо противоположна недостаткам из предыдущего сообщения. И снова мы видим, что большинство преимуществ напрямую не связаны с микросервисами, микросервисы являются как-бы катализатором для появления подобных преимуществ, а некоторые являются предусловиями, то есть без них сложно управлять микросервисами и их приходится делать, что говорит нам о том, что осознанный, грамотный подход еще до появения микросервисов серьезно апгрейдит разработку:



Гибкое перераспределение нагрузки на всех уровнях

При необходимости отдельные микросервисы могут быть развернуты или масштабированы независимо

Независимый релизный цикл

Разные языки программирования и БД в разных сервисах

Высокая скорость доставки

Интересный стек технологий для разработчиков

Выделение и изолирование функциональности

Канареечные релизы

Небольшие команды

Возможность перепридумать решение с нуля

Высокая отказоустойчивость

Актуальные технологии индустрии, появилось большое число качественных opensource платформ

Слабая связанность

Можно быстро переписать код

Легко заменять модули

Устойчивость

Улучшение доступности за счет изоляции сбоев в границах отдельного сервиса

Изоляция и слабая связанность ведут к возможностям более гибкой эволюции в границах модуля

Поддержка множества платформ и языков

Быстрое тестирование

Быстрый деплой

Автономный деплой

Использование трассировки запросов между сервисами

Быстрота решения инцидентов

Быстрее локальная разработка - не нужно все разворачивать

Возможность динамического распределения нагрузки

Независимая разработка

Проще рефакторить, меньше тех.долга - проще переписать один независимый сервис

Свой архитектурный подход для каждого сервиса (DDD, CRUD)