Несколько [не]очевидных атрибутов качества (не только) микросервисов Я опишу с прицелом в микросервисы, но все то же самое актуально для любой [распределенной] системы 🙂 Стоимость исполнения (Execution cost) Аддитивный атрибут, вычисляемый как денежная стоимость ресурсов, используемых для работы микросервиса. Сильно зависит от выбранной платформы (aws, google cloud). __Стоимость может быть оценена во время проектирования__ и скорректирована по результатам оценки во время выполнения. Время отклика (Response time, latency) Время отклика измеряется измерением времени, прошедшего между отправкой запроса и получением ответа. __Следует сравнивать со временем отклика монолита на тот же запрос. __ При измерении синхронных вызовов учитывается максимальное время ответа, а для асинхронных вызовов учитывается среднее время, затраченное на вызов. Health management / Fault tolerance / Resiliency to failure Отказоустойчивость. Способность микросервисного решения справляться со сбоями. Микросервис удовлетворяет этому атрибуту качества путем сохранения своего внутреннего состояния и автоматического рестарта с загрузкой последнего наиболее актуального состояния (предшествующего сбою). Под отказоустойчивостью будем понимать как отказоустойчивость вычислений (рестарт), так и согласованность данных (отсутствие потерь данных). Reusability Повторное использования – основной способ снижения затрат. Хотя достижение возможностей повторного использования может быть дорогим, оно может существенно снизить стоимость разработки. В основном это достигается за счет закладывания возможностей изменения целей использования микросервиса для использования за пределами домена для которого он проектировался с минимальными изменениями кода.