SRE vs. DevOps — в чем разница и их взаимосвязь

Жизненный цикл разработки программного обеспечения прошел долгий путь — от непересекающейся модели разработки — водопадной модели — до итеративной модели разработки, такой как Agile и DevOps. Интересно отметить, что до начала движения DevOps (~2007-2008 гг.), SRE зародилось в Google (2003 г.), чтобы создать надежность и отказоустойчивость всей инфраструктуры Google. Google в своей книге о SRE описал, как совместные усилия инженеров DevOps, SRE и других инженеров, таких как инженеры по безопасности приложений, жизненно важны для поддержания такого продукта, как Gmail.

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

Что такое DevOps?

DevOps определяет подход к разработке программного обеспечения с изменением организационной культуры в сторону гибкости, автоматизации и сотрудничества. Он направлен на устранение изолированности и преодоление разрывов между различными отделами разработки и эксплуатации.
В этом процессе разработка кода проходит через итеративные этапы: непрерывная разработка, непрерывная интеграция, непрерывное тестирование, непрерывная обратная связь, непрерывный мониторинг, непрерывное развертывание и непрерывная эксплуатация. Также известен как «7Cs жизненного цикла DevOps».

Что такое SRE?

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

  • Соглашения об уровне обслуживания (SLA) — для определения соответствующей надежности, производительности и задержки приложения, как того желает конечный пользователь.
  • Цели уровня обслуживания (SLO) — целевые задачи, установленные командой SRE для соответствия ожиданиям SLA.
  • Показатели уровня обслуживания (SLI) — измерение конкретных метрик (таких как задержка системы, пропускная способность системы, время выполнения, среднее время восстановления (MTTR), частота разработки и коэффициент ошибок доступности) для соответствия SLO.

Сходство между SRE и DevOps

  • Обе методологии сосредоточены на мониторинге производства и обеспечении бесперебойной работы операционного управления.
  • Одним из их основополагающих принципов является разрушение силосов. Он направлен на объединение всех заинтересованных сторон (команда Dev + команда Ops) в разработке приложения. Верят в модель «совместной ответственности» и «совместного владения».
  • Их общая цель — упростить операции в распределенной системе.

Различия и взаимосвязь между SRE и DevOps

Разработка и внедрение

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

Характер навыков

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

Автоматизация

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

Цель

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

Заключение

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

  • Управление конвейером CI/CD: Внедрение различных автоматизированных тестов на разных этапах конвейера для обеспечения безошибочного кода.
  • Мониторинг и оповещение: Основная функция — помочь нам в повышении надежности наших приложений. Получение 360-градусной видимости системы поможет в диагностике здоровья сервисов и получении жизненно важных аналитических данных.
  • Управление инцидентами: Чтобы понять причину сбоев в работе сервисов, серьезность ошибки или даже немедленно получить предупреждение, когда какие-либо запросы начинают отказывать, требуется оперативная связь.

Платформы, обеспечивающие управляемые микросервисы и управляемые Kubernetes, помогают нам поддерживать жизненный цикл приложений, решая вышеупомянутые проблемы. Если взглянуть на данные о размере рынка управляемых услуг, то прогноз в 274 миллиарда долларов к 2026 году показывает их потенциал в упрощении управляемости приложений.

Поскольку такие мировые технологические гиганты, как Google, Amazon и Netflix, стали пионерами внедрения DevOps и SRE, их рентабельность инвестиций растет семимильными шагами. Более того, глядя на их никогда не падающую надежную инфраструктуру, становится ясно, что эти методологии здесь надолго.
Загляните сюда! Проницательная статья о лучших практиках DevSecOps.

Оцените статью
Procodings.ru
Добавить комментарий