Инжиниринг надежности сайта

редактировать

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

СОДЕРЖАНИЕ
  • 1 История
  • 2 Определение
  • 3 Принципы и практика
  • 4 реализации
    • 4.1 Кухонная мойка, также известная как «Все SRE»
    • 4.2 Инфраструктура
    • 4.3 Инструменты
    • 4.4 Продукт или приложение
    • 4.5 Встроенный
    • 4.6 Консультации
  • 5 Промышленность
  • 6 См. Также
  • 7 ссылки
  • 8 Дальнейшее чтение
  • 9 Внешние ссылки
История

Сфера проектирования надежности сайтов зародилась в Google вместе с Беном Трейнором Слоссом, который основал группу по обеспечению надежности сайтов после прихода в компанию в 2003 году. В 2016 году в Google работало более 1000 инженеров по надежности сайтов. Эта концепция, зародившаяся в Google в 2003 году, распространилась на более широкую индустрию разработки программного обеспечения, и впоследствии другие компании начали нанимать инженеров по надежности сайтов. Такая позиция чаще встречается в крупных веб-компаниях, поскольку небольшие компании часто не работают в масштабах, требующих специальных SRE. Организации, принявшие эту концепцию, включают Airbnb, Dropbox, IBM, LinkedIn, Netflix и Wikimedia. Согласно отчету DevOps Institute за 2021 год, 22% организаций в опросе, в котором приняли участие 2000 респондентов, приняли модель SRE.

Определение

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

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

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

Стивен Госсетт написал в « Built In», что некоторые компании переименовали свои операционные группы в группы SRE с небольшими значительными изменениями. Это также считается верным для операционных групп, переименованных в команды DevOps.

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

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

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

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

Реализации

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

Кухонная мойка, также известная как «Everything SRE»

Объем предоставляемых услуг или рабочих процессов обычно неограничен.

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

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

Инструменты

Основное внимание уделяется инструментам для измерения, обслуживания и повышения надежности системы.

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

Команда SRE для продукта и / или приложения. Некоторые крупные компании обычно нанимают несколько таких сотрудников.

Встроенный

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

Консультации

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

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

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

Организация USENIX с 2014 года проводит ежегодную конференцию SREcon для инженеров по надежности сайтов в отрасли, а также проводит региональные конференции с аналогичными темами.

Смотрите также
использованная литература
дальнейшее чтение
  • Лимончелли, Том; Chalup, Strata R.; Хоган, Кристина Дж. (Сентябрь 2014 г.). Практика администрирования облачных систем: практики DevOps и SRE для веб-сервисов. 2. Река Аппер Сэдл, Нью-Джерси: Аддисон-Уэсли. ISBN   978-0133478549. OCLC   891786231.
  • Бейер, Петофф, Мерфи, Джонс, Бетси, Дженнифер, Найл, Крис (2016). Разработка надежности сайта: как Google управляет производственными системами. О'Рейли. ISBN   978-1491929124. CS1 maint: несколько имен: список авторов ( ссылка )
  • Бланк-Эдельман, Дэвид Н., изд. (2018). Ищу SRE: Беседы о запуске производственных систем в масштабе (1-е изд.). Севастополь, Калифорния: О'Рейли. ISBN   978-1491978863. OCLC   1052565720.
  • Бейер, Мерфи, Кавахара, Ренсин, Торн, Бетси, Найл, Кент, Дэвид, Стивен (2018). Рабочая тетрадь по надежности сайта: практические способы реализации SRE. О'Рейли. ISBN   978-1492029502. CS1 maint: несколько имен: список авторов ( ссылка )
  • Уэлч, Нат (2018). Real-World SRE: Руководство по выживанию для реагирования на сбой системы и увеличения времени безотказной работы. Packt. ISBN   978-1788628884.
  • Адкинс, Опря, Бланкиншип, Левандовски, Стаблфилд, Бейер, Хизер, Ана, Пол, Петр, Адам, Бетси (2020). Построение безопасных и надежных систем: передовой опыт проектирования, внедрения и обслуживания систем. О'Рейли. ISBN   978-1492083122. CS1 maint: несколько имен: список авторов ( ссылка )
  • Розенталь, Джонс, Кейси, Нора (2020). Chaos Engineering: устойчивость системы на практике. О'Рейли. ISBN   978-1492043867.
внешние ссылки
Последняя правка сделана 2023-03-19 02:59:43
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте