Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Соглашение об уровне обслуживания (SLA) является одним из наиболее часто упоминаемых документов в облачной архитектуре, но это также один из наиболее часто недоуменимых документов. Многие инженеры рассматривают соглашение об уровне обслуживания как простую гарантию доступности, но это договорный документ, включающий точные определения, условия и исключения, которые формируют его смысл. Если вы не читаете соглашение об уровне обслуживания тщательно, вы можете принимать архитектурные решения на основе неподдерживаемых предположений.
В этой статье объясняется, как интерпретировать соглашения об уровне обслуживания методично, чтобы их можно было использовать в качестве инженерных входных данных при разработке устойчивых рабочих нагрузок. В этой статье описывается, как выполнить следующее:
- Объясните, что соглашение об уровне обслуживания фактически гарантирует.
- Определите, как поставщики услуг технологий обычно определяют и измеряют доступность.
- Распознавание условий и исключений, влияющих на охват.
- Используйте соглашения об уровне обслуживания для принятия архитектурных решений, а не для замены устойчивости, которую вы разрабатываете.
Большинство соглашений об уровне обслуживания определяют обязательства по обеспечению доступности или доступности, но поставщики услуг также могут определять соглашения об уровне обслуживания по другим требованиям, таким как производительность, время восстановления или устойчивость данных.
Это важно
В этой статье объясняется, как интерпретировать соглашения об уровне обслуживания. Это не предоставляет юридических советов или рекомендаций о том, как оспаривать поставщиков услуг и получать сервисные кредиты. Это не касается соглашений об уровне обслуживания компании Майкрософт. Примеры и принципы применяются широко, чтобы помочь вам прочитать соглашение об уровне обслуживания любого поставщика услуг критически.
Связь соглашений об уровне обслуживания (SLA) с целевыми показателями обслуживания (SLO) и показателями надежности
Прежде чем читать соглашение об уровне обслуживания, понять, где оно соответствует другим понятиям надежности:
Соглашение об уровне обслуживания — это договорное обязательство между поставщиком услуг и клиентом, с определенными последствиями для неотметных целевых показателей.
Цель уровня обслуживания (SLO) — это внутренняя цель надежности, которую вы устанавливаете для собственной рабочей нагрузки.
Соглашение об уровне обслуживания описывает минимальную гарантию, которую обеспечивает поставщик услуг. SLO отражает надежность, необходимую пользователям . Используйте соглашения об уровне обслуживания (SLA), чтобы сообщить о целевом уровне обслуживания (SLO), но не просто принимать процент SLA в качестве целевого значения надежности нагрузки. Учтите собственный код, зависимости, операционные процессы и терпимость пользователей к простою. Иногда требуются более строгие целевые показатели уровня обслуживания (SLO), чем совокупные соглашения об уровне обслуживания (SLA) ваших поставщиков услуг. В других случаях рабочая нагрузка может терпеть проблемы, превышающие финансовые обязательства поставщика услуг.
Дополнительные сведения о том, как определить целевые показатели обслуживания и надежности, см. в рекомендациях по определению целевых показателей надежности.
Почему следует читать соглашения об уровне обслуживания
Соглашения об уровне обслуживания — это инженерные сигналы, а не строгие гарантии доступности. Они описывают условия, при которых поставщик услуг фиксирует определенный уровень обслуживания. Они также описывают финансовые последствия, если поставщик услуг не соответствует этим обязательствам. Соглашения об уровне обслуживания не гарантируют, что ваше приложение надежно, что пользователи избегают простоя или что поставщик услуг предотвращает все сбои.
Предположения об соглашениях об уровне обслуживания приводят к плохим архитектурным решениям. Архитекторы иногда рассматривают процент времени безотказной работы SLA как прямой показатель надежности службы. Этот подход часто упускает из виду критически важные сведения, включая определение времени простоя, какие условия должны выполняться, и какие сценарии исключаются. Результирующая конструкция рабочей нагрузки может не допускать режимы сбоя, которые подразумевает соглашение об уровне обслуживания.
Тщательный обзор соглашений об уровне обслуживания обнаруживает важные сигналы для разработки устойчивых систем:
Ожидаемые временные сбои: Поставщики услуг ожидают кратковременных сбоев. Соглашения об уровне обслуживания делают это ожидание явным путем определения простоя и требований к повторным попыткам. Разработайте архитектуру для обработки временных сбоев как нормального условия, а не исключительного.
Службы не эквивалентны: Службы зависят от областей обслуживания, условий и исключений.
Проценты времени безотказной работы не применяются одинаково: Служба с соглашением об уровне обслуживания 99.99% для основных операций может предложить более низкое соглашение об уровне обслуживания или вовсе не предоставлять его для определенных функций, от которых вы зависите.
Соглашения об уровне обслуживания не охватывают все факторы надежности: Соглашения об уровне обслуживания сами по себе не учитывают все аспекты надежности. Также просмотрите сервисные ограничения, квоты, механизмы ограничения скорости, известные ограничения и операционные инструкции в документации по продукту.
Что такое соглашение об уровне обслуживания и что им не является
Соглашение об уровне обслуживания — это набор условных обязательств. В нем указывается, что если клиент соответствует определенным требованиям, поставщик услуг фиксирует определенный уровень обслуживания. Если поставщик услуг не соответствует такому уровню , клиент получает компенсацию, как правило, в виде кредитов на обслуживание.
Соглашения об уровне обслуживания применяются только при выполнении определенных предварительных условий, таких как требования к конфигурации, топологии развертывания или поведение операций. Соглашение об уровне обслуживания указывает именно то, что считается сбоем. Если проблема не соответствует документированного определения простоя, соглашение об уровне обслуживания не охватывает его.
Не создавайте составное соглашение об уровне обслуживания , умножающее проценты соглашения об уровне обслуживания вместе, чтобы оценить доступность системы с несколькими зависимостями. Это вычисление может обеспечить приблизительное максимальное ограничение, но на практике это ненадежно. Предполагается, что все сервисы отказывают независимо, что редко происходит. Он также игнорирует уникальные определения, условия и исключения в каждом SLA. Составные вычисления часто делают систему более надежной, чем она есть на самом деле, и не заменяют точное определение SLO или анализ режима сбоя (FMA) для вашей нагрузки. Дополнительные сведения см. в разделе Рекомендации по определению целевых показателей надежности.
Практическая модель для чтения соглашений об уровне обслуживания
Не считывайте соглашение об уровне обслуживания от начала до конца. Вместо этого используйте структурированный пятипроходный подход, который извлекает сведения, важные для вашей архитектуры.
Проход 1: Определения
Начните с раздела определений. Определения определяют, как соглашение об уровне обслуживания измеряет доступность и количество сбоев.
Определения имеют такое же значение, как и проценты: 99,99% SLA звучит впечатляюще, но его значение полностью зависит от того, что в SLA считается отказом и какие единицы измерения в нем используются. Если определение простоя является узким, то эффективное покрытие оказывается уже, чем это предполагает процент.
Ключевые термины: Термины, такие как допустимый запрос, простой и оплачиваемые минуты, определяют, к чему обязуется поставщик услуг. Если операция не соответствует допустимому запросу в рамках SLA, это не влияет на вычисление доступности.
Определите, какие операции охватывает соглашение об уровне обслуживания, какие компоненты она явно или неявно исключает, и применяется ли она к каждому экземпляру службы или в пуле экземпляров.
Подсказка
Соглашение об уровне обслуживания от 99.9% не гарантирует, что служба всегда остается доступной. Это также не означает, что вы должны ожидать только 8,7 часа простоя в год. Определение времени простоя в соглашении об уровне обслуживания определяет, что измеряется. Узкие определения означают, что служба может столкнуться с проблемами, влияющими на пользователей, не нарушая соглашение об уровне обслуживания.
Проход 2: Измерение
Узнайте, как соглашение об уровне обслуживания вычисляет доступность:
Измерение на основе времени и на основе запросов: Измерение на основе времени обычно отслеживает доступность службы в течение каждого интервала времени. Измерение на основе запросов отслеживает отношение успешных ответов к общему допустимому запросу. Один и тот же сбой может создавать разные проценты доступности в зависимости от того, какой метод использует соглашение об уровне обслуживания.
Повторные попытки и агрегирование: Для некоторых соглашений об уровне обслуживания требуется повторить неудачные запросы за указанный период, прежде чем они считаются сбоями. Другие соглашения об уровне обслуживания агрегируют доступность в течение всего периода выставления счетов, поэтому краткие сбои могут не снизить вычисленную доступность достаточно, чтобы активировать кредит.
Область агрегирования: Определите, измеряет ли уровень обслуживания доступность для отдельного экземпляра службы или для всех экземпляров в определенной области, например, учетной записи или подписки. Когда SLA вычисляет доступность в нескольких экземплярах, работоспособные экземпляры могут компенсировать отказавшие экземпляры. Это вычисление может привести к более высокой заявленной доступности, чем действительно переживает любой отдельный экземпляр.
Подсказка
Соглашения об уровне обслуживания обычно измеряют время ожидания за период выставления счетов, а не в режиме реального времени. Служба может столкнуться с сбоем, который длится несколько минут и по-прежнему соблюдать своему соглашению об уровне обслуживания в течение месяца.
Третий проход: Требования, варианты и исключения
Определите условия, необходимые для соглашения об уровне обслуживания:
Необходимые конфигурации и поведение: Для многих соглашений об уровне обслуживания требуются определенные конфигурации развертывания или операционное поведение, например реализация логики повторных попыток или сохранение в документированных квотах. Например, соглашение об уровне обслуживания хранилища может применяться только при использовании твердотельных дисков (SSD), а не жестких дисков (HDD), так как обязательство поставщика услуг от времени простоя зависит от характеристик производительности этого типа хранилища.
Конфигурация влияет на условия соглашения об уровне обслуживания: Узнайте, как конфигурация службы изменяет соглашение об уровне обслуживания. Более высокие уровни цен иногда предлагают различные обязательства по соглашениям об уровне обслуживания, но разница не всегда заключается только в более высоком проценте времени безотказной работы. Более высокие уровни могут иметь разные определения, различные методы измерения или меньше исключений. Соглашение об уровне обслуживания уровня "Премиум" может определять время простоя более широко (лучшее покрытие), а не увеличивать процент времени простоя. Не полагайтесь только на процент. Также ознакомьтесь с определениями.
Модели развертывания также влияют на условия соглашения об уровне обслуживания. Для одной и той же службы развертывание с одним экземпляром может иметь более низкое соглашение об уровне обслуживания, чем развертывание с несколькими экземплярами, которое обеспечивает избыточность.
Исключения эксплуатационных условий: Соглашения об уровне обслуживания обычно исключают время простоя, вызванное плановым обслуживанием, форс-мажорными обстоятельствами, действиями, инициированными клиентом, неправильной настройкой, превышением квот, неправильными запросами и предварительными или неподдерживаемыми функциями.
Подсказка
Правильное развертывание не гарантирует охвата соглашением об уровне обслуживания. Соглашение об уровне обслуживания не применяется, если вы не соответствуете другим условиям, например реализация требуемой логики повторных попыток или если исключенное событие вызывает сбой. Проверьте, входят ли функции, от которых вы зависите, в сферу действия соглашения об уровне обслуживания. Соглашения об уровне обслуживания часто охватывают только определенные операции, конечные точки или уровни. Они могут исключить предварительные версии, некоторые API и версии более низкого уровня.
Этап 4. Аспекты проектирования
Чтобы использовать службу наиболее эффективно, рассмотрите, что соглашение об уровне обслуживания показывает, как работает служба и как вы должны разработать решение вокруг него:
Ожидаемые режимы сбоев: Определения и условия соглашения об уровне обслуживания указывают, какие типы сбоев поставщик услуг обрабатывает как обычные и ожидаемые. Архитектура должна терпеть эти сбои.
Приоритеты поставщика услуг: Как поставщик услуг определяет доступность, измеряет его и исключает определенные сценарии, показывает свое основное обязательство и то, что она считает вашей ответственностью.
Решения по проектированию: Если соглашение об уровне обслуживания исключает определенные режимы сбоя, решите, следует ли принимать риск, добавлять избыточность или использовать альтернативные службы.
Пас 5. Как получить кредиты на обслуживание
Соглашение об уровне обслуживания определяет кредиты на обслуживание как компенсацию простоя, но поставщики услуг обычно не применяют их автоматически. Они не следят за нарушениями SLA или не подают иски за вас заранее. Необходимо обнаружить сбои, которые нарушают соглашение об уровне обслуживания, документировать их и отправлять утверждения в течение крайнего срока. Чтобы подготовиться к этому процессу, выполните следующие действия.
Шаг 1. Узнайте, что отслеживать
Перед инцидентом определите, какие данные необходимо собрать для подтверждения утверждения. Проверьте определения и метод измерения SLA (Договора об уровне обслуживания), чтобы определить:
Какие метрики сопоставляют с соглашением об уровне обслуживания: Если соглашение об уровне обслуживания измеряет частоту успешного выполнения запросов, отслеживайте коды ответов HTTP для конечных точек, охватывающих соглашение об уровне обслуживания. Если он измеряет время простоя в минутах, отслеживайте доступность службы через регулярные интервалы.
Какие экземпляры находятся в области применения: Соглашения об уровне обслуживания часто применяются к определенным уровням, версиям или конфигурациям развертывания. Отслеживайте только экземпляры, которые соответствуют покрытию соглашения об уровне обслуживания.
Что поставщик считает сбоем: Некоторые соглашения об уровне обслуживания определяют время простоя в узких пределах. Например, соглашение об уровне обслуживания может требовать, чтобы все запросы не выполнялись в течение одной или нескольких подряд идущих минут, или может требоваться задокументирование инцидента в общедоступном списке. При необходимости настройте мониторинг для отслеживания определенных условий сбоя, которые определяет соглашение об уровне обслуживания.
Шаг 2. Сохранение записей во время и после инцидента
Когда происходит сбой или ухудшение состояния, соберите и сохраните доказательства, которые соответствуют определениям соглашений об уровнях обслуживания.
Временные метки: Запишите время начала и окончания инцидента, включая часовые пояса. Обратите внимание на продолжительность воздействия и то, было ли оно непрерывным или периодическим.
Сведения об ошибке: Фиксируйте определенные коды ошибок, сообщения об ошибках или поведение времени ожидания, которые вы наблюдаете. Эти сведения должны соответствовать условиям сбоя, которые определяет соглашение об уровне обслуживания.
Журналы запросов: Если соглашение об уровне обслуживания требует повторных попыток, прежде чем он подсчитывает сбой, сохраните журналы, чтобы показать, что вы выполнили это требование. Включите количество повторных попыток, интервалов отката и результат каждой попытки.
Доказательства конфигурации: Если соглашение об уровне обслуживания требует определённой конфигурации развертывания, например, определённого объема избыточности или уровня "Премиум", задокументируйте, как ваши экземпляры соответствовали этим предварительным требованиям в момент инцидента.
Коммуникации с поставщиком услуг: Сохраните все уведомления об инцидентах, обновления страниц статуса или переписку с поставщиком услуг, которые подтверждают проблему.
Шаг 3. Определение того, нарушает ли инцидент соглашение об уровне обслуживания
Перед отправкой запроса вычислите, попадает ли инцидент под порог для кредита.
Примените формулу доступности SLA с помощью записанных данных. Используйте те же единицы, такие как минуты, запросы или другая метрика, которые указывает соглашение об уровне обслуживания.
Вычитайте любое время, которое попадает под задокументированные исключения, такие как запланированные периоды обслуживания, исключенные типы событий или периоды, когда конфигурация не соответствовала предварительным требованиям SLA.
Сравните результат с гарантированным в соглашении об уровне обслуживания процентом. Если вычисляемая доступность падает ниже порогового значения, может применяться кредит.
Шаг 4. Подайте заявление в установленный срок
Большинство соглашений об уровне обслуживания накладывают крайний срок для отправки утверждений после инцидента. Если вы пропустите крайний срок, вы теряете компенсацию независимо от серьезности сбоя.
Найдите окно подачи заявки: Ознакомьтесь с документом по соглашению об уровне обслуживания, чтобы узнать крайний срок отправки. Общие интервалы времени варьируются от 30 до 60 дней после окончания месяца выставления счетов, когда происходит инцидент, но каждый поставщик услуг устанавливает свой собственный крайний срок.
Включите вспомогательные доказательства: Подключите записи, собранные на шаге 2, включая метки времени, журналы ошибок, доказательства повторных попыток и сведения о конфигурации. Поставщики услуг обрабатывают хорошо документированные утверждения быстрее.
Отправьте через правильный канал: Поставщики услуг обычно требуют, чтобы вы отправляете утверждения через портал поддержки или формальный процесс запроса. Следуйте документированной процедуре, чтобы избежать отклонения требования.
Замечание
Кредиты на обслуживание обычно являются процентом ежемесячной платы за обслуживание затронутой службы. Если ваши ежемесячные затраты на услугу незначительны, 10% компенсация может составить небольшую сумму, независимо от того, насколько сильно это повлияло на ваш бизнес. Кредиты не охватывают потерянные доходы, выпадение клиентов или репутационный ущерб.
Пример с руководством: декодирование вымышленных соглашений об уровне обслуживания
Чтобы иллюстрировать, как читать соглашение об уровне обслуживания на практике, в этом разделе используется вымышленная служба Pigeon Post как услуга (PPaaS). PPaaS — это гипотетическая управляемая служба обмена сообщениями, которая предоставляет сообщения через обученных голубей перевозчика. API принимает сообщение и отправляет его диспетчеру, ответственному за освобождение голубя и отправку сообщения получателю.
PPaaS намеренно абсурден, но структура его соглашения об уровне обслуживания отражает многие реальные соглашения об уровне обслуживания. В этом примере показан подход с пятью проходами.
Замечание
PPaaS полностью вымышлен. Любое сходство с реальными службами, птичьими или другими, является совпадением.
Соглашение об уровне обслуживания PPaaS
Соглашение об уровне обслуживания PPaaS включает следующие определения:
Допустимый запрос: Сообщение, отправленное через API PPaaS, соответствующее схеме задокументированного сообщения.
Простоев: Период, когда все попытки отправить допустимый запрос в подготовленную конечную точку PPaaS либо завершаются ошибкой или не получают ответ.
Всего оплачиваемых минут: Общее количество минут в расчетном месяце, в течение которого была предпринята по крайней мере одна операция отправки действительного запроса.
Ежемесячный процент времени простоя, вычисляемый как:
$$ \text{Процент ежемесячной работоспособности} = \frac{\text{Общее количество платных минут} - \text{Простой}}{\text{Общее количество платных минут}} \times 100 $$
Соглашение об уровне обслуживания PPaaS включает следующие кредиты на обслуживание.
| Уровень | Ежемесячный процент времени простоя | Кредит на обслуживание |
|---|---|---|
| Стандартный кооператив | Менее 99,9% | 10% |
| Стандартный кооператив | Менее 99% | 25% |
| Базовый Coop | Неприменимо | Неприменимо |
Соглашение об уровне обслуживания PPaaS включает следующие условия и исключения:
Соглашение об уровне обслуживания не охватывает неудачи, вызванные тяжелой погодой.
Соглашение об уровне обслуживания исключает до 15 минут в неделю запланированного совместного технического обслуживания.
Необходимо реализовать логику повторных попыток по крайней мере с тремя повторными попытками и экспоненциальным обратным выходом, прежде чем запрос будет считаться неудачным.
Соглашение об уровне обслуживания не применяется к уровню Базовый кооператив.
Читайте соглашение об уровне обслуживания PPaaS шаг за шагом.
Следующие проходы применяют пятиэтапный подход к соглашению об уровне обслуживания PPaaS. Каждый шаг выявляет информацию, которая должна определять вашу архитектуру.
Этап 1: Понимание определений
Проверьте, что означает каждый определенный термин:
Допустимый запрос: Сообщения, соответствующие документированной схеме и не превышающие предел размера. Вы можете проверить ограничение в документации по продукту. Большие сообщения, которые не проходят, не учитываются при оценке SLA.
Всего оплачиваемых минут: Минуты при попытке отправить сообщение. Если вы не отправляете сообщения в течение месяца, эти минуты простоя не учитывают вычисления, даже если служба имеет проблему в течение этого времени.
Определение доступности: Соглашение об уровне обслуживания охватывает время очереди сообщения, а не время полета, подтверждение доставки или возврат транзита. Если вашему голубю нужно три дня, чтобы доставить сообщение, это вне сферы действия SLA.
Этап 2: Понимание того, как измеряется доступность
Соглашение об уровне обслуживания PPaaS показывает следующие ключевые наблюдения по измерению:
Требования к повторным попыткам: Ошибки учитываются только в случае повторных попыток с экспоненциальным обратным выходом. Без повторных попыток соглашение об уровне обслуживания не измеряет сбой.
Агрегирование за период выставления счетов: Соглашение об уровне обслуживания вычисляет доступность в течение всего месяца. 10-минутный сбой может не являться нарушением соглашения об уровне обслуживания, если служба работает непрерывно остальное время месяца.
Этап 3. Определение условий и исключений
Несколько условий ограничивают применимость соглашения об уровне обслуживания.
Тяжелые погодные условия: Проверьте документацию по продуктам или поставщик услуг, чтобы определить, как они определяют тяжелые погодные условия. Это исключение устраняет всю категорию сбоев, которые могут часто влиять на службу, основанную на использовании голубей.
Запланированное обслуживание кооператива: В соглашении об уровне обслуживания исключается до 15 минут в неделю на плановое обслуживание. Этот период обслуживания не засчитывается в соглашение об уровне обслуживания (SLA), даже если в это время служба недоступна. Возможно, у вас нет контроля над тем, когда это обслуживание происходит. Проверьте документацию по продукту о том, когда выполняется обслуживание и планируется соответствующим образом.
Обязательства по уровню: Уровень "Базовый Кооп" не имеет ни одного соглашения об уровне обслуживания. Если вы используете базовый уровень, у вас нет договорных обязательств по доступности.
Этап 4: Извлечение архитектурных сигналов
Соглашение об уровне обслуживания PPaaS показывает несколько важных сигналов для вашей архитектуры:
Что PPaaS считает отказом: Только полный и устойчивый сбой отправки, который длится не менее одной полной минуты. SLA ожидает, что ваша рабочая нагрузка сможет обрабатывать краткие прерывания, медленные рассылки и отдельные сбои запросов.
Что это не гарантирует: Соглашение об уровне обслуживания охватывает только то, можно ли успешно отправить сообщение в API PPaaS и принять его для отправки. Он не гарантирует время доставки, успешность доставки или целостность сообщений после выпуска голубя. Подтвержденная доставка полностью выходит за пределы SLA.
Где архитекторы должны внедрять устойчивость: Проектируйте системы для обработки периодических сбоев отправки, реализуя необходимую логику повтора. Добавьте резервный механизм для ситуаций, когда гарантии доставки имеют значение, поскольку соглашение об уровне обслуживания не охватывает фактическую доставку. Соглашение об уровне обслуживания исключает прерывания, связанные с погодными условиями, и запланированное обслуживание, поэтому архитектура должна обрабатывать эти сценарии с помощью альтернативных путей или устойчивости к запланированной недоступности, которые не находятся под вашим контролем.
Этап 5. Подготовка для получения кредитов на обслуживание
Чтобы быть готовым подтвердить утверждение, если PPaaS не соответствует его соглашения об уровне обслуживания, подготовьте следующие требования:
Сохраняйте подробные журналы: Отслеживайте успешность или неудачу отправки с минутной детализацией. Сохраняйте журналы, чтобы показать, что каждая неудачная попытка включала необходимые три повторных попытки с экспоненциальным обратным выходом. Кроме того, сохраняйте независимые данные о погоде для региона развертывания. PPaaS может связать время простоя с тяжелыми погодными условиями вместо проблемы с услугой.
Файл в окне утверждения: Реальные соглашения об уровне обслуживания обычно требуют утверждений в течение 30 до 60 дней после окончания месяца выставления счетов. Добавьте крайний срок в календарь, чтобы не потерять возможность подать действительную заявку.
Дальнейшие действия
- Просмотрите соглашения об уровне обслуживания для служб, от которыми вы зависите. Для служб Microsoft начните с SLA для онлайн-сервисов. Ваша рабочая нагрузка также может зависеть от сервисов других поставщиков услуг. Примените один и тот же пятиступенчатый подход к этим соглашениям об уровне обслуживания.
- Сравните гарантии обслуживания с целями надежности рабочей нагрузки для выявления пробелов.
- Узнайте, как определить соглашения об уровне обслуживания, которые выходят за рамки соглашения об уровне обслуживания поставщика услуг. Рекомендации по определению целевых показателей надежности.