img

Чем отличаются SRE и DevOps

Можете ли вы представить себе компанию, в которой никто бы не управлял IT-инфраструктурой и операциями? Скорее всего, нет. Вот здесь и начинается SRE (обеспечение надежности информационных систем) и DevOps (автоматизация сборки, настройки и развертывания ПО). В последние годы оба этих направления стали очень популярными в IT-среде, и их распространенность продолжает расти. Но все-таки, DevOps и SRE – это разные вещи или синонимы для одного и того же? Данная статья поможет во всем разобраться.

SRE vs. DevOps

Что такое DevOps?

DevOps – это подход к разработке ПО. Ключевое отличие данной методологии заключается в том, что DevOps следует принципам Lean (бережливое производство) или Agile (гибкость). DevOps специализируется на постоянном развертывании ПО с частым выходом версий и автоматизированным подходом к разработке программ. DevOps-подход включает в себя набор норм и технологических приемов для быстрого выполнения запланированной работы. Под запланированной работой мы подразумеваем все – от разработки до тестирования и эксплуатации. DevOps преследует следующие цели:

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

Так что же такое DevOps? DevOps – это объединение отделов разработки и эксплуатации для максимально быстрого и органичного развертывания кода. Данный подход основан на тесной коммуникации внутри команды в сочетании с высоким уровнем автоматизации. По правилам DevOps команда, пишущая код, отвечает также и за его обслуживание при эксплуатации. Иначе говоря, отделы разработки и эксплуатации, которые принято разделять, должны работать сообща над улучшением версий ПО.

В чем преимущества DevOps?

Во-первых, DevOps улучшает скорость доставки приложений. Это реализуется за счет создания небольших изменений и частого выхода новых версий. Таким образом, компании могут выводить продукты на рынок чаще. Обновления и исправления выполняются быстрее и проще, а стабильность ПО возрастает. Более того, вносить небольшие изменения гораздо проще, и такую систему легко вернуть к предыдущей версии. Еще один плюс: возможности доставки ПО у таких объединенных команд более безопасные.

Что делает DevOps и как?

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

  • Устранение обособленности. Роль команды DevOps заключается в том, чтобы аккумулировать знания со стороны разработки и эксплуатации. Поощряется коммуникация, что помогает лучше разобраться в ситуации.
  • Быстрое признание ошибок и прекращение. В процессе DevOps определяются методы минимизации риска, а одни и те же ошибки не делаются дважды. С помощью автоматизированного тестирования команда ищет ошибки на ранних стадиях цикла выхода ПО.
  • Постепенное внесение изменений. Команда DevOps не внедряет крупные изменения в рабочие версии, а регулярно развертывает небольшие поэтапные доработки. Это позволяет лучше проверять изменения и устранять ошибки.
  • Использование инструментов и автоматизации. Команда создает конвейер развертывания с помощью инструментов автоматизации. Тем самым повышается скорость и точность разработки, а также сводится к минимуму риск ошибок, допущенных человеком. Кроме того, сокращается объем ручной работы.
  • Измерение всего. DevOps использует данные для измерения результата всех предпринятых действий. Чаще всего для оценки успеха используются 4 главных метрики: время внесения изменений, частота развертывания, время восстановления и частота отказов.

Для эффективной работы команде DevOps необходимо использовать мощные инструменты. К ним относятся: системы управления версиями для всего кода (GitHub, GitLab и т.д.), инструменты непрерывной интеграции (Jenkins, Spinnaker и т.д.), инструменты автоматизации развертывания, инструменты автоматизации тестирования (Selenium и т.д.), а также инструменты управления инцидентами (PagerDuty, Opsgenie и т.д.)


Что такое SRE?

