Что такое SRE и почему это важно?

Завершено

Лучше всего начинать с самого начала. Давайте начнем с простого вопроса: "Что такое обеспечение надежности информационных систем?" Есть много ответов на этот вопрос, плавающий вокруг, в том числе один часто цитируется человеком, который придумал термин (Бен Трейнор Слосс в Google), но самый практический ответ, который мы можем предложить:

Обеспечение надежности информационных систем — инженерная дисциплина, направленная на устойчивое достижение организациями необходимого уровня надежности в их системах, службах и продуктах.

Позже мы дополним картину другими определениями, но пока остановимся на этом. Существует три важных части этого определения, которые должны распаковывать, что приводит нас к "Почему это имеет значение?" "как это все работает".

Надежность

В самом сердце этого подхода находится слово "надежность". В определении ничего не сказано о "необходимом уровне производительности", или "необходимом уровне эффективности", или "необходимом уровне стабильности", или даже о "достижении необходимого уровня дохода". Там сказано "необходимый уровень надежности". Почему?

Давайте рассмотрим простой пример. Ниже приведен снимок экрана. Что вы думаете, что это показывает? Постарайтесь не продолжать чтение статьи, пока у вас не появится какая-нибудь идея. Примечание. Если трудно обнаружить очень много деталей в этом рисунке, это хорошо, это отрисовка идеально в браузере.

A blank screenshot representing a PHP app that fails to load.

На этом рисунке изображено приложение PHP (без включения других инструментов отладки) в момент возникновения сбоя. Нечто подобное можно увидеть и для приложения Java:

A screenshot of failed java app with HTTPS Status 500 error.

Для чего мы привели эти примеры? В обоих случаях приведен пример приложений, создание которых, вероятно, отняло у бизнеса огромное количество времени, энергии и ресурсов. Но если приложение не работает, если оно недоступно заказчику в нужный момент, если оно не обеспечивает надежности, то от него никому не будет пользы, особенно бизнесу. На самом деле недостаток надежности может принести реальный вред (репутационный, экономический, мотивационный и т. д.) для бизнеса.

Эта важность заключается в том, что SRE решает сосредоточиться на надежности в качестве основного свойства, возможно, основного свойства службы, системы или продукта. Надежность может охватывать много вещей (как мы обсудим позже), но давайте перейдем к второй важной части определения.

Необходимый уровень надежности

Возможно, прочитав определение в первый раз, вы не обратили на это внимания, но давайте выделим еще одно важное слово:

обеспечение надежности информационных систем — инженерная дисциплина, направленная на устойчивое достижение организациями необходимого уровня надежности в их системах, службах и продуктах.

Почему это слово так важно?

Важное наблюдение, сделанное в мире SRE, заключается в том, что существует несколько систем и служб, которые должны быть надежными на 100 %. Очевидным исключением являются системы, от которых зависит жизнь людей, такие как авиация, медицина и т. д.

На самом деле, есть несколько ситуаций, когда это даже желательно. Усилия и ресурсы (а, следовательно, и стоимость), необходимые для достижения более высокого уровня надежности, каждый раз возрастают многократно. Положите еще один способ, гоняясь после надежности, вам не нужна трата времени и денег. Вы хотите достичь необходимого уровня надежности в ваших системах, службах и продуктах.

Уровень должен соответствовать бизнес-потребностям и быть прагматичным. Например, наши клиенты могут подключаться к вам через сеть, которая не является 100% надежной (предположим, что это до 90% времени). Тратить усилия и деньги, чтобы убедиться, что ваша служба является 95% надежной является по определению пустая трата времени и денег. Вы хотите достичь необходимого уровня надежности в ваших системах, службах и продуктах.

Подход SRE поднимает этот прагматизм еще на одну ступень вверх. Если теперь мы можем подумать о том, что есть желательный уровень надежности, есть ли что-то, что мы должны сделать, если мы успешны на собрании или превышении этого уровня? Аналогичным образом, что делать, если мы не достигнем этого уровня? Мы ответим на эти вопросы позже в модуле.

Устойчивое достижение

Последнее слово из нашего определения, которое нужно выделить перед тем, как мы перейдем далее, — устойчивое. Устойчиво относится к роли людей. Важно создать устойчивую практику работы. Люди создавать надежные системы, службы и продукты. Если мы не делаем вещи, чтобы убедиться, что наша работа устойчива. Если мы просим наших людей в 3:00 каждую ночь с страницей, и не дайте им время со своей семьей. Если у них нет возможности провести время, заботясь о себе. Тогда они не смогут создавать надежные системы. SRE считает, что это ключ, который мы реализуем практику операций, которая является устойчивой с течением времени, поэтому наши люди могут принести свои лучшие путь к работе.

Проверьте свои знания

1.

Какое свойство службы, системы или продукта имеет наибольшее значение в SRE?

2.

К какому уровню надежности стремится SRE для подавляющего большинства служб, систем и продуктов?