stringtranslate.com

Проектирование надежности сайта

Проектирование надежности сайта ( SRE ) охватывает принципы и практики, которые интегрируют разработку программного обеспечения с ИТ- инфраструктурой и операциями . [1] для повышения масштабируемости и надежности системы. SRE имеет сходство с DevOps , который фокусируется на разработке программного обеспечения и операционных практиках.

История

Область SRE возникла в Google с Беном Трейнором Слоссом, [2] [3], который основал команду по надежности сайта в 2003 году . [4] Концепция распространилась в отрасли разработки программного обеспечения, что привело к тому, что различные компании стали нанимать инженеров по надежности сайта. [5] К марту 2016 года в штате Google было более 1000 инженеров по надежности сайта. [6] Выделенные команды SRE распространены в крупных компаниях по веб-разработке. Команды DevOps иногда выполняют двойную функцию SRE в компаниях среднего и малого бизнеса. [5] Организации , которые приняли эту концепцию, включают Airbnb , Dropbox , IBM , [7] LinkedIn , [8] Netflix , [6] и Wikimedia . [9]

Определение

Инженеры по надежности сайта как должностная роль могут выполняться отдельными участниками или организованными в команды. Инженеры по надежности сайта отвечают за сочетание следующих элементов в более широкой инженерной организации: доступность системы , задержка , производительность , эффективность, управление изменениями , мониторинг , реагирование на чрезвычайные ситуации и планирование мощностей . [10] Инженеры по надежности сайта часто имеют опыт в программной инженерии , системной инженерии или системном администрировании . [11] Основное внимание SRE уделяется автоматизации, проектированию систем и улучшению устойчивости системы . [11]

Набор принципов и практик в проектировании надежности сайта может быть выполнен кем угодно. Хотя другие члены команды должны придерживаться хороших практик, как в проектировании безопасности , компания может в конечном итоге нанять специалистов и инженеров для работы. [ необходима цитата ]

SRE считается конкретной реализацией DevOps ; [12] SRE фокусируется конкретно на создании надежных систем, тогда как DevOps охватывает более широкую сферу. [13] [14] [15] Несмотря на разные фокусы, некоторые компании переименовали свои операционные команды в команды SRE, не внеся существенных изменений. [5]

Принципы и практика

Было предпринято несколько попыток определить канонический список принципов проектирования надежности объекта, но, несмотря на отсутствие консенсуса, в большинство определений включены следующие характеристики: [1] [16]

Методы проектирования надежности объекта также сильно различаются, но приведенный ниже список относительно часто рассматривается как по крайней мере частично реализованный:

Реализации

Команды SRE сотрудничают с другими отделами в организациях для эффективной реализации принципов. Ниже приведен обзор общих практик: [18]

Кухонная мойка, она же «Everything SRE»

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

Инфраструктура

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

Инструменты

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

Продукт или приложение

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

Встроенный

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

Консалтинг

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

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

Промышленность

С 2014 года организация USENIX проводит ежегодную конференцию SREcon, объединяющую инженеров по надежности объектов из разных отраслей. Эта конференция является платформой для профессионалов, чтобы обмениваться знаниями, изучать передовой опыт и обсуждать тенденции в области проектирования надежности объектов. [19]

Смотрите также

Ссылки

  1. ^ ab "Оценка того, где находится ваша команда в спектре SRE". Блог Google Cloud . Получено 26.06.2021 .
  2. ^ Хилл, Патрик. «Любите DevOps? Подождите, пока не встретитесь с SRE». Atlassian . Получено 17 июня 2021 г.
  3. ^ "Что такое SRE?". Red Hat . Получено 17 июня 2021 г.
  4. ^ Трейнор, Бен (2014). «Ключи к SRE». USENIX SREcon14 . Получено 17 июня 2021 г. .
  5. ^ abc Gossett, Stephen (1 июня 2020 г.). «Кто такой инженер по надежности сайта? Что делает SRE?». Built In . Получено 17 июня 2021 г. .
  6. ^ ab Фишер, Дональд (2 марта 2016 г.). «Станут ли инженеры по надежности сайтов следующими специалистами по данным?». TechCrunch . Получено 17 июня 2021 г.
  7. ^ "Инженерия надежности сайта". IBM Cloud Education . IBM . 12 ноября 2020 г. Получено 21 июня 2021 г.
  8. ^ "Инженерия надежности сайта (SRE)". engineering.linkedin.com . Получено 12 марта 2024 г. .
  9. ^ "СРЕ - Викитех" . wikitech.wikimedia.org . Проверено 17 октября 2021 г.
  10. ^ Трейнор, Бен. «В разговоре» (интервью). Интервью взято Ниаллом Мерфи. Google Site Reliability Engineering.
  11. ^ ab Jones, Chris; Underwood, Todd; Nukala, Shylaja (июнь 2015 г.). «Наем инженеров по надежности на объекте» (PDF) . ;login: . Vol. 40, no. 3. pp. 35–39 . Получено 17 июня 2021 г. .
  12. Дэйв Харрисон (9 октября 2018 г.). «Интервью с Бетси Бейер, Стивеном Торном из Google» . Получено 24 июля 2024 г. .
  13. ^ Бейер, Бетси; Джонс, Крис; Петофф, Дженнифер; Мерфи, Ниалл, ред. (2016). Инженерия надежности сайта: как Google управляет производственными системами. Севастополь, Калифорния: O'Reilly Media . ISBN 978-1-4919-5118-7. OCLC  945577030.
  14. ^ Варго, Сет; Фонг-Джонс, Лиз (1 марта 2018 г.). В чем разница между DevOps и SRE? (класс SRE реализует DevOps) (видео). Google .
  15. ^ "Что такое SRE? - Объяснение SRE - AWS". Amazon Web Services, Inc. Получено 2022-11-05 .
  16. ^ «7 принципов SRE [и как их применять на практике]». www.blameless.com . Получено 26.06.2021 .
  17. ^ "Узнайте больше о наблюдаемости | Honeycomb". docs.honeycomb.io . Получено 2021-06-26 .
  18. ^ "SRE в Google: как структурировать команду SRE". Блог Google Cloud . Получено 26.06.2021 .
  19. ^ "Usenix SREcon". USENIX . 2021 . Получено 17 июня 2021 г. .

Дальнейшее чтение

Внешние ссылки