Проектирование надежности сайта ( 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]
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]
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка )