Проектирование надежности сайта
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Проектирование надежности сайта ( SRE ) — это набор принципов и практик, который применяет аспекты разработки программного обеспечения к ИТ- инфраструктуре и операциям . [1] SRE утверждает, что создает высоконадежные и масштабируемые программные системы. Хотя они тесно связаны, SRE немного отличается от DevOps . [2] [3] [4]
История
[ редактировать ]Область проектирования надежности сайтов зародилась в Google Беном Трейнором Слоссом. [5] [6] который основал команду по обеспечению надежности сайтов после прихода в компанию в 2003 году. [7] В 2016 году в Google работало более 1000 инженеров по надежности сайтов. [8] Зародившись в Google в 2003 году, эта концепция распространилась на более широкую индустрию разработки программного обеспечения, и впоследствии другие компании начали нанимать инженеров по надежности сайтов. [9] Эта позиция более распространена в крупных веб-компаниях, поскольку небольшие компании часто не работают в таких масштабах, которые потребовали бы выделенных SRE. [9] В число организаций , принявших эту концепцию, входят Airbnb , Dropbox , IBM , [10] Линкедин , [11] Нетфликс , [8] и Викимедиа . [12] Согласно отчету Института DevOps за 2021 год, 22% организаций при опросе 2000 респондентов приняли модель SRE. [13] [14]
Определение
[ редактировать ]Проектирование надежности объекта, как должностная роль, может выполняться отдельными участниками или быть организовано в группы, ответственные за сочетание следующих функций в рамках более широкой инженерной организации: доступность системы , задержка , производительность , эффективность, управление изменениями , мониторинг , реагирование на чрезвычайные ситуации , и планирование мощностей . [15] Инженеры по обеспечению надежности объектов часто имеют опыт работы в области разработки программного обеспечения , системной разработки или системного администрирования . [16] В сферу деятельности SRE входят автоматизация, проектирование систем и повышение устойчивости систем . [16]
Проектирование надежности объекта как набор принципов и практик может выполняться кем угодно. Хотя каждый должен внести свой вклад в передовой опыт, как это происходит в сфере проектирования безопасности , компания может в конечном итоге нанять для этой работы специалистов и инженеров. [ нужна ссылка ]
Проектирование надежности сайта считается конкретной реализацией DevOps; [17] SRE фокусируется конкретно на создании надежных систем, тогда как DevOps фокусируется на более широком смысле. [2] [3] [4] Хотя у них разные направления деятельности, некоторые компании переименовали свои операционные группы в команды SRE с небольшими значимыми изменениями. [9]
Принципы и практика
[ редактировать ]Было предпринято множество попыток определить канонический список принципов проектирования надежности объектов, но, хотя консенсус отсутствует, в большинство определений обычно включаются следующие характеристики: [1] [18]
- Автоматизация или устранение повторяющихся действий экономически эффективным способом.
- Избегание стремления к гораздо большей надежности, чем это строго необходимо. Определение того, что необходимо, само по себе является практикой (см. список практик ниже).
- Системы, спроектированные с уклоном в сторону снижения рисков доступности, задержек и эффективности.
- Наблюдаемость — способность задавать произвольные вопросы о системе, не зная заранее, что спрашивать. [19]
Методы проектирования надежности объектов также сильно различаются, но приведенный ниже список относительно часто рассматривается как хотя бы частично реализованный:
- Управление трудом как реализация первого принципа, изложенного выше.
- Определение и измерение целей надежности — SLI , SLO и бюджетов ошибок.
- Неабстрактное проектирование крупномасштабных систем ( NALSD ) с упором на надежность.
- Проектирование и реализация наблюдаемости.
- Определение, тестирование и запуск процесса управления инцидентами .
- Планирование мощностей .
- Управление изменениями и релизами, включая CI/CD .
- Хаос-инжиниринг .
Реализации
[ редактировать ]Команды инженеров по обеспечению надежности объектов взаимодействуют с другими группами внутри своих компаний, а также с принципами и практиками SRE в различных формах. Вот общий обзор распространенных реализаций команды SRE: [20]
Кухонная мойка, также известная как «Все SRE»
[ редактировать ]Объем охватываемых услуг или рабочих процессов обычно не ограничен.
Инфраструктура
[ редактировать ]Они сосредоточены на надежности скрытых систем, которые помогают сделать работу других команд более эффективной. Их часто путают с командами «Платформы» или командами «Операций на платформе». Команды SRE инфраструктуры могут объединяться с одной или несколькими группами разработчиков платформ, но они отличаются тем, что команды SRE инфраструктуры сосредотачиваются на выполнении большей части, если не всей, работы, описанной в принципах и методах, перечисленных выше. Команды разработчиков платформы, как правило, сосредотачиваются на создании платформы, и хотя надежность желательна, это не единственный их приоритет.
Инструменты
[ редактировать ]Команды сосредоточены на инструментах для измерения, обслуживания и повышения надежности системы. Например, Nagios Core или Prometheus (программное обеспечение) .
Продукт или приложение
[ редактировать ]Команда SRE для продукта и/или приложения. Некоторые крупные компании обычно нанимают несколько таких сотрудников.
Встроенный
[ редактировать ]Обычно специалисты по SRE или пары, входящие в состав команды разработчиков программного обеспечения, применяют большинство принципов и практик, описанных выше.
Консалтинг
[ редактировать ]Эти команды консультируются о том, как реализовать принципы и методы SRE. Обычно это опытные SRE, работавшие в командах в одной или нескольких из описанных выше реализаций. SRE, занимающиеся внешним консалтингом. Команды SRE иногда называют «инженерами по надежности клиентов».
Крупные компании, внедрившие SRE, как правило, имеют комбинацию описанных выше реализаций, включая несколько групп одной и той же реализации, например, несколько групп SRE по продукту/приложению для удовлетворения конкретных требований нескольких продуктов и группу SRE по инфраструктуре для объединения с платформой. инженерная группа для достижения целей надежности общей платформы для обоих продуктов/приложений.
Промышленность
[ редактировать ]Организация USENIX с 2014 года проводит ежегодную конференцию SREcon для инженеров по надежности объектов в отрасли, а также проводит региональные конференции на аналогичные темы. [21]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б «Оценка положения вашей команды в спектре SRE» . Блог Google Cloud . Проверено 26 июня 2021 г.
- ^ Jump up to: а б Бейер, Бетси; Джонс, Крис; Петофф, Дженнифер; Мерфи, Найл, ред. (2016). Проектирование надежности сайта: как Google управляет производственными системами . Севастополь, Калифорния: O'Reilly Media . ISBN 978-1-4919-5118-7 . OCLC 945577030 .
- ^ Jump up to: а б Варго, Сет; Фонг-Джонс, Лиз (1 марта 2018 г.). В чем разница между DevOps и SRE? (класс SRE реализует DevOps) (Видео). Google .
- ^ Jump up to: а б «Что такое SRE? — Объяснение SRE — AWS» . Amazon Веб-сервисы, Inc. Проверено 5 ноября 2022 г.
- ^ Хилл, Патрик. «Любите DevOps? Подождите, пока не встретите SRE» . Атласиан . Проверено 17 июня 2021 г.
- ^ «Что такое СРЕ?» . Красная шляпа . Проверено 17 июня 2021 г.
- ^ Трейнор, Бен (2014). «Ключи к СРЕ» . USENIX SREcon14 . Проверено 17 июня 2021 г.
- ^ Jump up to: а б Фишер, Дональд (2 марта 2016 г.). «Являются ли инженеры по надежности объектов следующими специалистами по данным?» . ТехКранч . Проверено 17 июня 2021 г.
- ^ Jump up to: а б с Госсетт, Стивен (1 июня 2020 г.). «Что такое инженер по надежности объекта? Чем занимается SRE?» . Встроенный . Проверено 17 июня 2021 г.
- ^ «Инженерия надежности сайта» . IBM Cloud Education . ИБМ . 12 ноября 2020 г. . Проверено 21 июня 2021 г.
- ^ «Инженерия надежности объекта (SRE)» . Engineering.linkedin.com . Проверено 12 марта 2024 г.
- ^ «СРЭ — Викитех» . wikitech.wikimedia.org . Проверено 17 октября 2021 г.
- ^ Эрлих, Эвелин; Гролл, Джейн; Гарбани, Жан-Пьер (2021). Отчет о повышении квалификации корпоративных DevOps в 2021 году (PDF) (Отчет). Институт DevOps . Проверено 17 июня 2021 г.
- ^ Эрлих, Эвелин (4 мая 2021 г.). «Что нужно, чтобы стать инженером по надежности объекта» . ТехМаяк . Микро Фокус . Проверено 17 июня 2021 г.
- ^ Трейнор, Бен. «В разговоре» (Интервью). Беседовал Найл Мерфи. Проектирование надежности сайтов Google.
- ^ Jump up to: а б Джонс, Крис; Андервуд, Тодд; Нукала, Шилая (июнь 2015 г.). «Найм инженеров по надежности объектов» (PDF) . ;авторизоваться: . Том. 40, нет. 3. С. 35–39 . Проверено 17 июня 2021 г.
- ^ Дэйв Харрисон (9 октября 2018 г.). «Интервью с Бетси Бейер и Стивеном Торном из Google» . Проверено 24 июля 2024 г.
- ^ «7 принципов SRE [и как их применить на практике]» . www.blameless.com . Проверено 26 июня 2021 г.
- ^ «Узнайте о наблюдаемости | Honeycomb» . docs.honeycomb.io . Проверено 26 июня 2021 г.
- ^ «SRE в Google: как структурировать команду SRE» . Блог Google Cloud . Проверено 26 июня 2021 г.
- ^ «Usenix SREcon» . УСЕНИКС . 2021 . Проверено 17 июня 2021 г.
Дальнейшее чтение
[ редактировать ]- Лимончелли, Том; Чалуп, Страта Р.; Хоган, Кристина Дж. (сентябрь 2014 г.). Практика администрирования облачных систем: практики DevOps и SRE для веб-сервисов . Том. 2. Река Аппер-Сэддл, Нью-Джерси: Аддисон-Уэсли . ISBN 978-0133478549 . OCLC 891786231 .
- Бейер, Бетси; Джонс, Крис; Петофф, Дженнифер; Мерфи, Найл Ричард, ред. (2016). Проектирование надежности сайта: как Google управляет производственными системами . О'Рейли . ISBN 978-1491929124 .
- Бланк-Эдельман, Дэвид Н., изд. (2018). В поисках SRE: разговоры о масштабном запуске производственных систем (1-е изд.). Севастополь, Калифорния: О'Рейли. ISBN 978-1491978863 . OCLC 1052565720 .
- Бейер, Бетси; Мерфи, Найл; Кавахара, Кент; Ренсин, Дэвид; Торн, Стивен (2018). Учебное пособие по надежности сайта: практические способы реализации SRE . О'Рейли. ISBN 978-1492029502 .
- Уэлч, Нат (2018). Реальный SRE: Руководство по выживанию для реагирования на сбой системы и увеличения времени безотказной работы . Пакет . ISBN 978-1788628884 .
- Адкинс, Хизер; Бейер, Бетси; Бланкиншип, Пол; Левандовски, Петр; Опря, Ана; Стабблфилд, Адам (2020). Создание безопасных и надежных систем: лучшие практики проектирования, внедрения и обслуживания систем . О'Рейли. ISBN 978-1-4920-8312-2 . OCLC 1129470292 .
- Розенталь, Джонс, Кейси, Нора (2020). Хаос-инжиниринг: отказоустойчивость системы на практике . О'Рейли. ISBN 978-1492043867 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка )
Внешние ссылки
[ редактировать ]- по обеспечению надежности сайта Потрясающий список ресурсов
- Как они перечисляют ресурсы SRE
- SRE Weekly еженедельный информационный бюллетень, посвященный SRE
- SRE на целевой странице Google, где можно узнать больше о SRE в Google.
- Учебный центр по надежности Komodor K8s с ресурсами для SRE, работающих с Kubernetes