А те, у кого получилось, называют такие преимущества, часть из которых прямо противоположна недостаткам из предыдущего сообщения. И снова мы видим, что большинство преимуществ напрямую не связаны с микросервисами, микросервисы являются как-бы катализатором для появления подобных преимуществ, а некоторые являются предусловиями, то есть без них сложно управлять микросервисами и их приходится делать, что говорит нам о том, что осознанный, грамотный подход еще до появения микросервисов серьезно апгрейдит разработку:
Гибкое перераспределение нагрузки на всех уровнях
При необходимости отдельные микросервисы могут быть развернуты или масштабированы независимо
Независимый релизный цикл
Разные языки программирования и БД в разных сервисах
Высокая скорость доставки
Интересный стек технологий для разработчиков
Выделение и изолирование функциональности
Канареечные релизы
Небольшие команды
Возможность перепридумать решение с нуля
Высокая отказоустойчивость
Актуальные технологии индустрии, появилось большое число качественных opensource платформ
Слабая связанность
Можно быстро переписать код
Легко заменять модули
Устойчивость
Улучшение доступности за счет изоляции сбоев в границах отдельного сервиса
Изоляция и слабая связанность ведут к возможностям более гибкой эволюции в границах модуля
Поддержка множества платформ и языков
Быстрое тестирование
Быстрый деплой
Автономный деплой
Использование трассировки запросов между сервисами
Быстрота решения инцидентов
Быстрее локальная разработка - не нужно все разворачивать
Возможность динамического распределения нагрузки
Независимая разработка
Проще рефакторить, меньше тех.долга - проще переписать один независимый сервис
Свой архитектурный подход для каждого сервиса (DDD, CRUD)
Гибкое перераспределение нагрузки на всех уровнях
При необходимости отдельные микросервисы могут быть развернуты или масштабированы независимо
Независимый релизный цикл
Разные языки программирования и БД в разных сервисах
Высокая скорость доставки
Интересный стек технологий для разработчиков
Выделение и изолирование функциональности
Канареечные релизы
Небольшие команды
Возможность перепридумать решение с нуля
Высокая отказоустойчивость
Актуальные технологии индустрии, появилось большое число качественных opensource платформ
Слабая связанность
Можно быстро переписать код
Легко заменять модули
Устойчивость
Улучшение доступности за счет изоляции сбоев в границах отдельного сервиса
Изоляция и слабая связанность ведут к возможностям более гибкой эволюции в границах модуля
Поддержка множества платформ и языков
Быстрое тестирование
Быстрый деплой
Автономный деплой
Использование трассировки запросов между сервисами
Быстрота решения инцидентов
Быстрее локальная разработка - не нужно все разворачивать
Возможность динамического распределения нагрузки
Независимая разработка
Проще рефакторить, меньше тех.долга - проще переписать один независимый сервис
Свой архитектурный подход для каждого сервиса (DDD, CRUD)