SLO – цели уровня обслуживания
Содержание
По мере того, как организации внедряют архитектуру, основанную на микросервисах, целевые уровни обслуживания (SLO) стали жизненно важным способом для команд устанавливать конкретные, измеримые цели, которые обеспечивают получение пользователями согласованных уровней обслуживания. SLO вместе с показателями уровня обслуживания (SLI) обеспечивают результаты, обещанные в соглашениях об уровне обслуживания (SLA) и других целях на уровне бизнеса (BLO), оставаясь при этом в рамках бюджетов ошибок.
Но почему SLO и SLI стали настолько важными, как команды автоматизируют процессы для последовательного соблюдения SLA и error budget (бюджетов ошибок)? Чтобы лучше понять суть этих процессов, мы начнем с определений.
Что такое SLA, SLO, SLI и бюджеты ошибок?
SLO является частью структуры отслеживания уровней обслуживания, которая также включает в себя соглашения об уровне обслуживания (SLA), показатели уровня обслуживания (SLI) и бюджеты ошибок
Что такое SLA?
Соглашения об уровне обслуживания или соглашения об уровне обслуживания – это контракты, подписанные между поставщиком и клиентом, которые гарантируют определенный измеримый уровень обслуживания.
Они обычно составляются с описанием штрафов, если поставщик не предоставляет гарантированную услугу. Соглашение об уровне обслуживания обычно состоит из множества отдельных соглашений об уровне обслуживания, чтобы помочь формализовать детали обещанного. Например, соглашение об уровне обслуживания между поставщиком веб-хост-провайдера и клиентом может гарантировать 99,95% времени безотказной работы для всех веб-сервисов компании в течение года.
Что такое SLO?
SLO (цели уровня обслуживания) - это согласованная цель в рамках SLA, которая должна быть достигнута для каждого вида деятельности, функции и процесса, чтобы обеспечить наилучший результат для клиента. В общих чертах, целевые уровни обслуживания представляют собой описание производительности или состояние услуги.
Они могут включать в себя бизнес-метрики, такие как коэффициент конверсии, время безотказной работы и доступность; показатели обслуживания, такие как производительность приложений; или технические метрики, такие как зависимости от сторонних служб, базовый процессор и стоимость запуска службы. Например, если SLA для веб-сайта составляет 99,95% времени безотказной работы, его соответствующий SLO может составлять 99,95% доступности служб входа в систему. Организации обычно используют SLO в производственных средах, чтобы гарантировать, что выпущенный код остается в рамках бюджета ошибок.
Что такое бюджеты ошибок?
Бюджеты ошибок - это бюджет на определенную сумму в случае сбоя или технической задолженности в рамках целевого уровня обслуживания. Например, если ваш SLO гарантирует доступность веб-сайта на 99,5% в течение года, ваш бюджет на ошибки составляет 0,5%. Бюджеты ошибок позволяют командам разработчиков принимать обоснованные решения между разработкой и операциями и работой над существующим программного обеспечения. Правильно установленные и определенные SLO должны иметь бюджеты ошибок, которые дают разработчикам пространство для инноваций без влияния на операции.
Что такое SLI?
SLI предоставляют фактические показатели и измерения, которые указывают, соответствуете ли вы целевым уровня обслуживания. Большинство SLI измеряются в процентах, чтобы выразить уровень обслуживания. Например, если ваш SLO должен обеспечить доступность 99,5%, фактическое измерение может составлять 99,8%, что означает, что вы соблюдаете свои соглашения и у вас есть довольные клиенты. Чтобы получить представление о долгосрочных тенденциях, вы можете визуально представить SLI в гистограмме, которая показывает фактическую производительность в общем контексте ваших SLO.
Почему SLO важны?
Цели уровня обслуживания обеспечивают надежность процесса. Они помогают командам достичь следующего
- Улучшить качество программного обеспечения Цели уровня обслуживания помогают командам определить приемлемый уровень простоя для службы или конкретной проблемы. SLO проливает свет на проблемы, которые не соответствуют полномасштабному инциденту, но также не полностью соответствуют ожиданиям. Достижение 100% надежности не всегда реалистично, поэтому использование SLO помогает понять баланс между инновациями (которые могут привести к простоям) и доставкой (гарантирующей, что пользователи будут довольны).
- Помощь в принятии решений. SLO могут быть отличным способом для DevOps и инфраструктурных команд использования данных: теперь у них есть ожидания от производительности во момент выпуска новых решений.
- Улучшить автоматизацию. Стабильные, хорошо откалиброванные SLO прокладывают путь командам для автоматизации большего количества процессов и тестирования на протяжении всего жизненного цикла доставки программного обеспечения (SDLC). С надежными SLO вы можете настроить автоматизацию для мониторинга и измерения SLI и устанавливать оповещения, если определенные индикаторы имеют тенденцию к нарушению. Эта согласованность позволяет командам калибровать производительность во время разработки и обнаруживать проблемы до фактического нарушения SLO.
- Избегать простоев. Неизбежно, что программное обеспечение может сломаться. SLO позволяют командам DevOps прогнозировать проблемы до их возникновения и особенно до того, как они повлияют на клиентов. Переключив SLO производственного уровня в разработку, вы можете разрабатывать приложения уже соответствующее производственным SLO, чтобы повысить устойчивость и надежность задолго до фактического простоя.
Как работают цели уровня обслуживания
Программное обеспечение, вспомогательные инструменты и инфраструктура каждую секунду генерирует различные метрики и точки данных, которые указывают на состояние и производительность системы. Цели уровня обслуживания определяют или поддерживают набор бизнес-целей, которые вы можете измерить, используя данные и инструменты мониторинга и наблюдения.
Целью SLO является предоставление более надежных и отказоустойчивых услуг, которые соответствуют или превосходят ожиданиям пользователей. Надежность часто измеряется в девятках на пути к 100%. Например, целью доступности системы может быть:
- 90% - одна 9
- 99% - две девятки
- 99,9% - три девятки
- 99,99% - четыре 9
- 99,999% - пять девяток
Каждая десятичная точка ближе к 100 обычно сопряжена с большей стоимостью и сложностью. Пользователям может потребоваться определенный уровень реагирования, после чего они больше не смогут обнаруживать разницу. Установка SLO - это отчасти наука и частично искусство, обеспечивающее баланс между статистическим совершенством и реалистичными целями.
Вы можете установить целевой уровень обслуживания на основе отдельных показателей, таких как пропускная способность пакета, задержка запроса и сбои в секунду. Вы также можете создавать SLO на основе совокупных показателей, например, индекса производительности приложений (Apdex), отраслевого стандарта, который измеряет удовлетворенность пользователей на основе различных показателей.
Сбор и анализ показателей с течением времени поможет вам определить общую эффективность ваших SLO, чтобы вы могли настроить их по мере созревания и улучшения ваших процессов. Эти тенденции также помогут вам скорректировать бизнес-цели и соглашения о соглашениях о соглашениях.
Лучшие практики SLO
Цели уровня обслуживания определяют уровень обслуживания в течение определенного периода времени на основе измерений SLI. Вот несколько лучших практик, которые помогут вам достичь целей, изложенных в ваших SLO.
Подход к постановке целей
- Меньше значит больше. Важно определить SLO, которые поддерживают SLA или бизнес-цель. Определение слишком большого количества SLO, которые не поддерживают более широкую цель, означает дополнительную работу без каких-либо значимых результатов.
- Не перебарщивайте и недовыставляйте цели SLO. Цель уровня обслуживания должна точно отражать состояние и производительность обслуживания. Если вы намеренно установите низкие цели SLO, чтобы избежать нарушений, вы не сможете принять обоснованные решения по продукту, потому что SLO не дадут точной картины того, как следует тратить ресурсы и время. Аналогичным образом, установление нереально высоких целевых показателей SLO увеличит стоимость и объем усилий, необходимых для очень минимальной постепенной прибыли
Работа с целями на практике
- Будьте гибкими SLO нужно время от времени корректировать в соответствии с потребностями ваших команд и клиентов. Если команда растет быстрее, чем ваши процессы, пришло время скорректировать SLO. База пользователей, которая выросла в геометрической прогрессии, также может потребовать корректировки в соответствии с вашими целевыми показателями обслуживания.
- Автоматизируйте оценку SLO. Панели управления и ручные листы сбора метрик замедляют процессы исправления и не дают анализа первопричин. Убедитесь, что ваше решение не только собирает соответствующие SLI и автоматически оценивает SLO, но и делает еще один шаг вперед, автоматически предупреждая вас до нарушения SLO и предоставляя весь контекст, необходимый для решения проблемы, прежде чем она станет проблемой.
- Используйте SLO за пределами производства, в полном объеме SDLC. Использование целевых уровней обслуживания для производственных рабочих нагрузок - это всего только первый шаг. Чтобы по-настоящему воспользоваться преимуществами SLO, включите их в конвейер доставки в таких областях DevOps и SRE: автоматизация сине-зеленого или канареечного развертывания, откат или исправление, оценка качества программного обеспечения, тестирование хаоса, ChatOps и так далее.
Создавайте SLO и управляйте ими с помощью Dynatrace
Dynatrace упрощает создание и управление SLO с помощью готовых шаблонов SLO и руководства по настройке SLO с правильными метриками в сочетании с автоматической аналитикой на основе нейросети.
Начать тур
Пройдите интерактивный SLO тур от Dynatrace, чтобы узнать как создавать и отслеживать SLO, бюджеты ошибок и прогнозировать нарушения/проблемы до их возникновения, чтобы предотвратить сбои и простои.