Рубрики
Uncategorized

Инженерная надежность сайта (SRE) Лучшие практики

Что такое надежность сайта (SRE)? Техника по надежности сайта (SRE) Conce … Теги с Sre, DevOps, Systems.

Что такое надежность сайта (SRE)?

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

Команды SRE предпринимают задачи, которые IT-операционные команды сделали, часто вручную, и вместо этого дают им инженерам или операционным командам, которые используют инструменты и автоматики для решения проблем и управления производственными системами.

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

Почему важно? А что делает хорошую команду SRE?

SRE действует как мост между разработкой программного обеспечения и IT операций и заполняет разрыв между ними. Повсюду, повсюду, SRE входит в игру, когда речь идет о подготовке к сбоям в производственных системах. Он гарантирует, что системы организации масштабируются, надежны, предсказуемые и автоматизированы.

SRE также устанавливает индикаторы уровня обслуживания (SLIS), целей уровня обслуживания (SLOS), договор на уровне обслуживания (SLA), который определяет реальные числа на производительности, цели вашей команды должны быть достигнуты для удовлетворения этого соглашения, а также насколько надежными системами должны быть для конечных пользователей.

Основной целью SRE является повышение эффективности работы и эксплуатации.

Итак, Sre — это не просто «человек, который кодирует. «Вместо этого SRE является еще одним членом команды развития с другим набором навыков, особенно вокруг развертывания, управления конфигурацией, мониторинга, метрики и т. Д. Так же, как инженер, разрабатывающий приятный внешний вид и почувствование приложения, должен знать, как данные извлекаются из хранилища данных, SRE не несет исключительно для этих областей. Вся команда работает вместе, чтобы доставить продукт, который можно легко обновлять, управлять и контролировать. Необходимость инженера по надежности сайта, естественно, приходит, когда команда реализует DevOps, но понимает, что они просит слишком много разработчиков и нуждаются в специалистам для того, что команда OPS используется для обработки.

Прежде чем мы копаем глубже в SRE и как SRES работать с командой разработки, нам нужно понимать, как инженерные функции надежности сайта функционируют в рамках Paradigm.

Как СРР работает с DevOps?

В своем ядре, инженерия надежности на сайте — это реализация Paradigm DevOps. Так же, как постоянная интеграция и непрерывная доставка — это приложения принципов DEVOPS к выпуску программного обеспечения, SRE — это приложение этих тем же принципов для надежности программного обеспечения.

Существует широкий спектр способов определить DEVOPS. Традиционная модель — это то, где команда разработки («devs») и операций («OPS») разделены, ведущие к команде, которая пишет код, не отвечающий за то, как он работает, когда клиенты начинают его использовать. Команда разработки «бросила код по стене» в операционную команду для установки и поддержки.

Согласно подходу Google, вы можете использовать SRE, чтобы принять принципы DEVOPS в организации лучше и измерить успех вашей реализации.

Чтобы лучше понять, как объединить два, рассмотрим следующие принципы:

  • Уменьшить организационные силосы : SRE помогает поделиться владельцем по разработчикам и операционным командам. Это один из главных принципов философии DevOps. Когда SRES сосредоточен на улучшении выявления выпусков и приложений, операционные команды могут сосредоточиться на управлении инфраструктурой, а разработчики могут сосредоточиться на улучшении функций.
  • Принять отказ как обычно : Вроде DEVOPS, SRES не передает вину за неудачи и производственные инциденты между ИТ-командами. Безваренные постмектограммы — лучшая практика SRE, которая гарантирует, что все инциденты используются в качестве возможностей обучения. Когда возможность сбоя нормализована, команды могут занять более значительные риски, потенциально приводя к большим инновациям, не опасаясь чрезмерных неудач или простоя.
  • Реализовать постепенное изменение : Как и Древян, SRE также поощряет постоянное улучшение посредством изменения. SRE требует изменения, чтобы быть маленькими и частыми. В результате любые негативные последствия менее эффективны, и усовершенствования низкого риска могут быть легко проверены и реализованы.
  • Использование инструментов и автоматизации : В то время как DevOps поощряет автоматизацию и усыновление технологий, SRE ориентирован на охватывание последовательных технологий и доступ к информации в ИТ-командах. Это облегчает управление операциями и уменьшает вероятность вопросов, созданных технологическими несовместимостью. Эта стандартизация также помогает обеспечить, чтобы члены по всей команде могли сотрудничать лучше, поскольку оснастка становится равномерной и менее вероятно, потребуется специализированные навыки навыков, которые не хватает некоторых членов.
  • Измерьте все : SRE сочетает в себе метрики с петлями обратной связи для измерения операций и выявления возможностей для улучшения. Он также опирается в провисании для риска и ручных операций по мере необходимости, что делает его более предсказуемым путем измерения. Применяя данные метрик, команды могут устанавливать соответствующие цели при сохранении разумных ожиданий производительности.

Теперь, когда мы знаем, почему SRE важно, давайте перейдем к лучшим практикам SRE, вы должны следовать, охватывая культуру SRE.

Лучшие практики

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

1. Бюджеты ошибок

В двух словах, бюджет ошибок — это объема ошибки, которую ваш сервис может накапливаться в течение определенного периода времени, прежде чем ваши пользователи начнут несчастны. Вы можете подумать об этом как о терпимости боли для ваших пользователей, но применяется к определенному измерению вашего обслуживания: наличие, задержка и так далее. Для расчета бюджета ошибок мы должны использовать уравнение SLI:

