К основному содержимому
#SRE

Why Is My App SLOw? Defining Reliability in Platform Engineering • Jez Humble • GOTO 2023

#SRE #SystemDesign #Software #Architecture #Metrics #SoftwareArchitecture #Engineering #Math #ContinuousDelivery

Интересный доклад от Jez Humble, техлида SRE команды, которая поддерживает сервисы serverless платформы в Google Cloud. Основная проблематика следующая: в рамках этой платформы надо отслеживать ее работоспособность, но

  • Ориентироваться при этом на восприятие клиентов того, насколько хорошо работают их приложения поверх платформы
  • Можно ориентироваться на latency приложений, но у них разброс latency в пять порядков (от миллисекунд до сотен секунд)
  • Можно ориентироваться на request delivery metrics, которые мерят время от попадания в сетевой слой Google и до доставки запроса до приложения и обратную часть этого цикла - но это чуть искусственная метрика.

В итоге, ребята поставили себе целью придумать метрику со следующими свойствами *- A metric that represents the customer experience

  • Combinable across projects / cells / regions
  • Can be used to detect anomalies affecting multiple customers (likely platform issues)
  • Computationally cheap (high QPS)
  • Principle-based*

И они нашли ее опираясь на понимание статистики и используя концепцию стационарности (свойство процесса не менять свои характеристики со временем). Если кратко, то они выделил отдельные когорты запросов по версии приложений, развернутых в serverless платформе. Дальше для каждой когорты проверили укладывается ли распределение ее latency в логнормальное распределение. Если укладывается, то сохранили параметры распределения в базу, если нет, то откинули эту когорту. В итоге, половина нагрузок укладывается в логнормальное распределение. Дальше ребята используют подход 2 сигма для измерения 2 стандартных отклонений от среднего для каждой из когорт и собирают это в график, гда видно каков процент таких рабочих нагрузок с таким большим отклонением. Нормальное состояние платформы характеризуется 2% -5% рабочих нагрузок с отклонениями больше 2 сигма, а вот если этот показатель поднимается до 10%, то это повод для беспокойства. Для построения такого распределения обычно используется 15 минутное окно. Дальше автор рассказывает как это работает в деталях, но мне интересно рассказать еще о выводах, которые Jez подводит в самом конце доклада *- We can reliably detect and measure the impact of platorm regressions

  • Reliability is a shared property (between customer & service) -- Reconstruction of end to end behavior is critical
  • Metric combinability is critical for analysis
  • Variability is what customers actually care about
  • Distributed systems ofen produce decorrelation -- We can measure it, and its absence
  • Workload correlation can identify proximate causes*

Итого, это интересный доклад для тех, кто строит платформы и хочет выстроить SLO/SLA/SLI с учетом не только своих технических метрик, но и том, как себя чувствуют пользовательские нагрузки внутри платформы.

P.S. Слайды доступны здесь.

#SRE #SystemDesign #Software #Architecture #Metrics #SoftwareArchitecture #Engineering #Math #ContinuousDelivery