Концепция обеспечения надежности информационных систем (SRE - Site Reliability Engineering) появилась в 2003 году. Изначально она задумывалась как система для поддержки разработчиков, создающих крупномасштабные приложения. В наши дни SRE реализуется опытной командой экспертов, которая умеет применять методы проектирования при решении общих проблем, связанных с запуском систем в промышленную эксплуатацию. SRE – это как бы системный инженер, который отвечает еще и за эксплуатацию. Это сочетание работ по системным операциям с разработкой и проектированием ПО. В зоне ответственности таких сотрудников находится множество задач – от написания и создания кода до его доставки и поддержки в промышленной среде.

Главная цель SRE – разработка сверхнадежных и быстро масштабируемых систем. Раньше проектировщиков ПО и сотрудников эксплуатационного отдела разделяли на 2 отдела с разными зонами ответственности. Такие отделы подходили к решению проблем с разных сторон. SRE выходит за рамки этого ограничения. Принцип сотрудничества, лежащий в основе этой методологии, пришелся по душе многим компаниям.

В чем преимущества SRE?

SRE значительно улучшает период работоспособности. Основной приоритет – поддержание платформы или сервиса в рабочем состоянии, несмотря ни на что. Задачами первостепенной важности являются: предотвращение аварий, минимизация рисков, надежность и запас мощности. Главная цель команды SRE – найти способы по предотвращению проблем, которые могли бы привести к простою. Это критически важно, особенно при сопровождении крупномасштабных систем. Еще одно преимущество SRE заключается в том, что данный подход помогает компаниям отойти от ручной работы в пользу автоматизации. Тем самым у разработчиков высвобождается больше времени на инновационные решения. Любые ошибки быстро и эффективно находятся и устраняются.

Что делает SRE и как

Роль SRE в компании предельно проста и понятна: команда следит за тем, чтобы платформа или сервис были доступны клиентам в любой момент и в любых обстоятельствах.

Чем занимается SRE?

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

В своей работе команда SRE пользуется такими системами, как Kubernetes (один из самых известных оркестраторов контейнеров), облачными платформами (Microsoft Azure, Amazon AWS и т.д.), инструментами планирования и управления проектами (JIRA, Pivotal Tracker), а также системами контроля версий (GitHub и т.д.).


Чем отличаются SRE и DevOps?

Если говорить абстрактно, что DevOps – это написание и развертывание кода, а SRE – это комплексный подход ко всему, поскольку при работе над системой команда примеряет на себя роль конечного пользователя.

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

Цель SRE – создать слаженные операционные процессы с помощью методологий, которыми раньше пользовались только разработчики ПО. Основная задача SRE – сделать так, чтобы платформа или приложение были постоянно доступны клиентам. Для этого оцениваются потребности клиентов и анализируются метрики SLA, SLI и SLO. DevOps делает акцент на процессе в целом, и результатом должно стать успешное развертывание ПО. Ниже описаны дополнительные отличия между DevOps и SRE.

Роль команды разработчиков

DevOps объединяет навыки разработчиков и инженеров по эксплуатации ПО. SRE решает проблемы IT-операций с помощью инструментов и парадигмы разработчиков.

Навыки

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


Что общего в SRE и DevOps?

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

Подводя итог, можно сказать, что для достижения общей цели нужно сочетать DevOps и SRE.

Ссылка
скопирована
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
  В современном технологическом мире контейнерные технологии используются везде. Самой популярной платформой для управления конт
img
  На сегодняшний день контейнеры – это то, без чего не обходится запуск приложений. А самая популярная контейнерная технология
img
Введение Разработчик при написании кода должен быть максимально продуктивным. Однако бывают ситуации, когда им приходится выпо
img
  Kubernetes стал незаменимым инструментом для оркестровки, масштабирования, автоматического развертывания и управления контей
img
  С помощью контейнеров вы можете упаковать свое приложение и сделать его, таким образом, переносимым. В результате оно сможет р
img
Введение Kubernetes – это платформа, которая предоставляет возможность работать с модулями, службами и внешними ресурсами и пр
Комментарии
ЛЕТНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59