SLI = [Good events / Valid events] x 100

Теперь процент выражается как SLI, и как только вы определяете цель для каждой из этих SLIS, это ваш объективный уровень обслуживания (SLO), а бюджет ошибок — остаток до 100.

Например, представьте, что вы измеряете доступность вашей домашней страницы. Доступность измеряется по количеству запросов, ответивших с ошибкой, разделенной на все действительные запросы на домашнюю страницу получает, выраженные в процентах. Если вы решите, что целью этой доступности составляет 99,9%, бюджет ошибок составляет 0,1%. Вы можете служить до 0,1% ошибок (предпочтительно немного менее 0,1%), и пользователи будут счастливо продолжать использование службы.

Посмотрите на эту таблицу, чтобы увидеть, как процент преобразует время:

36,5 дней 3 дня 9 дней 90%
18.25 дней 1,5 дня 4,5 дня 95%
3,65 дня 7.2 часа 21,6 часа 99%
1,83 дня 3,6 часа 10,8 часа 99.5%
8,76 часов 43,2 минуты 2,16 часов 99.9%
4,38 часа 21,6 минуты 1,08 часов 99.95%
52,6 минуты 4,32 минуты 12,96 минут 99.99%
5.26 минут 25,9 секунды 1,30 минуты 99.999%

На первый взгляд, бюджеты ошибок не кажутся такими важными. Они просто еще одна метрическая, и дежой нужно отслеживать, чтобы убедиться, что все работает гладко, верно? Ответ, к счастью, нет. Бюджеты ошибок не просто удобный способ убедиться, что вы встречаете договорных обещаний. Новые обновления обычно замораживаются, если команда исчерпывает свой бюджет ошибки для определенного квартала. Они также возможность для разработки команд для инноваций и рисков.

2. Определите SLOS, как пользователь

Измерьте доступность и производительность в терминах, которые имеют значение для конечного пользователя. Цели Уровень обслуживания или SLOS являются фундаментальной основой всей надежности на устойчивость сайта. Вы не можете иметь бюджеты об ошибках, приоритетны приоритеты к разработке работы или своевременно и эффективное управление инцидентами без них. SLOS должен указать, как они измеряются и условия, при которых они действительны. Узнайте больше о целях уровня обслуживания здесь Отказ

Индикаторы уровня обслуживания (SLIS) : Тщательно определенная количественная мера некоторых аспектов уровня предоставленной услуги, таких как пропускная способность, задержка. Это также:

  • Непосредственно измеряемым и наблюдаемым пользователям.
  • Это может представлять опыт пользователя.
  • Простые слова, это говорит о том, что именно вы собираетесь измерить.

Цели уровня обслуживания (SLOS) : Целевое значение или диапазон значений для уровня обслуживания, измеренные SLI. Это также:

  • Определяет, как служба должна выполняться с точки зрения пользователя (измеренного через SLI). Простые слова, насколько хороши должны быть услуги? Порог, за которым требуется улучшение обслуживания.
  • Точка, в которой пользователи могут рассмотреть возможность открытия билета поддержки.
  • Обусловленные бизнес-требованиями, а не только текущая производительность.

Соглашения об уровне обслуживания (SLA) : Slas:

  • Деловой договор, чтобы предоставить клиенту какую-то форму компенсации, если служба не соответствует ожиданиям.
  • Простые слова, SLO + последствия.

3. Ошибки мониторинга и доступности

Чтобы определить ошибки производительности и поддерживать доступность услуги, команды SRE должны посмотреть, что происходит в своих системах. Мониторинг необходим для проверки приложения/системы ведет себя как ожидалось. Это означает услугу, удовлетворение конкретных целей и понимание того, что происходит, когда изменится изменение. Более того, мы хотим знать перед клиентом.

4. Эффективно Планирование потенциала

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

Важные аспекты планирования емкости включают регулярное тестирование нагрузки и точное предоставление. Регулярное тестирование нагрузки позволяет вам посмотреть, как ваша система работает под средним штаммом ежедневных пользователей. Кроме того, добавление емкости в любой форме может быть дорогой, поэтому знание того, где вам нужны дополнительные ресурсы, является ключом.

5. Обращая внимание на управление изменениями

У многих организаций большинство отключений вызваны изменениями в прямом эфире, будь то на новом двоичном толчке или новой конфигурации. Каждое маленькое изменение влияет на бизнес. Поэтому анализировать каждое изменение риска, который он несет. Это должно быть контролировалось. Рассмотрим влияние дальнейших изменений, увидев большую картину, а не только то, как они могут повлиять на систему сегодня.

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

6. Безумертный постммерм

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

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

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

7. Работа с трудом

Одним из основных фокусов SRE является автоматизация. ТЯЖДЕНИЕ — это трата драгоценного инженерного времени, а также SRES создание каркасов, процессов, внутренней инструментарии/строительной инструментарии для их устранения, инженеры могут вернуться к инновациям.

Вывод

Этот пост блога попытался охватить фундаментальные концепции и практики, необходимые для построения успешной команды SRE. Если вы планируете принять SRE культуру в вашем проекте/организации, тренируйте свою команду, следите за лучшими практиками и доверяйте процессу. Вы не достигнете 100% совершенства. Это миф. Но вы сделаете все много упрощенные и получаете как можно ближе к совершенству.

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

Рекомендации

Оригинал: «https://dev.to/infracloud/site-reliability-engineering-sre-best-practices-1e5e»