Өзгерту

Бөлісу құралы:


Часто задаваемые вопросы: как связаны SRE и DevOps?

В этой статье приведены ответы на часто задаваемые вопросы о связи между обеспечением надежности информационных систем (SRE) и DevOps. В частности, рассматриваются следующие вопросы: "В чем их сходство? Чем они отличаются? Могут ли они одновременно существовать в организации?" В этой статье содержатся ответы из сообществ SRE и DevOps, которые помогут понять связь между этими методологиями.

В чем их сходство?

SRE и DevOps — это современные методологии, которые были созданы и разработаны в ответ на следующие проблемы:

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

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

Инструменты и рабочие области SRE и DevOps во многом пересекаются. Согласно практическому руководству Site Reliability Workbook, "методология SRE основана на тех же концепциях, что и DevOps, но взгляды на эти концепции различаются".

Три различных способа сравнения двух операций

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

"класс SRE реализует интерфейс DevOps"

SRE и DevOps рассматриваются в первой главе руководства Site Reliability Workbook, которое включено в наш список литературы. В этой главе в качестве подзаголовка используется фраза "класс SRE реализует интерфейс DevOps". Эта фраза, ориентированная на разработчиков, предполагает, что методологию SRE можно рассматривать как конкретную реализацию DevOps. В этой главе говорится, что "в DevOps сравнительно мало информации о том, как должны выполняться операции на детальном уровне", а в SRE этот аспект описан намного подробнее. Отвечая на вопрос о том, как связаны эти две методологии, можно сказать, что SRE является одной из многих возможных реализаций DevOps.

SRE — это надежность, а DevOps — это доставка

Это не совсем точное сравнение, так как существует несколько определений SRE и DevOps, но эта точка зрения также заслуживает внимания. Основной вопрос здесь звучит так: "Если бы вас попросили описать суть каждой из методологий одним или двумя словами, что бы вы ответили?"

Можно опираться на такое определение SRE из центра обеспечения надежности информационных систем:

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

В этом случае очевидно, что ключевое слово для SRE — "надежность". Слово "надежность" также присутствует в названии методологии, что подтверждает данную точку зрения.

Рассмотрим определение DevOps из центра ресурсов Azure DevOps:

DevOps — это объединение людей, процессов и продуктов для непрерывной поставки значимых ресурсов конечным пользователям.

По аналогии с предыдущим примером, ключевым словом для DevOps является "доставка".

Таком образом, SRE ассоциируется с надежностью, а DevOps — с доставкой.

Направление внимания

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

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

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

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

Таким образом, направление внимания — еще одно различие между SRE и DevOps.

Сосуществование в одной организации

Последний вопрос, на который хотелось бы ответить: "Могут ли SRE и DevOps существовать в одной организации?"

На этот вопрос можно с уверенностью ответить "да".

Надеемся, что предыдущие ответы помогли понять, что общего между этими двумя методологиями и как они дополняют друг друга в случаях, когда они не пересекаются. Организации, применяющие DevOps, могут поэкспериментировать с SRE в небольшом масштабе (например, опробовать SLI и SLO), не создавая отдельные должности или команды SRE. Это достаточно распространенная схема внедрения SRE.

Следующие шаги

Хотите узнать больше об обеспечении надежности информационных систем (SRE) или DevOps? Ознакомьтесь с информацией в центре обеспечения надежности информационных систем и центре ресурсов Azure DevOps.